The six-pose emotion set an animator authors nova.riv against — driven live from the real code tables
(STATE_GESTURE, MOUTH_BY_STATE, ARM_BY_STATE, NOVA_GEOMETRY).
Each button = one value of the Rive emotion input. Idle breath, blink, arc-orbit and the on-change react burst all run, so this is what the state machine must reproduce.
Poses map the 12 internal NovaStates onto these 6, exactly as
rive-contract.ts does. Author six states in Rive's State Machine, wire the four
inputs above, name the artboard NOVA + machine Mascot, export
nova.riv — NovaRive.tsx is already wired to drive it.