{"_grammar":{"explore":{"time_travel":"GET \/{module}\/{entity}\/{id}\/at?timestamp=<ISO 8601>  (the instance as it was)","transition":"OPTIONS \/{module}\/{entity}\/{transition}  (contract)","modules":"OPTIONS \/","entities":"OPTIONS \/{module}","history":"GET \/{module}\/{entity}\/{id}\/log  (every change, newest first)","instance":"OPTIONS \/{module}\/{entity}\/{id}  (state+ACL-aware menu)","entity":"OPTIONS \/{module}\/{entity}  (descriptor + _search)"},"affordances":{"explain":"the transitions you may NOT fire, each with the ONE cause that withholds it, never a disjunction: `requires_pre_state` (the instance is not in a state this verb starts from — `requiresPreState` names the state to drive toward), `requires_access` (the state is satisfied, so a missing grant is the only blocker), or `requires_no_instance` (a creation verb: it is fired with NO instance in the address, so this instance can never offer it)","note":"Every instance (GET or OPTIONS) carries _links.","self":"the canonical URL of this instance","invoke":"the transitions you may fire NOW (state + your access), as POST\/PATCH links, each with its WRITE CONTRACT: `fields` (the body attributes it declares, with dataType\/isReference\/required) and `requires_etag` (send the _etag you read back with the call)","options":"pointer to the full affordance bundle","lens":"the same instance in its other facets: graph (query_graph) and vector (?near)"},"search":{"graph":"POST \/potential\/potential\/query_graph  {cypher: ...}  (ACL-scoped)","vector":"GET \/{module}\/{entity}?near=<attribute>:<text>  (embedded attributes; see entity _search)"},"introspection":{"potential":"POST \/potential\/potential\/{query_transitions, query_clients, query_accessible_instances, query_entities, query_objects, query_recipients}  (SPO: who\/what can do which transition on which object — the live gate)","contract":"GET \/model  (the full machine-readable contract)"},"concurrency":{"etag":"Every instance carries a signed _etag — a snapshot of the row you read. Send it back on edit; a stale one is refused with both your and the current value."},"construct":{"note":"The `modules` list above is READ-ONLY — there is no POST \/modules or other REST collection endpoint to create a module, entity, attribute, or agenda. Schema is authored exclusively via GML statements sent to POST \/gml (e.g. 'create module fleet \"Fleet Management\"') — the full grammar is GET \/model `._engine.gml_commands`, the request shape is `._engine.gml_endpoint`. Once an entity exists, its own instances use the ordinary REST transitions above (create\/edit\/delete\/read).","gml":"POST \/gml — see GET \/model `._engine.gml_commands` and `._engine.gml_endpoint`"},"note":"Everything is a transition. The model is the map; OPTIONS any resource to see its affordances. Nothing here is hand-written documentation — it is projected from the live model and gate."},"service":"0NF API","modules":[{"_id":5322,"description":"Onboarding workflow: a client requests an agenda (a voice); a registrar approves or rejects through the inbox.","entityCount":1,"name":"admission","url":"\/admission","label":"Admission"},{"_id":4225,"description":"Paper-3\/Paper-4 layered brain materialised as 9 layer-output entities (L0..L7 plus L5.5), plus ai.curriculum (graded examples with HNSW pgvector embeddings), ai.concept_binding (Paper-4 7-concept abstraction per context module), ai.config (global config), and poe_brain (transition-only namespace holding advance_turn).","entityCount":20,"name":"ai","url":"\/ai","label":"AI Cognitive Substrate"},{"_id":5264,"description":"Client-scheduled, result-bearing async jobs (submit → done|failed).","entityCount":1,"name":"async_job","url":"\/async_job","label":"Async Job"},{"_id":72,"description":"Fixed vocabulary tables","entityCount":11,"name":"constant","url":"\/constant","label":"Constant"},{"_id":2556,"description":"Nervous system — metrics collection and anomaly detection","entityCount":27,"name":"encephalos","url":"\/encephalos","label":"Encephalos"},{"_id":5408,"description":"Unified embedded corpus for the \/help semantic narrator — book sections, model descriptions, and API-contract facts, each a retrievable, citable chunk.","entityCount":1,"name":"knowledge","url":"\/knowledge","label":"Knowledge"},{"_id":5143,"description":"Name distance infrastructure — attribute naming axiom enforcement","entityCount":3,"name":"naming","url":"\/naming","label":"Naming"},{"_id":4025,"description":"Durable Poe conversations (sessions + turns) and user-addressed messages","entityCount":3,"name":"poe_sessions","url":"\/poe_sessions","label":"Poe Sessions"},{"_id":4181,"description":"ACL introspection primitives over the relation potential(S, P, O): SPO atoms, coordinate projections, and role-based slices. Namespace entity; no instances.","entityCount":1,"name":"potential","url":"\/potential","label":"Potential"},{"_id":73,"description":"Metamodel tables","entityCount":23,"name":"system","url":"\/system","label":"System"},{"_id":5515,"description":"Designer-authored UI captions for the translation locale - one row is one key with its default text; translations of the text are ordinary system.translation rows.","entityCount":1,"name":"ui","url":"\/ui","label":"UI"},{"_id":5686,"description":"VDE Electrical Safety Testing Module","entityCount":94,"name":"vde_safety","url":"\/vde_safety","label":"vde_safety"}]}
