feat(protocol): negotiate display and native input
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
## Why
|
||||
|
||||
The Phase 3D native client must request a bounded display mode and send
|
||||
provider-neutral absolute-pointer and high-resolution scroll input. The current
|
||||
wire contract exposes only policy-selected stream dimensions and rejects both
|
||||
new input kinds.
|
||||
|
||||
## What Changes
|
||||
|
||||
- Add one bounded `DisplayMode` object and optional display fields to session
|
||||
request/session/manifest contracts while keeping control wire version 1.
|
||||
- Register `display.request.v1`, `input.absolute.v1`, and `input.scroll.v1` so
|
||||
every new behavior is explicitly negotiated.
|
||||
- Extend VGI1 with exact absolute-pointer and signed scroll bodies while
|
||||
preserving all existing kind encodings.
|
||||
- Require a new immutable Protocol release candidate after deterministic
|
||||
Go/Rust/Swift generation and conformance pass; existing tags remain unchanged.
|
||||
|
||||
## Capabilities
|
||||
|
||||
### New Capabilities
|
||||
|
||||
- `session-display-mode`: Optional feature-gated requested and effective display
|
||||
mode disclosure for native session creation and manifests.
|
||||
|
||||
### Modified Capabilities
|
||||
|
||||
- `gateway-input-feedback`: Add negotiated provider-neutral absolute-pointer and
|
||||
high-resolution scroll kinds to the existing sequenced input grammar.
|
||||
|
||||
## Impact
|
||||
|
||||
- JSON Schema, feature registry, VGI frame documentation, fixed conformance
|
||||
fixtures, generated Go/Rust/Swift bindings, and strict validators.
|
||||
- Connection Server session persistence/allocation and Data Plane input
|
||||
translation after consumers pin the immutable Protocol candidate.
|
||||
- Protobuf remains unchanged because no observed consumer uses it for these
|
||||
JSON control or VGI payload paths.
|
||||
Reference in New Issue
Block a user