## MODIFIED Requirements ### Requirement: Typed sequenced input envelope The `input.sequenced.v1` payload SHALL begin with ASCII `VGI1`, a one-byte event kind, and one-byte payload length. It SHALL contain exactly one bounded keyboard, mouse-button, relative-mouse, UTF-8 scalar, controller-state, absolute-mouse, or high-resolution-scroll event. Absolute mouse kind `0x06` SHALL contain big-endian u16 x, y, viewport width, and viewport height, reject zero viewports and coordinates outside the viewport, and require negotiated `input.absolute.v1`. Scroll kind `0x07` SHALL contain big-endian signed i16 vertical and horizontal deltas and require negotiated `input.scroll.v1`. False keyboard/mouse state and zeroed controller state are explicit releases. Unknown or unadvertised kinds, length mismatches, malformed UTF-8, unsupported controller indices, and reserved fields SHALL be rejected before provider translation. #### Scenario: Keyboard state change - **WHEN** a client sends a valid keyboard press or release envelope - **THEN** the gateway forwards the corresponding typed provider input on its reliable keyboard channel and records the pressed state for cleanup. #### Scenario: Absolute pointer and scroll - **WHEN** an advertised client sends an in-viewport absolute coordinate or signed scroll delta with the exact body length - **THEN** the gateway accepts the provider-neutral event without adding it to pressed-state cleanup. #### Scenario: Invalid input envelope - **WHEN** a client sends an unknown or unadvertised kind, invalid length, malformed UTF-8 scalar, zero viewport, out-of-range coordinate, or nonzero reserved field - **THEN** the gateway rejects it without sending provider input or changing pressed state.