## Why Phase 3A defines gateway-only manifests and control datagrams but has no versioned contracts for the separately deployed gateway's registration, admission authority, capability intersection, lifecycle, or encoded relay framing. Phase 3C-G needs those contracts frozen before Data Plane or Connection Server consumers change. ## What Changes - Add bounded JSON bindings for gateway registration, heartbeat/drain, tunnel admission, session-scoped authority, capability selection, channel framing, provider state, and stable errors. - Extend the tunnel protobuf descriptor with the same versioned control messages. - Register only gateway-owned media/input flow identifiers; keep provider endpoints and credentials out of client-facing manifests. ## Ownership and provenance Protocol owns the wire contract. The contract is original VerseVDI work derived from the Phase 3A schemas and public Apollo/Moonlight behavior recorded in the Planning Hub. No GPL source is copied into this repository. ## Non-goals - Provider implementation, database policy, QUIC implementation, media decoding, or client rendering. - Direct client-to-Apollo routing, provider endpoint exposure, or a speculative plugin ABI. ## Stop conditions Unknown versions, malformed bounds, no capability overlap, downgrade without explicit acknowledgement, forbidden provider fields, and oversized frames fail closed.