docs(openspec): archive phase 3d display input
This commit is contained in:
@@ -7,20 +7,32 @@ used across the authenticated Verse gateway boundary.
|
||||
### 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, or controller-state
|
||||
event. False keyboard/mouse state and zeroed controller state are explicit
|
||||
releases. Multibyte integer fields SHALL be big-endian. Unknown kinds,
|
||||
length mismatches, malformed UTF-8, unsupported controller indices, and
|
||||
reserved fields SHALL be rejected before provider translation.
|
||||
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 envelope with an unknown event kind, invalid
|
||||
length, malformed UTF-8 scalar, or nonzero reserved field
|
||||
- **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.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user