# Composite.moveByKey

Prevents the native key default only when keyMove recognizes the key, then updates active state.

## Signatures

```ts
export declare function moveByKey<Value, CompositeState extends State, E, R, E2, R2, Element extends object>(event: KeyboardEventLike, options: MoveOptions<Value, CompositeState, E, R, E2, R2, Element>): Effect.Effect<boolean, 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 { moveByKey } from "@typed/ui/Composite";` Extend the [Composite.makeState
runnable setup](https://tylors.github.io/typed-smol/reference/symbols/QHR5cGVkL3VpL0NvbXBvc2l0ZSNtYWtlU3RhdGU/). Inside the linked Effect
program run `yield* moveByKey({ key: "ArrowDown" }, { state, collection })`, then read state to
observe the active id selected by the current orientation and RTL policy.
