TRON payloads
Where lists get big, the page stops carrying them: aroute()serves them, content-negotiated between JSON andapplication/tron, and the browser (or an agent) pulls exactly the slice it needs.
Server-paged table
schema modeDataTable + Pagination driven by useList() over GET /api/notes?page&sort&q. Rows travel as #notes.v1 positional arrays.
Remote pickers
sourceAutocomplete and MultiSelect with a debounced source() over GET /api/notes/search — the option set never ships with the page.
Columnar stats
Float64ArrayA numeric table decoded with api.tape() into a flat tape — no row objects — and charted. Cached at the edge for 30 s.
API-mode form
submitThe same Form / Field components, posting TRON to POST /api/notes instead of a form action; 400 issues land on the right Field.
Agent-facing export
self-describingGET /api/notes/export as JSON and as TRON side by side: bytes, rough tokens, and the edge-cache / ETag headers a Worker adds.