Parent
#301
Dependency
#300 generic control-stream domain contract.
Goal
Convert parsed OpenFlight device-runtime state into stable descriptor/baseline/event/reset items without introducing the multi-subscriber service hub yet.
Scope
- Build a descriptor registry mapping device/runtime numeric IDs to stable external control IDs.
- Preserve raw IDs and semantic provenance when roles are not validated.
- Implement pure/projector logic for initial non-actionable baseline, button press/release, hat direction/neutral, encoder deltas, selected rate-limited axes, and reset/disconnect.
- Integrate projectors with simulated T.Flight and simulated STECS runtime fixtures through narrow adapters.
- Suppress duplicate/unchanged state.
- Preserve deterministic per-device ordering and sequence semantics.
- Keep all network/tonic and subscriber/backpressure logic out of this issue.
Acceptance criteria
Non-goals
Parent
#301
Dependency
#300 generic control-stream domain contract.
Goal
Convert parsed OpenFlight device-runtime state into stable descriptor/baseline/event/reset items without introducing the multi-subscriber service hub yet.
Scope
Acceptance criteria
Non-goals