Encoding · Types · Structs · Enumerations · Constants · Vocabulary · Refusals · Protocol

Schema

One definition; this page and every encoder are emitted from it. Nothing below is written by hand, and each rule tag links the construct to the profile that admits it.

Encoding [DEF-E1]

settingvaluerule
escapeminimal[DEF-E2]
indent2[DEF-E3]
map_keysutf8-bytes[DEF-E4]
numbersinteger-decimal[DEF-E5]
opaqueverbatim[DEF-E6]
terminatornewline[DEF-E7]
duplicate_keysrefuse[DEF-E8]
depth_limit64[DEF-E9]

Types

kindtypes
built inbool i64 string
declared belowCaller Decision HostAllowance Observation
container [DEF-T3]list<string>
repeated record [DEF-A9]list<Alias> list<Ask> list<Family> list<HostState>

Named types [DEF-T2]

One spelling is written [DEF-G2] and a wider set is read [DEF-G1]; the width between them is the interoperability guarantee.

nameiswrittenread
timestampstringrfc3339-microsrfc3339-wide

Structs [DEF-T1]

A field is required, or says when it is omitted [DEF-A4]. Each struct says on its own what it does with a field name it has never heard of [DEF-A7]. A wire name never moves; where a language must spell it differently the field says so [DEF-A2].

HostAllowance

unknown fields refuse

idfieldtypepresencenamed elsewhere
1hostslist<string>required

PickRequest

the document [DEF-A1] · unknown fields refuse

idfieldtypepresencenamed elsewhere
1modelstringrequired
2freshboolrequired
3allowedHostAllowanceoptional · omitted when absent

Caller

unknown fields grant

idfieldtypepresencenamed elsewhere
1user_descriptionstringrequired
2path_descriptionstringrequired

Observation

unknown fields grant

idfieldtypepresencenamed elsewhere
1callerCallerrequired
2took_msi64required
3cache_age_msi64required

Alias

unknown fields grant

idfieldtypepresencenamed elsewhere
1hoststringrequired
2namestringrequired
3residentboolrequired
4servableboolrequired

Family

unknown fields grant

idfieldtypepresencenamed elsewhere
1familystringrequired
2nameslist<Alias>required

ModelsSnapshot

unknown fields grant

idfieldtypepresencenamed elsewhere
1observationObservationrequired
2modelslist<Family>required

HostState

unknown fields grant

idfieldtypepresencenamed elsewhere
1hoststringrequired
2basestringrequired
3upboolrequired
4whystringrequired
5installedi64required
6residentlist<string>required
7servableboolrequired

Ask

unknown fields grant

idfieldtypepresencenamed elsewhere
1attimestamprequired
2callerstringrequired
3userstringrequired
4modelstringrequired
5familystringrequired
6verdictstringrequired
7hoststringrequired

HostsSnapshot

unknown fields grant

idfieldtypepresencenamed elsewhere
1observationObservationrequired
2hostslist<HostState>required
3doubledlist<string>required
4askedlist<Ask>required

Decision

unknown fields grant

idfieldtypepresencenamed elsewhere
1askedstringrequired
2familystringrequired
3verdictstringrequired
4hoststringrequired
5modelstringrequired
6endpointstringrequired
7installed_onlist<string>required
8authorisedHostAllowanceoptional · omitted when absent
9withheldlist<string>required
10loadsi64required
11whystringrequired

PickResult

unknown fields grant

idfieldtypepresencenamed elsewhere
1observationObservationrequired
2decisionDecisionrequired

Constants [DEF-A6]

nametypevalue
verdictslist<string>resident, would-load, unservable, not-here, unparseable, unauthorised

Refusal words [DEF-R1]

orderwordstage
1malformedgrammar
2bad_stringgrammar
3number_spellinggrammar
4wrong_typegrammar
5bad_timestampgrammar
6depth_exceededgrammar
7duplicate_keygrammar
8duplicate_fieldstructure
9unknown_fieldstructure
10missing_fieldstructure
11trailing_bytesdocument

Service Router [DEF-S1]

Read existing model hosts and choose where a caller may ask. Decisions do not enforce access to hosts outside the router.

Wire identity: abstraction.router/router@1

Frames carry version, service, method and typed arguments. Transport owns framing, associated exchanges, deadlines and connections. Unknown version/service/method and malformed arguments are rejected before invoking a handler. One-way WriteFrame success means local submission, not remote acceptance or persistence.

Request-response methods use ExchangeFrame. Replies carry version, service, method, ok and payload; success payload contains typed value (or an empty object for void). Error payload contains nonempty code and message, which may be empty. ServiceError preserves unknown codes. Unexpected handler failures become handler_error without private details; invalid results become invalid_result. Clients validate reply identity and result before exposing it. A malformed frame or transport failure remains a local error; the transport must associate each response with its exchange. C++ dispatchers are pure protocol bindings, not listening servers.

Read model families and aliases. Fresh requests survey the existing hosts.

Models

request-response ModelsSnapshot

Read host residency, duplicate families and routing audit. GPU cost is outside this subset.

Hosts

request-response HostsSnapshot

Choose a permitted host without loading any model. Missing allowance permits all hosts; an explicit empty allowance permits none. Attribution comes from the bound caller.

Pick

request-response PickResult