From Declaration to Page
One Union type.Every interaction, such as requests and replies, in one place.Declare it once.People get a page. AI gets a tool. Programs get a library.Not the Web.The full web experience with native UI, from a few bytes of data.
The App
The data
Who uses it
A conceptual drawing of the page, not a product screenshot. Each client lays out the same schema in its own native controls.
Generated from the Rust declaration, shown abridged; the explanation page has it in full. A null for a field that is not Nullable cannot be encoded, and the Hub rejects the call.
interview is the other App's Endpoint for this protocol, connected to this App when its task is configured.
Keyboard: ← and → change steps, Space plays or pauses, Home starts over.
The bytes are the exact Avro encoding of each value, as the Rust SDK produces it: the variant index first, then the fields in order. A TypeScript App sends the same bytes; its kind field is the variant index, written once. A tool call and an SDK request carry the same value. Only the value is shown, not the transport that carries it.