The gesture engine is written in C++17 and has no OS dependencies. It lives
in core/ and exposes a single entry point: GestureEngine::Submit(frame).
Eight functional channels: L1, L2, L3, L4, R1, R2, R3, R4.
See docs/adr/0001-eight-channel-archive-model.md.
Each platform translates raw hardware input to GestureInputFrame and
submits it to the engine:
| Platform | Adapter |
|---|---|
| Web | platforms/web/PointerEventAdapter.ts |
| AD7879 | integrations/firmware-ad7879/ad7879_driver.c |
| In-vehicle HMI | integrations/in-vehicle-hmi/DrivingModeGate.cpp |
| iOS | apps/expo-demo/modules/octatouch-native/ |
Archives bind to channels via IntentResolver. Schema: infra/migrations/.