Update a state
Patch node fields (base/camera/movement/ambient/variants/ending). The body is the partial state, or { patch: {...} }. Validated fail-closed.
Authorizations
An app API key, e.g. Authorization: Bearer sk_live_…. Secret (sk_) for writes/sessions; publishable (pk_) for read/embed.
Headers
Body
A node in the graph. Optional fields beyond those listed are allowed (forward-compatible). Prose fields must describe pixels, not intent — the kernel doctrine lints enforce this on every write.
Scene prose for this node (pixels, not intent).
A static/dynamic prompt pair. The world model is conditioned on the static layer while the scene holds and on the dynamic layer while it moves. Both are pixel-prose, never authorial intent.
A static/dynamic prompt pair. The world model is conditioned on the static layer while the scene holds and on the dynamic layer while it moves. Both are pixel-prose, never authorial intent.
Ambient detail prose fragments.
Marks this node as a TERMINAL sink. A node with an ending must be a dead end (no outgoing transitions).
A/B prompt arms (play-only; never compiled into the graph).
Response
State updated
The result of a graph write. world is the new, kernel-validated world; diagnostics carries advisory (warning/info) findings; rev is the new concurrency token (also returned as the ETag header).
A playable world. The full contract is published as JSON Schema at https://alakazam.gg/schema/smworld-1.0.json (see schema/COMPATIBILITY.md). Additional optional properties are allowed (forward-compatible).
The new revision token. Pass it as If-Match on the next write.
"1.0"