# Composite.move

Computes the next active id and updates state; collection and state failures/services are
preserved in the returned Effect.

## Signatures

```ts
export declare function move<Value, CompositeState extends State, E, R, E2, R2, Element extends object>(options: MoveOptions<Value, CompositeState, E, R, E2, R2, Element>, direction: Move): Effect.Effect<CompositeState, E | E2, R | R2>;
```

## Why

The operation exposes Composite's transition directly so callers can compose it in Effect
programs and native event handlers.

## Ownership and lifetime

The returned Effect performs the update or DOM side effect only when run, preserves the declared
error and service channels, and retains no resources after completion.

## Example

Import with `import { move } from "@typed/ui/Composite";` Extend the [Composite.makeState
runnable setup](https://tylors.github.io/typed-smol/reference/symbols/QHR5cGVkL3VpL0NvbXBvc2l0ZSNtYWtlU3RhdGU/). Inside the linked Effect
program invoke `yield* move({ state, collection }, "next")`, then read state to observe the next
enabled registered id selected under the current loop policy.
