{"schema_version":1,"seq":1,"at":"2026-09-21T13:47:11.061Z","kind":"request","phase":"startup","request":{"cmd":"stats"}}
{"schema_version":1,"seq":2,"at":"2026-09-21T13:47:11.089Z","kind":"transport_error","phase":"startup","error":"Admin transport failed"}
{"schema_version":1,"seq":3,"at":"2026-09-21T13:47:11.350Z","kind":"request","phase":"startup","request":{"cmd":"stats"}}
{"schema_version":1,"seq":4,"at":"2026-09-21T13:47:13.854Z","kind":"response","phase":"startup","response":{"ok":true,"data":{"clients":0,"entities":2,"extraction_enabled":true,"extraction_profiles":0,"extraction_sessions":0,"ground_install_acks_total":0,"ground_tiles":0,"outbound_aoi_overflow_disconnects":0,"outbound_dropped":0,"outbound_full":0,"outbound_queue_capacity":64,"outbound_queue_depth":0,"outbound_queue_max_depth":0,"outbound_slow_disconnects":0,"physics_counts_p95":{"dynamic_pose_count":0,"ground_queue_depth":0,"lag_steps":0,"substeps":12,"vehicle_pose_count":0},"players":0,"profile_persistence_healthy":true,"recent_brushes":[],"recent_shots":[],"sim_entities":0,"stats_schema_version":2,"tick_deadlines_skipped_total":0,"tick_max_ms":2.328000068664551,"tick_ms":50,"tick_p50_ms":2.328000068664551,"tick_p95_ms":2.328000068664551,"tick_phases_p95_ms":{"brains_ai":0.009999999776482582,"gameplay_script":0.013000000268220901,"ground_stream":0.0010000000474974513,"ground_stream_native_cook_active":0,"ground_stream_owner_install_active":0,"lifecycle":0.30799999833106995,"movement_gameplay":0.01899999938905239,"physics_ground_install":0,"physics_pose_read":0.007000000216066837,"physics_step":0.1420000046491623,"physics_wait":0.20900000631809235,"physics_wait_native_cook_active":0,"physics_wait_owner_install_active":0,"replication":1.7369999885559082},"tick_sample_capacity":1200,"tick_sample_count":1,"tick_sample_first_sequence":1,"tick_sample_last_sequence":1,"tick_sequence":1,"uptime_s":0,"world_name":"whitepaper-agent-rescue-platform"}}}
{"schema_version":1,"seq":5,"at":"2026-09-21T13:47:13.855Z","kind":"request","phase":"describe","request":{"cmd":"describe"}}
{"schema_version":1,"seq":6,"at":"2026-09-21T13:47:13.861Z","kind":"response","phase":"describe","response":{"ok":true,"data":{"commands":[{"doc":"Take back the last edit. One command is one checkpoint, so this undoes a whole generated batch or a whole brush drag as readily as one crate. Combat damage is not an edit and is not undone.","effect":"mutation","name":"undo","params":{"properties":{},"type":"object"}},{"doc":"Re-apply the last undone edit. Discarded as soon as any new edit is committed.","effect":"mutation","name":"redo","params":{"properties":{},"type":"object"}},{"doc":"Point a client's camera at an exact pose, or hand it back. Both eye and target omitted returns the client to its own gameplay camera.","effect":"mutation","name":"camera_set","params":{"properties":{"eye":{"items":{"type":"number"},"maxItems":3,"minItems":3,"type":"array"},"name":{"description":"which client; omitted means every connected client, which is rarely wanted","type":"string"},"target":{"items":{"type":"number"},"maxItems":3,"minItems":3,"type":"array"}},"type":"object"}},{"doc":"Fire a one-shot effect into the live world. Whoever is in range sees it and it is then over.","effect":"mutation","name":"effect_play","params":{"properties":{"at":{"items":{"type":"number"},"maxItems":3,"minItems":3,"type":"array"},"dir":{"items":{"type":"number"},"maxItems":3,"minItems":3,"type":"array"},"name":{"type":"string"},"scale":{"type":"number"}},"required":["name","at"],"type":"object"}},{"doc":"Set a place on fire. The state counterpart of effect_play: this one becomes an entity, so it is still there when someone walks up later.","effect":"mutation","name":"effect_burn","params":{"properties":{"at":{"items":{"type":"number"},"maxItems":3,"minItems":3,"type":"array"},"name":{"type":"string"},"scale":{"type":"number"},"seconds":{"description":"how long it burns; absent means until something despawns it","type":"number"}},"required":["name","at"],"type":"object"}},{"doc":"Return the live effect library and its revision.","effect":"read","name":"effect_library_get","params":{"properties":{},"type":"object"}},{"doc":"Merge-patch the live effect library with optimistic concurrency: get the revision, dry-run, then apply with expected_revision. A rejected candidate never replaces the last known-good document.","effect":"mutation","name":"effect_library_patch","params":{"properties":{"dry_run":{"type":"boolean"},"expected_revision":{"type":"integer"},"patch":{"type":"object"},"persist":{"type":"boolean"}},"required":["patch"],"type":"object"}},{"doc":"The engine describes itself: components, shape kinds, commands. Call this first.","effect":"mutation","name":"describe","params":{"properties":{},"type":"object"}},{"doc":"World status, including schema-versioned authoritative tick sequence, exact retained tick-sample window boundaries, and cumulative scheduled tick deadlines skipped under overload.","effect":"read","name":"stats","params":{"properties":{},"type":"object"}},{"doc":"Query live entities by tag, name substring, shape kind, component presence, and/or radius around a point.","effect":"read","name":"query","params":{"properties":{"center":{"items":{"type":"number"},"maxItems":3,"minItems":3,"type":"array"},"has":{"description":"component presence filter: shape|body|brain|player|loot|extraction|name","type":"string"},"kind":{"description":"shape kind filter","type":"string"},"limit":{"maximum":500,"minimum":0,"type":"integer"},"name":{"type":"string"},"radius":{"type":"number"},"tag":{"type":"string"}},"type":"object"}},{"doc":"Spawn an entity into the LIVE shared world — nearby players see it immediately. Give it body {mode:'dynamic'} to make it fall and tumble.","effect":"mutation","name":"spawn","params":{"properties":{"entity":{"description":"Entity object; see the `components` registry from world_describe for every field.","type":"object"}},"required":["entity"],"type":"object"}},{"doc":"Patch an entity by id with a JSON merge-patch, e.g. {\"transform\":{\"pos\":[0,3,0]},\"shape\":{\"color\":[1,0,0]}}. Physics bodies are re-synced (a teleport).","effect":"mutation","name":"set","params":{"properties":{"id":{"type":"integer"},"patch":{"type":"object"}},"required":["id","patch"],"type":"object"}},{"doc":"Remove an entity from the live world by id.","effect":"mutation","name":"despawn","params":{"properties":{"id":{"type":"integer"}},"required":["id"],"type":"object"}},{"doc":"Broadcast a chat line to every player as 'world-spirit' — the world speaking.","effect":"mutation","name":"say","params":{"properties":{"text":{"type":"string"}},"required":["text"],"type":"object"}},{"doc":"Persist the current world (minus players) to its world document on disk.","effect":"mutation","name":"save","params":{"properties":{},"type":"object"}},{"doc":"Full world document as JSON. Can be large; prefer query.","effect":"read","name":"snapshot","params":{"properties":{},"type":"object"}},{"doc":"Lease one connected player's normal movement input to an agent for at most 20 ticks. This uses the authoritative WASD/controller path; it never writes a transform and expires automatically.","effect":"mutation","name":"player_control","params":{"properties":{"fwd":{"maximum":1,"minimum":-1,"type":"number"},"id":{"minimum":0,"type":"integer"},"jump":{"type":"boolean"},"run":{"type":"boolean"},"strafe":{"maximum":1,"minimum":-1,"type":"number"},"ticks":{"default":1,"maximum":20,"minimum":1,"type":"integer"},"turn":{"maximum":1,"minimum":-1,"type":"number"},"yaw":{"description":"optional absolute view heading in radians","type":"number"}},"required":["id","fwd","strafe","turn"],"type":"object"}},{"doc":"Release an external movement lease immediately and return control to normal gameplay input.","effect":"mutation","name":"player_control_release","params":{"properties":{"id":{"minimum":0,"type":"integer"}},"required":["id"],"type":"object"}},{"doc":"Return the source-of-truth Luau ABI, typed command vocabulary, capabilities and live gameplay-event contract. `command_contract` remains the legacy schema-v1 capability view; new clients prefer `command_contract_v2`, whose typed fields are joined with conservative authoritative effect/conflict hints and metric-scoped limit references. `command_contract_versions` advertises supported/preferred discovery schemas. The reply's `limits` object reports VM/language budgets; `host_limits` reports authoritative transaction, event-queue, build-range and live world bounds from the same constants used by validation. `event_contract` reports event source roles, typed fields and bounded at-most-once delivery semantics from the same registry used by producers.","effect":"read","name":"script_describe","params":{"properties":{},"type":"object"}},{"doc":"Compile and sandbox a gameplay module outside the world lock. A non-dry publication atomically syncs its versioned source deployment before staging the VM for activation at the next authoritative tick. Safe live authoring uses dry_run plus revision, active-artifact digest and deployment-generation CAS.","effect":"mutation","name":"script_put","params":{"properties":{"capabilities":{"items":{"enum":["broadcast","build","combat","entity_data","entity_health","entity_animation","control_players","terrain"],"type":"string"},"type":"array","uniqueItems":true},"dry_run":{"type":"boolean"},"expected_active_artifact_digest":{"description":"Lowercase SHA-256 of the observed active artifact, or the empty string when no policy is active.","type":"string"},"expected_deployment_generation":{"minimum":0,"type":"integer"},"expected_revision":{"minimum":0,"type":"integer"},"name":{"pattern":"^[A-Za-z0-9_-]{1,64}$","type":"string"},"revision":{"minimum":1,"type":"integer"},"source":{"maxLength":262144,"type":"string"},"tick_interval":{"default":1,"maximum":1200,"minimum":1,"type":"integer"}},"required":["name","revision","source","expected_revision","expected_active_artifact_digest","expected_deployment_generation"],"type":"object"}},{"doc":"Inspect active, pending and rollback artifacts, sandbox resource metrics, and the independent durable deployment generation/state.","effect":"read","name":"script_status","params":{"properties":{},"type":"object"}},{"doc":"Inspect the exact active, pending and rollback package catalogs, the monotonic deployment generation, and whether durable package publication is configured or busy.","effect":"read","name":"package_status","params":{"additionalProperties":false,"properties":{},"type":"object"}},{"doc":"Stage one complete immutable content package outside the world lock, verify every content hash and exact dependency, merge it into the active closure using deployment-generation CAS, then activate it at the next authoritative tick. This command requires a fully hydrated process-local composite checkpoint; standalone and cold worlds fail before package bytes are decoded, while leased worlds require the fenced content-release path. The process-local aggregate admits Package ABI2 behavior. This V1 input has no Delivery Index, cannot publish Catalog V2, and therefore cannot satisfy the Package completion gate. Use dry_run first. Asset generation and CDN upload happen before this command.","effect":"mutation","name":"package_put","params":{"additionalProperties":false,"properties":{"dry_run":{"default":false,"type":"boolean"},"expected_generation":{"description":"Exact generation returned by package_status; closes concurrent publication and ABA races.","minimum":0,"type":"integer"},"manifest_base64":{"description":"Base64 bytes of the strict V1 package manifest; these exact bytes must match manifest_delivery.","type":"string"},"manifest_delivery":{"additionalProperties":false,"description":"Client delivery descriptor for the exact manifest bytes. V1 requires format=pajama-package-manifest, format_version=1, media_type=application/json, lowercase SHA-256 and at least one immutable location.","properties":{"byte_length":{"minimum":1,"type":"integer"},"format":{"const":"pajama-package-manifest","type":"string"},"format_version":{"const":1,"type":"integer"},"locations":{"items":{"description":"Tagged ArtifactLocationDocV1: {kind:'cdn',url:'https://...'} or {kind:'package',path:'...'}","type":"object"},"minItems":1,"type":"array"},"media_type":{"const":"application/json","type":"string"},"sha256":{"pattern":"^[0-9a-f]{64}$","type":"string"}},"required":["format","format_version","media_type","sha256","byte_length","locations"],"type":"object"},"members":{"description":"Every package-local document/blob referenced by the manifest graph. Duplicate and traversal paths are rejected.","items":{"additionalProperties":false,"properties":{"bytes_base64":{"type":"string"},"path":{"maxLength":512,"type":"string"}},"required":["path","bytes_base64"],"type":"object"},"type":"array"},"selection_fallback":{"additionalProperties":false,"description":"Optional stable character key. Under the publication reservation, every retained selection and every live character entity removed by the candidate is migrated to this character. It must exist in both current and candidate catalogs.","properties":{"character_id":{"pattern":"^[A-Za-z0-9_.-]{1,128}$","type":"string"},"package_id":{"pattern":"^[A-Za-z0-9_.-]{1,128}$","type":"string"}},"required":["package_id","character_id"],"type":["object","null"]}},"required":["manifest_base64","members","manifest_delivery","expected_generation"],"type":"object"}},{"doc":"Compare-and-swap the exact active and previous package catalogs through a fully hydrated process-local composite checkpoint, reissue the previous immutable package closure under new monotonic generation/catalog revisions, and activate it at the next tick boundary. Standalone and cold worlds fail closed; leased worlds require the fenced content-release path. No package bytes or dependency identities are rewritten.","effect":"mutation","name":"package_rollback","params":{"additionalProperties":false,"properties":{"dry_run":{"default":false,"type":"boolean"},"expected_active_catalog_revision":{"minimum":1,"type":"integer"},"expected_generation":{"minimum":1,"type":"integer"},"expected_rollback_catalog_revision":{"minimum":1,"type":"integer"},"selection_fallback":{"additionalProperties":false,"description":"Optional stable character key used under the rollback reservation to migrate retained selections and live character entities absent from the rollback target.","properties":{"character_id":{"pattern":"^[A-Za-z0-9_.-]{1,128}$","type":"string"},"package_id":{"pattern":"^[A-Za-z0-9_.-]{1,128}$","type":"string"}},"required":["package_id","character_id"],"type":["object","null"]}},"required":["expected_generation","expected_active_catalog_revision","expected_rollback_catalog_revision"],"type":"object"}},{"doc":"Atomically compare-and-swap one exact active/rollback pair, persist the intent, and activate that exact previous gameplay artifact at the next tick boundary. Runtime and durable slots must agree, the deployment generation must still match, and no artifact may be pending.","effect":"mutation","name":"script_rollback","params":{"additionalProperties":false,"properties":{"expected_active_artifact_digest":{"pattern":"^[0-9a-f]{64}$","type":"string"},"expected_active_revision":{"minimum":1,"type":"integer"},"expected_deployment_generation":{"minimum":1,"type":"integer"},"expected_rollback_artifact_digest":{"pattern":"^[0-9a-f]{64}$","type":"string"},"expected_rollback_revision":{"minimum":1,"type":"integer"}},"required":["expected_active_revision","expected_active_artifact_digest","expected_rollback_revision","expected_rollback_artifact_digest","expected_deployment_generation"],"type":"object"}},{"doc":"Contain one exact failed authoring candidate without racing another operator. The server atomically checks candidate identity, deployment generation and the approved predecessor, then durably cancels pending activation, restores the predecessor, or clears a first-ever policy at a tick boundary.","effect":"mutation","name":"script_revert_if_candidate","params":{"properties":{"expected_candidate_artifact_digest":{"pattern":"^[0-9a-f]{64}$","type":"string"},"expected_candidate_revision":{"minimum":1,"type":"integer"},"expected_deployment_generation":{"minimum":1,"type":"integer"},"expected_predecessor_artifact_digest":{"pattern":"^[0-9a-f]{64}$","type":["string","null"]}},"required":["expected_candidate_revision","expected_candidate_artifact_digest","expected_deployment_generation"],"type":"object"}},{"doc":"Quarantine one exact failed artifact from the rollback slot while preserving an exact concurrent active winner. Runtime and durable slots, candidate identity, winner identity and deployment generation are checked atomically before the durable removal.","effect":"mutation","name":"script_forget_rollback_if_candidate","params":{"properties":{"expected_active_artifact_digest":{"pattern":"^[0-9a-f]{64}$","type":"string"},"expected_candidate_artifact_digest":{"pattern":"^[0-9a-f]{64}$","type":"string"},"expected_candidate_revision":{"minimum":1,"type":"integer"},"expected_deployment_generation":{"minimum":1,"type":"integer"}},"required":["expected_candidate_revision","expected_candidate_artifact_digest","expected_active_artifact_digest","expected_deployment_generation"],"type":"object"}},{"doc":"Define or replace a validated box3D model as up to 64 cube parts, then reference its kind from entities or item presentation data. Every client rebuilds the kind immediately. Each part has pos/scale plus optional color, tint, and a stable material id. This is the live AI-native mesh assembly path; it does not require renderer code.","effect":"mutation","name":"model","params":{"properties":{"model":{"properties":{"doc":{"type":"string"},"kind":{"type":"string"},"parts":{"items":{"properties":{"color":{"items":{"type":"number"},"maxItems":3,"minItems":3,"type":"array"},"material":{"description":"Optional stable id from describe.render_pipeline.material_library","type":"string"},"pos":{"items":{"type":"number"},"maxItems":3,"minItems":3,"type":"array"},"scale":{"items":{"type":"number"},"maxItems":3,"minItems":3,"type":"array"},"tint":{"items":{"type":"number"},"maxItems":3,"minItems":3,"type":"array"}},"required":["pos","scale"],"type":"object"},"type":"array"}},"required":["kind","parts"],"type":"object"}},"required":["model"],"type":"object"}},{"doc":"List every model kind in the live library, plus the custom documents.","effect":"read","name":"models","params":{"properties":{},"type":"object"}},{"doc":"Define or replace a SOUND as a synth-patch document: layers of {wave: sine|square|triangle|noise, freq0, freq1 (Hz sweep), attack, decay (s), gain, delay}. Builtin names (fire, hurt, dig, raise, reload, capture, win, kill, click) can be overridden — reshape the whole soundscape live.","effect":"mutation","name":"sound","params":{"properties":{"sound":{"properties":{"layers":{"items":{"type":"object"},"type":"array"},"name":{"type":"string"}},"required":["name","layers"],"type":"object"}},"required":["sound"],"type":"object"}},{"doc":"List every sound name currently in the library.","effect":"read","name":"sounds","params":{"properties":{},"type":"object"}},{"doc":"Import a Blender/glTF character: base64 .glb with an armature-skinned mesh and animation clips (idle/walk names drive locomotion). Becomes a rig document synced to every client; spawn entities whose shape kind equals the rig name to see it animated.","effect":"mutation","name":"rig_import","params":{"properties":{"glb_base64":{"type":"string"},"name":{"type":"string"}},"required":["name","glb_base64"],"type":"object"}},{"doc":"Ask every connected client to screenshot exactly what it is looking at, right now, and write it to target/captures/. This is how a frame gets from a player's eyes to somebody who is not at their keyboard: a visual defect otherwise has to survive being described in words, and the operating system's screenshot tools cannot help, because a game window holding the pointer cannot be region-selected over. Optional `label` names the file so a series can be found again.","effect":"mutation","name":"screenshot_clients","params":{"properties":{"label":{"type":"string"}},"type":"object"}},{"doc":"Quantitative clip health metrics without rendering: average stance-foot slide (m/s, ~0 is clean), worst joint angular speed (deg/s, spikes = jitter/pops), loop closure error (position m + rotation deg; large = visible seam pop). Clip name is fuzzily matched.","effect":"mutation","name":"clip_lint","params":{"properties":{"clip":{"type":"string"},"rig":{"type":"string"}},"required":["rig","clip"],"type":"object"}},{"doc":"Clip algebra — derive a new clip on a rig instead of regenerating: op 'trim' (start/end seconds), 'timescale' (factor), 'mirror' (swap left/right by name, flip across YZ), 'blend' (mix with clip `with` at `alpha`), 'remove'. Result is stored under `out` (default '<clip>.<op>'), persisted, and synced to every client.","effect":"mutation","name":"clip_op","params":{"properties":{"alpha":{"type":"number"},"clip":{"type":"string"},"end":{"type":"number"},"factor":{"type":"number"},"op":{"enum":["trim","timescale","mirror","blend","remove"],"type":"string"},"out":{"type":"string"},"rig":{"type":"string"},"start":{"type":"number"},"with":{"type":"string"}},"required":["rig","op","clip"],"type":"object"}},{"doc":"Carry animation clips from a donor glb (e.g. an animation pack) onto an existing rig, matching channels by joint NAME — same-kit skeletons transfer losslessly. `only` limits which clip names are taken. Reports kept/dropped channels per clip.","effect":"mutation","name":"clip_import","params":{"properties":{"glb_base64":{"type":"string"},"only":{"items":{"type":"string"},"type":"array"},"rig":{"type":"string"}},"required":["rig","glb_base64"],"type":"object"}},{"doc":"List loaded rig assets (name, joint count, clip names).","effect":"mutation","name":"rigs","params":{"properties":{},"type":"object"}},{"doc":"Merge-patch the live weapon rules: {damage, cooldown_ticks, range, aim_cone, crater_radius (terrain bite on miss), tracer_color, kill_verb with {victim} placeholder, name}. Clamped server-side. Affects every player immediately.","effect":"mutation","name":"weapon","params":{"properties":{"patch":{"type":"object"}},"required":["patch"],"type":"object"}},{"doc":"Sculpt the 3D voxel terrain with a SPHERE brush: op 'dig' carves it out (repeated digs along a line bore a walkable tunnel; below-surface digs make caves), op 'add' fuses a smooth blob of ground on. Omit y to act at the surface; give y to work underground or in the air. Players see the world reshape live and can walk into anything you carve.","effect":"mutation","name":"terrain","params":{"properties":{"op":{"enum":["dig","add"],"type":"string"},"radius":{"description":"sphere radius in meters (0.4..6, default 2.2)","type":"number"},"x":{"type":"number"},"y":{"description":"sphere center height; omit for the surface at (x,z)","type":"number"},"z":{"type":"number"}},"required":["op","x","z"],"type":"object"}},{"doc":"List available prefab documents (reusable multi-entity assets).","effect":"read","name":"prefabs","params":{"properties":{},"type":"object"}},{"doc":"Instantiate a prefab into the LIVE world at an anchor position, with optional yaw and uniform scale.","effect":"mutation","name":"spawn_prefab","params":{"properties":{"at":{"items":{"type":"number"},"maxItems":3,"minItems":3,"type":"array"},"name":{"type":"string"},"rot_y":{"type":"number"},"scale":{"type":"number"}},"required":["name","at"],"type":"object"}},{"doc":"Save live entities (by ids or by tag) as a reusable prefab document — compose in the world, then keep it as an asset. Positions are stored relative to the group's centroid.","effect":"mutation","name":"save_prefab","params":{"properties":{"doc":{"description":"one-line description stored in the prefab","type":"string"},"ids":{"items":{"type":"integer"},"type":"array"},"name":{"description":"lowercase letters/digits/dash/underscore","type":"string"},"tag":{"type":"string"}},"required":["name"],"type":"object"}},{"doc":"Hot-import one content-addressed .rig-material.pja frame. The server validates bounds/hash/type, persists the material slot, updates its compressed cache, and immediately publishes it to connected binary render clients that already know the rig.","effect":"mutation","name":"rig_material_import","params":{"properties":{"frame_base64":{"type":"string"}},"required":["frame_base64"],"type":"object"}},{"doc":"Atomically replace the versioned render document. Only registered pass templates are accepted; all topology, ranges and finite values are validated before clients see it. Call render_pipeline_get and describe first, edit the returned document, then submit the whole document.","effect":"mutation","name":"render_pipeline","params":{"properties":{"pipeline":{"description":"RenderPipelineDoc schema v1; see describe.render_pipeline","type":"object"}},"required":["pipeline"],"type":"object"}},{"doc":"Validate and atomically merge-patch the live game render pipeline without changing engine code. First call render_pipeline_get, pass its revision as expected_revision, and send only changed JSON fields. Arrays such as passes are replaced whole. dry_run validates without publication; persist writes the accepted document to the configured game render/pipeline.json. Unknown fields, stale revisions, invalid topology and out-of-budget values are rejected before publication.","effect":"mutation","name":"render_pipeline_patch","params":{"properties":{"dry_run":{"default":false,"type":"boolean"},"expected_revision":{"description":"Revision returned by render_pipeline_get; rejects lost updates when stale","minimum":0,"type":"integer"},"pass_patches":{"description":"Patch individual registered pass instances by stable name without replacing the ordered passes array","items":{"properties":{"name":{"type":"string"},"patch":{"type":"object"}},"required":["name","patch"],"type":"object"},"type":"array"},"patch":{"description":"RFC 7386 merge patch over RenderPipelineDoc","type":"object"},"persist":{"default":false,"description":"Also atomically update the configured authored pipeline file","type":"boolean"}},"required":["patch","expected_revision"],"type":"object"}},{"doc":"Return the complete live render document, including its server-owned revision.","effect":"read","name":"render_pipeline_get","params":{"properties":{},"type":"object"}},{"doc":"Return every live animation controller and its server-owned revision. Each graph says which clip role plays at which ground speed, which named actions the world can request through entity.anim, how the aim layer splits the upper body, and the acceptance thresholds a generated clip must measure up to. Call this before anim_graph_patch.","effect":"read","name":"anim_graph_get","params":{"properties":{},"type":"object"}},{"doc":"Validate and atomically merge-patch one live animation controller without rebuilding the engine. First call anim_graph_get, pass the chosen graph's own revision as expected_revision, and send only changed JSON fields. Arrays such as locomotion.gaits and actions are replaced whole. The document controls which clip role plays at which speed and time scale, the action names the world may request, the aim layer split, and the acceptance thresholds generated clips must meet. dry_run validates and reports the candidate without publishing; persist also atomically updates the configured game animation/graphs.json. Stale revisions, duplicate graph or action names, descending gait speeds and out-of-range values are rejected before publication.","effect":"mutation","name":"anim_graph_patch","params":{"properties":{"dry_run":{"default":false,"type":"boolean"},"expected_revision":{"description":"That graph's revision from anim_graph_get; rejects lost updates when stale","minimum":0,"type":"integer"},"graph":{"description":"Graph name from anim_graph_get, for example soldier or zombie","type":"string"},"patch":{"description":"RFC 7386 merge patch over one AnimGraphDoc","type":"object"},"persist":{"default":false,"description":"Also atomically update the configured authored animation graph file","type":"boolean"}},"required":["graph","patch","expected_revision"],"type":"object"}},{"doc":"The rig-graph vocabulary, straight from the engine that evaluates it: every node op with its inputs, its output ports and their value kinds, plus the runtime channels a parameter may bind to, the two spaces, and how bone names are matched. Call this FIRST when authoring a rig graph; it is the whole reference and needs no engine source.","effect":"read","name":"rig_graph_describe","params":{"properties":{},"type":"object"}},{"doc":"Return every live rig graph and its server-owned revision. A rig graph is the procedural layer that runs AFTER clips have blended and reacts to the world: foot placement onto terrain, look-at, hand IK, spring chains for hair and pouches, and the two-way seam with physics (reading simulated bodies, and requesting that they be driven). Call this before rig_graph_patch.","effect":"read","name":"rig_graph_get","params":{"properties":{},"type":"object"}},{"doc":"Validate and atomically merge-patch one live rig graph without rebuilding the engine. First call rig_graph_describe for the op vocabulary and rig_graph_get for the current document, then pass that graph's own revision as expected_revision and send only changed JSON fields. Arrays such as nodes and parameters are replaced whole, because a node's meaning depends on what else is in the graph. Node order does not matter: execution order is derived, and a cycle is reported as the path around it. Unknown ports, type mismatches, out-of-range values, bones the rig lacks and stale revisions are all rejected before publication. dry_run validates and reports the candidate without publishing; persist also atomically updates the configured game animation/rigs.json.","effect":"mutation","name":"rig_graph_patch","params":{"properties":{"dry_run":{"default":false,"type":"boolean"},"expected_revision":{"description":"That graph's revision from rig_graph_get; rejects lost updates when stale","minimum":0,"type":"integer"},"graph":{"description":"Graph name from rig_graph_get","type":"string"},"patch":{"description":"RFC 7386 merge patch over one RigGraphDoc","type":"object"},"persist":{"default":false,"description":"Also atomically update the configured authored rig graph file","type":"boolean"}},"required":["graph","patch","expected_revision"],"type":"object"}},{"doc":"Validate and hot-publish or stage one WGSL fullscreen-effect module without rebuilding the engine. The id is a safe relative .wgsl path; source may be uploaded before its shader_effect node is added. dry_run checks WGSL and the stable binding ABI; persist atomically writes below the game render directory. Use the pipeline revision for optimistic concurrency.","effect":"mutation","name":"render_shader_put","params":{"properties":{"dry_run":{"default":false,"type":"boolean"},"expected_revision":{"minimum":0,"type":"integer"},"id":{"description":"Relative shader asset id, for example shaders/night_vision.wgsl","type":"string"},"persist":{"default":false,"type":"boolean"},"source":{"maxLength":262144,"type":"string"}},"required":["id","source","expected_revision"],"type":"object"}},{"doc":"Return the copy-ready Pajama fullscreen Shader Effect ABI v1 WGSL starter plus its insertion point and hard limits. Edit fs_main, stage it with render_shader_put, then reference its id from a shader_effect pass.","effect":"read","name":"render_shader_template","params":{"properties":{},"type":"object"}},{"doc":"Patch one material by stable id without replacing or reordering the material array. Feature models standard/cloth/skin/unlit share one bounded opaque PBR table and do not create per-material PSOs. Dry-run first, then optionally persist.","effect":"mutation","name":"render_material_patch","params":{"properties":{"dry_run":{"default":false,"type":"boolean"},"expected_revision":{"minimum":0,"type":"integer"},"id":{"type":"string"},"patch":{"description":"RFC 7386 patch relative to the selected MaterialDoc","type":"object"},"persist":{"default":false,"type":"boolean"}},"required":["id","patch","expected_revision"],"type":"object"}}],"components":[{"doc":"Position/orientation/scale. `pos` is [x,y,z] with the ground plane at y=0. `rot_y` is yaw radians; `rot` is an optional [x,y,z,w] quaternion set by physics for tumbling bodies (overrides rot_y when present).","name":"transform","schema":{"properties":{"pos":{"items":{"type":"number"},"maxItems":3,"minItems":3,"type":"array"},"rot":{"items":{"type":"number"},"maxItems":4,"minItems":4,"type":"array"},"rot_y":{"type":"number"},"scale":{"items":{"type":"number"},"maxItems":3,"minItems":3,"type":"array"}},"type":"object"}},{"doc":"Renderable look. Unknown kinds draw as a cube, so inventing kinds is safe.","name":"shape","schema":{"properties":{"color":{"description":"linear rgb 0..1","items":{"type":"number"},"maxItems":3,"minItems":3,"type":"array"},"kind":{"description":"one of the registered shape kinds, or anything (falls back to cube)","type":"string"}},"required":["kind","color"],"type":"object"}},{"authority":"server_resolved_package_prefab","doc":"Exact Package presentation identity resolved by the authoritative server from an admitted package prefab. Read-only: agents and generic entity edits cannot add, remove, or change it. URLs, cache paths and renderer handles are never stored here.","name":"render_asset","read_only":true,"schema":{"additionalProperties":false,"properties":{"asset_id":{"type":"string"},"package":{"additionalProperties":false,"properties":{"digest":{"pattern":"^[0-9a-f]{64}$","type":"string"},"package_id":{"type":"string"},"revision":{"minimum":1,"type":"integer"}},"required":["package_id","revision","digest"],"type":"object"},"usage":{"enum":["render"],"type":"string"}},"required":["package","asset_id","usage"],"type":"object"}},{"doc":"Stable id from render.pipeline materials. Assign one material per scene entity with `set {\"material\":\"painted-tin\"}`; null inherits the default model material. Material parameters remain engine-validated, data-authored and hot-reloadable.","name":"material","schema":{"pattern":"^[a-z0-9-]{1,64}$","type":"string"}},{"doc":"Free-form labels used for querying (e.g. 'player', 'critter', 'agent-made', 'global'). 'global' entities sync to every client regardless of distance.","name":"tags","schema":{"items":{"type":"string"},"type":"array"}},{"doc":"Optional human/agent-readable identifier, searchable by substring.","name":"name","schema":{"type":"string"}},{"doc":"Present on player avatars (server-managed; do not spawn these).","name":"player","schema":{"properties":{"display_name":{"type":"string"}},"type":"object"}},{"doc":"Exact server-resolved package character identity. Players select stable package_id + character_id intent; only the server writes revision and digest from the active package lock.","name":"character","schema":{"additionalProperties":false,"properties":{"character_id":{"type":"string"},"package":{"additionalProperties":false,"properties":{"digest":{"pattern":"^[0-9a-f]{64}$","type":"string"},"package_id":{"type":"string"},"revision":{"minimum":1,"type":"integer"}},"required":["package_id","revision","digest"],"type":"object"}},"required":["package","character_id"],"type":"object"}},{"doc":"Vitals: present on players (hp 100). Entities without stats are indestructible. The server owns all damage.","name":"stats","schema":{"properties":{"hp":{"type":"number"},"max_hp":{"type":"number"}},"required":["hp","max_hp"],"type":"object"}},{"doc":"Box3D physics participation. mode 'dynamic' = gravity + collisions + tumbling; 'static' = immovable collider. Colliders are boxes; half_extents defaults to scale/2. offset shifts the collider center (static only; dynamic bodies are centered on pos).","name":"body","schema":{"properties":{"density":{"type":"number"},"friction":{"type":"number"},"half_extents":{"items":{"type":"number"},"maxItems":3,"minItems":3,"type":"array"},"mode":{"enum":["static","dynamic"],"type":"string"},"offset":{"items":{"type":"number"},"maxItems":3,"minItems":3,"type":"array"},"restitution":{"description":"bounciness 0..1","type":"number"}},"required":["mode"],"type":"object"}},{"doc":"A mind. kind 'wander' roams near `home` within `roam` radius at `speed` (built-in, deterministic). kind 'llm' is driven by the director loop: give it a `persona` and it will perceive, chat and act via an external model.","name":"brain","schema":{"properties":{"home":{"items":{"type":"number"},"maxItems":3,"minItems":3,"type":"array"},"kind":{"enum":["wander","llm"],"type":"string"},"persona":{"type":"string"},"roam":{"type":"number"},"speed":{"type":"number"}},"required":["kind"],"type":"object"}},{"doc":"Traditional server-owned NPC combat tuning. Brain selects and pursues a target; these fields author detection, melee reach, damage and attack cadence.","name":"combat_ai","schema":{"properties":{"aggro_radius":{"minimum":0,"type":"number"},"attack_cooldown_ms":{"minimum":1,"type":"integer"},"attack_damage":{"minimum":0,"type":"number"},"attack_radius":{"minimum":0,"type":"number"}},"type":"object"}},{"doc":"Entity annotation for crowd-oriented presentation. Clients use it for reduced-rate skeletal animation and scripts can observe aggregate entity counts. It does not currently enable server-side crowd locomotion, separation, flow fields, or a rigid-body solver.","name":"crowd_agent","schema":{"properties":{"far_rate_ticks":{"maximum":120,"minimum":1,"type":"integer"},"flow_field_weight":{"maximum":1,"minimum":0,"type":"number"},"full_rate_radius":{"minimum":0,"type":"number"},"max_neighbors":{"maximum":64,"minimum":1,"type":"integer"},"neighbor_radius":{"exclusiveMinimum":0,"type":"number"},"radius":{"exclusiveMinimum":0,"type":"number"},"reduced_rate_radius":{"minimum":0,"type":"number"},"reduced_rate_ticks":{"maximum":60,"minimum":1,"type":"integer"},"separation_strength":{"minimum":0,"type":"number"}},"type":"object"}},{"doc":"A drivable vehicle (server-owned physics). kind 'jeep'. `driver` is set by the server when a player enters. `pose_space` declares whether an imported transform is a terrain contact or a canonical solver chassis pose; the server promotes ground_anchor to chassis after the first coherent physics frame.","name":"vehicle","schema":{"properties":{"driver":{"type":"integer"},"kind":{"enum":["jeep"],"type":"string"},"pose_space":{"enum":["ground_anchor","chassis"],"type":"string"}},"required":["kind"],"type":"object"}},{"doc":"Physically based point light attached to the entity transform. Clustered forward shading bounds per-pixel work even with many lights.","name":"light","schema":{"properties":{"color":{"items":{"type":"number"},"maxItems":3,"minItems":3,"type":"array"},"direction":{"items":{"type":"number"},"maxItems":3,"minItems":3,"type":"array"},"intensity":{"minimum":0,"type":"number"},"kind":{"enum":["point","spot"],"type":"string"},"range":{"exclusiveMinimum":0,"type":"number"},"spot_inner_degrees":{"maximum":89,"minimum":0,"type":"number"},"spot_outer_degrees":{"maximum":89,"minimum":0,"type":"number"}},"required":["color","intensity","range"],"type":"object"}},{"doc":"Server-authoritative extraction loot container. Items have stable instance ids and explicit grid placements; clients request transfers by instance id.","name":"loot","schema":{"properties":{"excluded_player_key":{"type":"string"},"inventory":{"type":"object"},"searched":{"type":"boolean"}},"required":["inventory"],"type":"object"}},{"doc":"Data-driven extraction zone. The server validates radius, active state, countdown and interruption per player.","name":"extraction","schema":{"properties":{"active":{"type":"boolean"},"countdown_ms":{"type":"integer"},"radius":{"type":"number"}},"required":["radius"],"type":"object"}},{"doc":"Free-form JSON payload — arbitrary structured state on any entity. Game rules publish here (the `match` entity carries tickets/owners/time), and agents may stash their own data on entities they manage. Merge-patched like everything else via `set`.","name":"data","schema":{"type":"object"}},{"doc":"Rig/model name of the item drawn in the entity's hand socket (weapons). The weapon system sets this per loadout slot; agents can hand anything to anyone, e.g. `set {\"held\": \"gun-shotgun\"}`.","name":"held","schema":{"type":"string"}},{"doc":"Animation intent: clip name (fuzzily matched against the entity's rig) that clients should play, crossfaded. Null/absent = automatic locomotion (idle/walk/run from movement). Set it to make any rigged entity emote, e.g. `set {\"anim\": \"wave\"}`.","name":"anim","schema":{"type":"string"}},{"doc":"This place is on fire. Persistent visual state rather than a one-shot event: a player who walks up ten minutes after the fight still sees it burning, because it replicates through area-of-interest like any other component. Craters and wrecks get one automatically and it goes out on its own; spawn one yourself for a brazier, a smoking vent, a signal fire. `name` is any effect in the live library — read it with `effect_library_get`, or set a temporary one with `effect_burn`.","name":"effect","schema":{"properties":{"dir":{"description":"Which way it faces; defaults to up","items":{"type":"number"},"maxItems":3,"minItems":3,"type":"array"},"name":{"description":"Effect library name, e.g. \"fire\", \"wreck\"","type":"string"},"scale":{"description":"1.0 is the authored size","maximum":20,"minimum":0.05,"type":"number"}},"required":["name"],"type":"object"}}],"engine":"pajama-engine","render_pipeline":{"authoring":{"boundary":"Data composes registered algorithms and resources. shader_effect plus render_shader_put adds bounded fullscreen WGSL without an engine rebuild. New geometry domains or shader ABIs remain engine/plugin capabilities.","composition":"The ordered passes array selects, enables and orders registered algorithms. Replace the array to change topology.","parameters":"Every environment, material, quality and pass field is live-editable through render_pipeline_patch.","transaction":"get revision -> dry-run patch -> apply with expected_revision -> optional persist; rejected candidates never replace the last known-good document."},"default":{"ambient_occlusion":{"bias":0.03500000014901161,"depth_rejection":0.003000000026077032,"enabled":true,"history_weight":0.8999999761581421,"intensity":1,"motion_rejection":32,"power":1.350000023841858,"radius":1.25,"reset_distance":4,"upsample_depth_sharpness":900,"upsample_normal_power":8},"atmosphere":{"aerial_perspective":0.7200000286102295,"atmosphere_height_km":100,"enabled":true,"ground_albedo":0.30000001192092896,"mie_absorption_per_km":[0.004399999976158142,0.004399999976158142,0.004399999976158142],"mie_anisotropy":0.800000011920929,"mie_scale_height_km":1.2000000476837158,"mie_scattering_per_km":[0.003996000159531832,0.003996000159531832,0.003996000159531832],"multi_scattering":1,"ozone_absorption_per_km":[0.0006500000017695129,0.0018810000037774444,0.00008499999967170879],"ozone_center_height_km":25,"ozone_width_km":15,"planet_radius_km":6360,"rayleigh_scale_height_km":8,"rayleigh_scattering_per_km":[0.005801999941468239,0.013558000326156616,0.03310000151395798]},"clouds":{"altitude_m":950,"base_darkening":0.41999998688697815,"base_depth":0.550000011920929,"cirrus_altitude_m":2600,"cirrus_long_scale_m":1500,"cirrus_short_scale_m":260,"cirrus_strength":0.14000000059604645,"coverage":0.5199999809265137,"detail_erosion":0.3799999952316284,"detail_scale_m":240,"edge_softness":0.09000000357627869,"enabled":true,"extinction_per_m":0.008999999612569809,"mass_scale_m":24000,"multi_scattering":0.3400000035762787,"opacity":0.8199999928474426,"phase_g":0.7200000286102295,"temporal_reactivity":0.20000000298023224,"thickness_m":2400,"wind_speed_m_per_s":7},"clustered_lighting":{"depth_slices":16,"enabled":true,"max_lights":256,"max_lights_per_cluster":16,"tile_size":64,"z_far":160,"z_near":0.10000000149011612},"environment":{"ambient_ground":[0.30000001192092896,0.27000001072883606,0.23999999463558197],"ambient_sky":[0.3799999952316284,0.44999998807907104,0.5799999833106995],"fog_color":[0.7799999713897705,0.8500000238418579,0.8999999761581421],"fog_density":1,"fog_end":72,"fog_height_falloff":0.05999999865889549,"fog_start":34,"ibl_intensity":1,"rim_color":[0.550000011920929,0.6499999761581421,0.8500000238418579],"sky_zenith":[0.23999999463558197,0.4699999988079071,0.8199999928474426],"sun_color":[1.1200000047683716,0.9599999785423279,0.7400000095367432],"sun_direction":[0.6200000047683716,0.5199999809265137,0.41999998688697815]},"global_illumination":{"ao_multi_bounce_strength":0.6499999761581421,"diffuse_intensity":1,"diffuse_saturation":0.8999999761581421,"enabled":true,"probe_volume":{"bounce_iterations":2,"bounce_strength":0.7200000286102295,"enabled":true,"grid":[20,10,20],"hysteresis":0.9200000166893005,"intensity":0.800000011920929,"leak_reduction":0.9399999976158142,"max_ray_distance":28,"max_ray_steps":28,"normal_bias":0.3499999940395355,"probes_per_frame":64,"propagation_strength":0.2800000011920929,"rays_per_probe":16,"sky_visibility_floor":0.02500000037252903,"spacing":3.5}},"lighting":{"band_levels":[0.23999999463558197,0.6000000238418579],"band_mix":0.44999998807907104,"band_thresholds":[0.30000001192092896,0.6200000047683716],"model_specular":0.2199999988079071,"rim_strength":0.1599999964237213,"shadow_strength":1,"terrain_specular":0.07000000029802322,"wrap":0.2199999988079071},"lod":{"crowd_animation_far_interval":4,"crowd_animation_full_rate_distance":22,"crowd_animation_half_rate_distance":48,"frustum_margin":6,"procedural_rig_distance":120,"terrain_distance":76},"materials":{"bindings":{"character":"model-default","foliage":"foliage-default","hostile_character":"model-default","model":"model-default","terrain":"terrain-default","water":"water-default"},"materials":[{"ambient_occlusion":1,"base_color_factor":[1,1,1],"clear_coat":0.11999999731779099,"clear_coat_roughness":0.3199999928474426,"emissive":[0,0,0],"features":{"model":"standard"},"id":"model-default","metallic":0,"perceptual_roughness":0.5600000023841858,"reflectance":0.5,"stylization":{"diffuse_band_mix":0.3499999940395355,"rim_scale":0.3499999940395355,"specular_aa_threshold":0.18000000715255737,"specular_aa_variance":0.15000000596046448},"template":"pbr_metallic_roughness"},{"ambient_occlusion":1,"base_color_factor":[1,1,1],"clear_coat":0,"clear_coat_roughness":0.6000000238418579,"emissive":[0,0,0],"features":{"model":"standard"},"id":"terrain-default","metallic":0,"perceptual_roughness":0.8600000143051147,"reflectance":0.41999998688697815,"stylization":{"diffuse_band_mix":0.20000000298023224,"rim_scale":0.18000000715255737,"specular_aa_threshold":0.18000000715255737,"specular_aa_variance":0.15000000596046448},"template":"pbr_metallic_roughness"},{"ambient_occlusion":1,"base_color_factor":[1,1,1],"clear_coat":0,"clear_coat_roughness":0.6000000238418579,"emissive":[0,0,0],"features":{"model":"standard"},"id":"foliage-default","metallic":0,"perceptual_roughness":0.8399999737739563,"reflectance":0.41999998688697815,"stylization":{"diffuse_band_mix":0.20000000298023224,"rim_scale":0.18000000715255737,"specular_aa_threshold":0.18000000715255737,"specular_aa_variance":0.15000000596046448},"template":"pbr_metallic_roughness"},{"caustic_color":[0.10000000149011612,0.14000000059604645,0.12999999523162842],"deep_color":[0.05000000074505806,0.25,0.41999998688697815],"foam_color":[0.9700000286102295,0.9900000095367432,1],"glint_color":[1.2000000476837158,1.0499999523162842,0.8500000238418579],"id":"water-default","reflection_color":[0.5799999833106995,0.7200000286102295,0.8799999952316284],"shallow_color":[0.43700000643730164,0.8970000147819519,0.9890000224113464],"template":"storybook_water"}],"schema_version":1},"name":"pajama-pbr-deferred","nature":{"foliage_contact_shadow_cast_strength":0,"foliage_contact_shadow_strength":0,"foliage_cull_distance_m":112,"foliage_density_scale":1,"foliage_gradient_power":1,"foliage_lod_start_m":48,"foliage_roughness":0.8399999737739563,"foliage_shadow_cascades":2,"foliage_subsurface_color":[0.3799999952316284,0.7200000286102295,0.18000000715255737],"foliage_taa_reactivity":0.30000001192092896,"foliage_tip_tint":[1.100000023841858,1.090000033378601,1.059999942779541],"foliage_transmission":0.5199999809265137,"wind_direction_degrees":52,"wind_speed":1,"wind_strength":1},"occlusion_culling":{"camera_reset_angle_degrees":3,"camera_reset_distance":0.75,"depth_bias":0.001500000013038516,"enabled":true,"history_frames":2},"passes":[{"blend_fraction":0.11999999731779099,"cache_reset_distance":6,"cascades":4,"caster_depth":96,"contact_shadow_distance":0.8500000238418579,"contact_shadow_steps":8,"contact_shadow_strength":0.6499999761581421,"contact_shadow_thickness":0.004000000189989805,"depth_bias":0.0001500000071246177,"enabled":true,"extent":120,"filter_radius_texels":1.649999976158142,"filter_samples":8,"foliage_cast_distance_m":26,"name":"sun-shadow","normal_bias_m":0.03500000014901161,"resolution":2048,"split_lambda":0.7200000286102295,"template":"shadow_map","update_intervals":[1,1,2,4]},{"enabled":true,"extent_m":320,"name":"cloud-shadow","resolution":256,"steps":12,"strength":0.7200000286102295,"template":"cloud_shadow_map","update_interval":2},{"entities":true,"name":"world","skinned":true,"sky":true,"template":"deferred_world","terrain":true,"windlines":true},{"enabled":true,"name":"hierarchical-depth","template":"hierarchical_depth"},{"enabled":true,"name":"opaque-reflections","template":"screen_space_reflections"},{"base_step_m":32,"depth_rejection_m":180,"dither_strength":0.8999999761581421,"enabled":true,"history_weight":0.8799999952316284,"light_steps":6,"max_optical_depth_per_step":0.44999998807907104,"name":"volumetric-clouds","reset_distance":120,"resolution_divisor":2,"step_growth":0.017999999225139618,"template":"volumetric_clouds","view_steps":24},{"ambient_strength":0.2800000011920929,"anisotropy":0.3499999940395355,"base_height_m":0,"bilateral_upsample":true,"debug_view":"off","enabled":true,"extinction_per_m":0.0035000001080334187,"height_falloff_per_m":0.04500000178813934,"history_weight":0.8999999761581421,"jitter_strength":0.8500000238418579,"max_distance_m":120,"name":"volumetric-fog","resolution_divisor":2,"scattering_albedo":[0.9399999976158142,0.9700000286102295,1],"shadow_strength":0.8999999761581421,"steps":16,"template":"volumetric_fog"},{"enabled":true,"name":"water","template":"water_composite"},{"debug_view":"off","depth_rejection":0.019999999552965164,"enabled":true,"history_weight":0.9100000262260437,"jitter_scale":1,"lock_luma_rejection":0.3499999940395355,"lock_response":0.07999999821186066,"motion_rejection":32,"name":"taa","reset_distance":8,"sharpen":0.15000000596046448,"stable_history_weight":0.9800000190734863,"template":"temporal_resolve"},{"enabled":true,"intensity":0.07999999821186066,"name":"bloom","soft_knee":0.5,"template":"bloom","threshold":1},{"auto_exposure":true,"auto_exposure_key":0.18000000715255737,"auto_exposure_max":4,"auto_exposure_min":0.25,"auto_exposure_speed_down":1.5,"auto_exposure_speed_up":3,"contrast":0.11999999731779099,"enabled":true,"exposure":0.9800000190734863,"highlight_tint":[0.07999999821186066,0.04399999976158142,-0.03200000151991844],"name":"display","operator":"pbr_neutral","saturation":1.159999966621399,"shadow_tint":[-0.05000000074505806,0.014999999664723873,0.10000000149011612],"stylisation":1,"template":"tone_map","vignette":0.18000000715255737},{"enabled":true,"name":"hud","template":"overlay"}],"quality":{"bloom_resolution_scale":0.5,"dynamic_resolution":false,"dynamic_resolution_min":0.6700000166893005,"dynamic_resolution_step":0.05000000074505806,"dynamic_resolution_target_ms":16.600000381469727,"scene_resolution_scale":1,"texture_budget_mib":512},"reflection_probes":[],"revision":0,"schema_version":1,"screen_space_reflections":{"binary_search_steps":5,"depth_rejection":0.003000000026077032,"edge_fade":0.07999999821186066,"enabled":true,"history_weight":0.8600000143051147,"intensity":0.550000011920929,"max_distance":48,"max_steps":48,"motion_rejection":40,"neighborhood_clamp":0.07999999821186066,"reset_distance":4,"roughness_cutoff":0.7200000286102295,"stride":0.75,"thickness":0.001500000013038516},"streaming":{"physics_ground_active_distance":32,"physics_ground_builds_inflight":2,"physics_ground_builds_per_tick":1,"physics_ground_drop_distance":80,"render_chunk_builds_inflight":4,"render_chunk_builds_per_frame":6},"terrain_shading":{"deep_dirt_color":[0.11999999731779099,0.06499999761581421,0.03200000151991844],"deep_dirt_roughness":0.6200000047683716,"detail_scale":1.7999999523162842,"detail_strength":0.054999999701976776,"dirt_color":[0.27000001072883606,0.12999999523162842,0.052000001072883606],"dirt_roughness":0.9300000071525574,"grass_cool_color":[0.04500000178813934,0.10499999672174454,0.03500000014901161],"grass_high_color":[0.08500000089406967,0.18000000715255737,0.03999999910593033],"grass_low_color":[0.20000000298023224,0.3400000035762787,0.07500000298023224],"grass_palette":{"colors_srgb":[[0.125490203499794,0.1921568661928177,0.2235294133424759],[0.25882354378700256,0.3764705955982208,0.3686274588108063],[0.3450980484485626,0.4745098054409027,0.3607843220233917],[0.4901960790157318,0.6313725709915161,0.4431372582912445],[0.6509804129600525,0.7568627595901489,0.5215686559677124],[0.9137254953384399,0.8980392217636108,0.5098039507865906]],"fbm_amplitude":0.6000000238418579,"fbm_frequency":12,"fbm_octaves":6,"repeat_m":4,"stops":[0,0.14000000059604645,0.3700000047683716,0.6499999761581421,0.8700000047683716,1]},"grass_roughness":0.800000011920929,"grass_warm_color":[0.25,0.36000001430511475,0.07000000029802322],"macro_scale":0.04500000178813934,"macro_strength":0.1599999964237213,"material_scale":4,"material_strength":0.8500000238418579,"rock_roughness":0.9200000166893005,"rock_tint":[0.7400000095367432,0.699999988079071,0.6399999856948853],"sand_color":[0.5,0.36000001430511475,0.15000000596046448],"sand_roughness":0.7200000286102295,"slope_end":0.6800000071525574,"slope_start":0.2800000011920929,"snow_amount":0,"snow_color":[0.8799999952316284,0.9399999976158142,1],"snow_fade":5,"snow_line":18,"wetness":0.14000000059604645,"wetness_height":-0.4000000059604645},"vegetation":{"density":0,"grass":{"clump_lean":0.550000011920929,"clump_size_m":0.699999988079071,"half_width_m":[0.017999999225139618,0.03400000184774399],"height_m":[0.1599999964237213,0.4000000059604645],"max_slope":0.3499999940395355,"min_altitude_m":-1.2999999523162842},"individuals_per_species":4,"rocks":{"bury":0.3400000035762787,"density":0.004000000189989805,"individuals_per_species":4,"max_slope":0.6200000047683716,"size_m":[0.2199999988079071,1.899999976158142],"species":["boulder","shard","slab","cobble"]},"species":[]},"water":{"absorption_per_meter":[0.3400000035762787,0.10499999672174454,0.054999999701976776],"caustics_strength":0.6800000071525574,"foam_strength":0.8199999928474426,"max_optical_depth":12,"normal_strength":1,"perceptual_roughness":0.1599999964237213,"reflection_strength":0.550000011920929,"refraction_strength":0.017999999225139618,"scattering_color":[0.03500000014901161,0.18000000715255737,0.23999999463558197],"wave_amplitude":1,"wave_length":1,"wave_speed":1}},"deferred_status":"implemented default backend graph: gbuffer -> lighting -> HZB/SSR -> water -> temporal -> bloom -> tone_map","material_library":{"default":{"bindings":{"character":"model-default","foliage":"foliage-default","hostile_character":"model-default","model":"model-default","terrain":"terrain-default","water":"water-default"},"materials":[{"ambient_occlusion":1,"base_color_factor":[1,1,1],"clear_coat":0.11999999731779099,"clear_coat_roughness":0.3199999928474426,"emissive":[0,0,0],"features":{"model":"standard"},"id":"model-default","metallic":0,"perceptual_roughness":0.5600000023841858,"reflectance":0.5,"stylization":{"diffuse_band_mix":0.3499999940395355,"rim_scale":0.3499999940395355,"specular_aa_threshold":0.18000000715255737,"specular_aa_variance":0.15000000596046448},"template":"pbr_metallic_roughness"},{"ambient_occlusion":1,"base_color_factor":[1,1,1],"clear_coat":0,"clear_coat_roughness":0.6000000238418579,"emissive":[0,0,0],"features":{"model":"standard"},"id":"terrain-default","metallic":0,"perceptual_roughness":0.8600000143051147,"reflectance":0.41999998688697815,"stylization":{"diffuse_band_mix":0.20000000298023224,"rim_scale":0.18000000715255737,"specular_aa_threshold":0.18000000715255737,"specular_aa_variance":0.15000000596046448},"template":"pbr_metallic_roughness"},{"ambient_occlusion":1,"base_color_factor":[1,1,1],"clear_coat":0,"clear_coat_roughness":0.6000000238418579,"emissive":[0,0,0],"features":{"model":"standard"},"id":"foliage-default","metallic":0,"perceptual_roughness":0.8399999737739563,"reflectance":0.41999998688697815,"stylization":{"diffuse_band_mix":0.20000000298023224,"rim_scale":0.18000000715255737,"specular_aa_threshold":0.18000000715255737,"specular_aa_variance":0.15000000596046448},"template":"pbr_metallic_roughness"},{"caustic_color":[0.10000000149011612,0.14000000059604645,0.12999999523162842],"deep_color":[0.05000000074505806,0.25,0.41999998688697815],"foam_color":[0.9700000286102295,0.9900000095367432,1],"glint_color":[1.2000000476837158,1.0499999523162842,0.8500000238418579],"id":"water-default","reflection_color":[0.5799999833106995,0.7200000286102295,0.8799999952316284],"shallow_color":[0.43700000643730164,0.8970000147819519,0.9890000224113464],"template":"storybook_water"}],"schema_version":1},"feature_example":{"features":{"model":"cloth","sheen_roughness":0.62,"sheen_strength":0.38}},"max_materials":64,"registered_templates":["pbr_metallic_roughness","storybook_surface","storybook_water"],"schema_version":1,"semantic_bindings":["model","character","hostile_character","terrain","foliage","water"],"skin_feature_example":{"features":{"model":"skin","subsurface_color":[1,0.78,0.66],"subsurface_profile":4.5,"subsurface_strength":0.34,"subsurface_transmission":0.22,"subsurface_wrap":0.42}},"surface_models":{"cloth":"Charlie sheen preset with optional strength/roughness overrides","skin":"bounded wrapped diffuse plus opt-in direct-light backscatter; profile color, wrap, transmission and profile exponent are table data","standard":"glTF metallic-roughness plus optional clear coat","unlit":"base color plus emissive through the opaque G-buffer"}},"max_passes":16,"registered_templates":["shadow_map","cloud_shadow_map","forward_world","deferred_world","hierarchical_depth","screen_space_reflections","volumetric_clouds","volumetric_fog","water_composite","temporal_resolve","bloom","tone_map","shader_effect","overlay"],"schema_version":1,"shader_extensions":{"abi":"pajama_shader_effect_v1","insertion":"after scene/water composition, before TAA, bloom and tone map","max_source_bytes":262144,"parameter_vectors":16,"workflow":"render_shader_template -> render_shader_put(dry_run) -> render_pipeline_patch -> capture"}},"shape_kinds":[{"doc":"one cube centered on pos (the right kind for dynamic bodies)","kind":"cube"},{"doc":"flat slab (rendered as a cube); the meadow floor","kind":"ground"},{"doc":"trunk + two-tier foliage; color tints the foliage","kind":"tree"},{"doc":"squat boulder sitting on the ground","kind":"rock"},{"doc":"stem + colored head","kind":"flower"},{"doc":"small animal: body, head, ears, tail","kind":"critter"},{"doc":"avatar: body, head, direction visor (server-managed)","kind":"player"}],"terrain_authoring":{"rivers":{"authority":"authored_startup_document","document_path":"terrain.rivers","items":{"additionalProperties":false,"properties":{"bank_width_m":{"default":3,"maximum":64,"minimum":0.5,"type":"number"},"control_points":{"description":"Upstream-to-downstream [x, water_y, z] points in world metres; water_y must not rise downstream","items":{"items":{"type":"number"},"maxItems":3,"minItems":3,"type":"array"},"maxItems":64,"minItems":2,"type":"array"},"depth_m":{"maximum":24,"minimum":0.25,"type":"number"},"id":{"description":"Stable persistence and authoring identity","pattern":"^[A-Za-z0-9_-]{1,64}$","type":"string"},"sample_spacing_m":{"default":2,"maximum":8,"minimum":0.5,"type":"number"},"width_m":{"maximum":64,"minimum":2,"type":"number"}},"required":["id","control_points","width_m","depth_m"],"type":"object"},"maxItems":32,"runtime_contract":{"centerline":"Catmull-Rom in XZ; monotone linear interpolation of water_y","density":"riverbed is part of the shared analytic terrain field consumed by render and collision","limits":{"segments_per_river":4096,"segments_total":8192},"water":"water mesh is derived per terrain chunk from the same spline and owns chunk seams deterministically"},"runtime_editing":"not exposed until terrain_sync supports caused document transactions"}},"version":"0.1.0","world_model":"Entities are documents: every component below is optional, serializable, and editable via JSON merge-patch. The ground plane is y=0."}}}
{"schema_version":1,"seq":7,"at":"2026-09-21T13:47:13.862Z","kind":"request","phase":"script_describe","request":{"cmd":"script_describe"}}
{"schema_version":1,"seq":8,"at":"2026-09-21T13:47:13.865Z","kind":"response","phase":"script_describe","response":{"ok":true,"data":{"abi":"-- Pajama Gameplay ABI v1. The engine supplies this declaration to agents/editors.\nexport type Frame = {\n    tick: number,\n    dt: number,\n    entity_count: number,\n    entities: buffer,\n    horde_squads: number,\n    horde_members: number,\n    horde_alive: number,\n    event_count: number,\n    events: {GameplayEvent},\n}\n\nexport type EventValue = boolean | number | string\nexport type GameplayEvent = {\n    name: string,\n    source_id: number?,\n    fields: {[string]: EventValue},\n}\n\n-- Entity indices are zero-based. Helpers validate the index and execute\n-- entirely inside Luau; the raw mutable buffer library is not exposed.\ndeclare pajama: {\n    entity_id: (frame: Frame, index: number) -> number,\n    entity_position: (frame: Frame, index: number) -> (number, number, number),\n    entity_health: (frame: Frame, index: number) -> (number, number),\n    entity_flags: (frame: Frame, index: number) -> number,\n    flags: { player: number, npc: number, global: number, damageable: number, controllable: number },\n}\n\nexport type Command =\n    { kind: \"broadcast\", text: string }\n  | { kind: \"set_data_number\", entity_id: number, key: string, value: number }\n  | { kind: \"set_health\", entity_id: number, hp: number }\n  | { kind: \"set_animation\", entity_id: number, animation: string? }\n  | { kind: \"apply_damage\", source_id: number?, target_id: number, amount: number }\n  | { kind: \"control_player\", player_id: number, fwd: number, strafe: number, turn: number, run: boolean, jump: boolean }\n  | { kind: \"build_prefab\", builder_id: number?, prefab: string, x: number, y: number, z: number, yaw: number?, scale: number? }\n  | { kind: \"terrain_brush\", operation: \"dig\" | \"add\", x: number, y: number, z: number, radius: number }\n\nexport type GameplayModule = {\n    tick: (frame: Frame) -> {Command}?,\n}\n\n-- A script must return one GameplayModule table.\n","activation":"next_tick_boundary","artifact_identity":{"algorithm":"sha256","canonicalization":"pajama-gameplay-script-artifact-v1","covers":["name","revision","tick_interval","sorted_capabilities","exact_source_bytes"],"field":"artifact_digest"},"authority":"immutable_frame_to_typed_commands","capabilities":["broadcast","build","combat","entity_data","entity_health","entity_animation","control_players","terrain"],"command_contract":{"commands":[{"capability":"broadcast","kind":"broadcast"},{"capability":"entity_data","kind":"set_data_number"},{"capability":"entity_health","kind":"set_health"},{"capability":"entity_animation","kind":"set_animation"},{"capability":"combat","kind":"apply_damage"},{"capability":"control_players","kind":"control_player"},{"capability":"build","kind":"build_prefab"},{"capability":"terrain","kind":"terrain_brush"}],"schema_version":1},"command_contract_v2":{"abi_version":1,"batch_limits":[{"applies_to":[],"comparison":"maximum_inclusive","metric":"returned_command_table_raw_len","pointer":"/limits/max_commands","scope":"returned_batch"}],"batch_validation":{"authoritative_prepare":"whole_returned_batch","command_array_ordering":"fixed_commit_phases_not_general_source_order","commit_phases":["entity_edits","terrain","damage","player_control","broadcast"],"decode":"whole_returned_batch","effect_completeness":"primary_intent_with_conservative_non_exhaustive_domains","input_events_on_rejection":"drained_not_replayed","recoverable_rejection":"no_authoritative_command_effects_before_rejection","rollback_after_commit_begins":"none","unknown_command_fields":"ignored","vm_state_on_rejection":"advanced_not_rolled_back"},"commands":[{"capability":"broadcast","conflicts":[],"effect":{"completeness":"conservative_non_exhaustive","domains":["chat","network"],"primary":"ephemeral_chat_output"},"fields":[{"constraints":[{"kind":"utf8"},{"kind":"maximum_bytes_from","pointer":"/limits/max_command_string_bytes"}],"name":"text","required":true,"value_type":"string"}],"kind":"broadcast","limits":[{"applies_to":["text"],"comparison":"maximum_inclusive","metric":"utf8_bytes","pointer":"/limits/max_command_string_bytes","scope":"field"},{"applies_to":[],"comparison":"maximum_inclusive","metric":"command_count","pointer":"/host_limits/max_broadcasts_per_transaction","scope":"returned_batch"}],"validation":{"authoritative_prepare_required":true,"dynamic_world_checks":false}},{"capability":"entity_data","conflicts":[{"domain":"entity_data_key","policy":"last_write_wins","scope":"single_batch","target_fields":["entity_id","key"]}],"effect":{"completeness":"conservative_non_exhaustive","domains":["entity_document","replication"],"primary":"entity_data_write"},"fields":[{"constraints":[{"kind":"finite"},{"kind":"exact_integer","maximum":9007199254740992,"minimum":0}],"name":"entity_id","required":true,"value_type":"number"},{"constraints":[{"kind":"utf8"},{"kind":"byte_length","maximum":64,"minimum":1},{"kind":"ascii_identifier"}],"name":"key","required":true,"value_type":"string"},{"constraints":[{"kind":"finite"}],"name":"value","required":true,"value_type":"number"}],"kind":"set_data_number","limits":[{"applies_to":["entity_id"],"comparison":"maximum_inclusive","metric":"distinct_existing_entity_ids","pointer":"/host_limits/max_entity_replacements_per_transaction","scope":"returned_batch"}],"validation":{"authoritative_prepare_required":true,"dynamic_world_checks":true}},{"capability":"entity_health","conflicts":[{"domain":"entity_vitals","policy":"reject_same_target","scope":"single_batch","target_fields":["entity_id"]}],"effect":{"completeness":"conservative_non_exhaustive","domains":["entity_vitals","entity_document","replication"],"primary":"entity_vitals_write"},"fields":[{"constraints":[{"kind":"finite"},{"kind":"exact_integer","maximum":9007199254740992,"minimum":0}],"name":"entity_id","required":true,"value_type":"number"},{"constraints":[{"kind":"finite"},{"kind":"number_range","maximum":3.4028234663852886e+38,"maximum_inclusive":true,"minimum":-3.4028234663852886e+38,"minimum_inclusive":true}],"name":"hp","required":true,"value_type":"number"}],"kind":"set_health","limits":[{"applies_to":["entity_id"],"comparison":"maximum_inclusive","metric":"distinct_existing_entity_ids","pointer":"/host_limits/max_entity_replacements_per_transaction","scope":"returned_batch"},{"applies_to":["entity_id"],"comparison":"maximum_inclusive","metric":"mutations_per_target","pointer":"/host_limits/max_health_mutations_per_entity_per_transaction","scope":"entity_id"}],"validation":{"authoritative_prepare_required":true,"dynamic_world_checks":true}},{"capability":"entity_animation","conflicts":[{"domain":"entity_animation","policy":"last_write_wins","scope":"single_batch","target_fields":["entity_id"]}],"effect":{"completeness":"conservative_non_exhaustive","domains":["entity_animation","entity_document","replication"],"primary":"entity_animation_write"},"fields":[{"constraints":[{"kind":"finite"},{"kind":"exact_integer","maximum":9007199254740992,"minimum":0}],"name":"entity_id","required":true,"value_type":"number"},{"constraints":[{"kind":"utf8"},{"kind":"byte_length","maximum":64,"minimum":0}],"default":{"kind":"null"},"name":"animation","required":false,"value_type":"string"}],"kind":"set_animation","limits":[{"applies_to":["entity_id"],"comparison":"maximum_inclusive","metric":"distinct_existing_entity_ids","pointer":"/host_limits/max_entity_replacements_per_transaction","scope":"returned_batch"}],"validation":{"authoritative_prepare_required":true,"dynamic_world_checks":true}},{"capability":"combat","conflicts":[{"domain":"damage_request","policy":"singleton","scope":"single_batch","target_fields":[]},{"domain":"entity_vitals","policy":"reject_same_target","scope":"single_batch","target_fields":["target_id"]},{"domain":"damage_control_target","policy":"reject_same_target","scope":"single_batch","target_fields":["target_id"]}],"effect":{"completeness":"conservative_non_exhaustive","domains":["entity_vitals","entity_lifecycle","destruction","physics","replication","events","profile"],"primary":"native_damage_pipeline"},"fields":[{"constraints":[{"kind":"finite"},{"kind":"exact_integer","maximum":9007199254740992,"minimum":0}],"default":{"kind":"null"},"name":"source_id","required":false,"value_type":"number"},{"constraints":[{"kind":"finite"},{"kind":"exact_integer","maximum":9007199254740992,"minimum":0}],"name":"target_id","required":true,"value_type":"number"},{"constraints":[{"kind":"finite"},{"kind":"number_range","maximum":100000,"maximum_inclusive":true,"minimum":0,"minimum_inclusive":false}],"name":"amount","required":true,"value_type":"number"}],"kind":"apply_damage","limits":[{"applies_to":[],"comparison":"maximum_inclusive","metric":"command_count","pointer":"/host_limits/max_damage_requests_per_transaction","scope":"returned_batch"},{"applies_to":["target_id"],"comparison":"maximum_inclusive","metric":"mutations_per_target","pointer":"/host_limits/max_health_mutations_per_entity_per_transaction","scope":"target_id"}],"validation":{"authoritative_prepare_required":true,"dynamic_world_checks":true}},{"capability":"control_players","conflicts":[{"domain":"player_control","policy":"reject_same_target","scope":"single_batch","target_fields":["player_id"]},{"domain":"damage_control_target","policy":"reject_same_target","scope":"single_batch","target_fields":["player_id"]}],"effect":{"completeness":"conservative_non_exhaustive","domains":["player_input"],"primary":"transient_player_input"},"fields":[{"constraints":[{"kind":"finite"},{"kind":"exact_integer","maximum":9007199254740992,"minimum":0}],"name":"player_id","required":true,"value_type":"number"},{"constraints":[{"kind":"finite"},{"kind":"number_range","maximum":1,"maximum_inclusive":true,"minimum":-1,"minimum_inclusive":true}],"name":"fwd","required":true,"value_type":"number"},{"constraints":[{"kind":"finite"},{"kind":"number_range","maximum":1,"maximum_inclusive":true,"minimum":-1,"minimum_inclusive":true}],"name":"strafe","required":true,"value_type":"number"},{"constraints":[{"kind":"finite"},{"kind":"number_range","maximum":1,"maximum_inclusive":true,"minimum":-1,"minimum_inclusive":true}],"name":"turn","required":true,"value_type":"number"},{"constraints":[],"name":"run","required":true,"value_type":"boolean"},{"constraints":[],"name":"jump","required":true,"value_type":"boolean"}],"kind":"control_player","limits":[{"applies_to":["player_id"],"comparison":"maximum_inclusive","metric":"commands_per_target","pointer":"/host_limits/max_player_controls_per_player_per_transaction","scope":"player_id"}],"validation":{"authoritative_prepare_required":true,"dynamic_world_checks":true}},{"capability":"build","conflicts":[],"effect":{"completeness":"conservative_non_exhaustive","domains":["entity_document","physics","replication"],"primary":"prefab_spawn_expansion"},"fields":[{"constraints":[{"kind":"finite"},{"kind":"exact_integer","maximum":9007199254740992,"minimum":0}],"default":{"kind":"null"},"name":"builder_id","required":false,"value_type":"number"},{"constraints":[{"kind":"utf8"},{"kind":"byte_length","maximum":265,"minimum":1}],"name":"prefab","required":true,"value_type":"string"},{"constraints":[{"kind":"finite"},{"kind":"number_range","maximum":3.4028234663852886e+38,"maximum_inclusive":true,"minimum":-3.4028234663852886e+38,"minimum_inclusive":true}],"name":"x","required":true,"value_type":"number"},{"constraints":[{"kind":"finite"},{"kind":"number_range","maximum":3.4028234663852886e+38,"maximum_inclusive":true,"minimum":-3.4028234663852886e+38,"minimum_inclusive":true}],"name":"y","required":true,"value_type":"number"},{"constraints":[{"kind":"finite"},{"kind":"number_range","maximum":3.4028234663852886e+38,"maximum_inclusive":true,"minimum":-3.4028234663852886e+38,"minimum_inclusive":true}],"name":"z","required":true,"value_type":"number"},{"constraints":[{"kind":"finite"},{"kind":"number_range","maximum":3.4028234663852886e+38,"maximum_inclusive":true,"minimum":-3.4028234663852886e+38,"minimum_inclusive":true}],"default":{"kind":"number","value":0},"name":"yaw","required":false,"value_type":"number"},{"constraints":[{"kind":"finite"},{"kind":"number_range","maximum":20,"maximum_inclusive":true,"minimum":0.1,"minimum_inclusive":true}],"default":{"kind":"number","value":1},"name":"scale","required":false,"value_type":"number"}],"kind":"build_prefab","limits":[{"applies_to":["prefab"],"comparison":"maximum_inclusive","metric":"cached_prefab_entity_count","pointer":"/host_limits/max_prefab_entities_per_command","scope":"each_command"},{"applies_to":["prefab"],"comparison":"maximum_inclusive","metric":"sum_expanded_prefab_entities","pointer":"/host_limits/max_built_entities_per_transaction","scope":"returned_batch"},{"applies_to":["builder_id","x","z"],"comparison":"maximum_inclusive","metric":"xz_distance_from_optional_builder","pointer":"/host_limits/build_range_m","scope":"each_command_when_builder_id_present"},{"applies_to":["scale"],"comparison":"minimum_inclusive","metric":"field_value","pointer":"/host_limits/min_build_scale","scope":"field"},{"applies_to":["scale"],"comparison":"maximum_inclusive","metric":"field_value","pointer":"/host_limits/max_build_scale","scope":"field"},{"applies_to":["x","z"],"comparison":"maximum_inclusive","metric":"absolute_coordinate","pointer":"/host_limits/world_xz_extent_m","scope":"field"},{"applies_to":["y"],"comparison":"minimum_inclusive","metric":"field_value","pointer":"/host_limits/world_min_y_m","scope":"field"},{"applies_to":["y"],"comparison":"maximum_inclusive","metric":"field_value","pointer":"/host_limits/world_max_y_m","scope":"field"}],"validation":{"authoritative_prepare_required":true,"dynamic_world_checks":true}},{"capability":"terrain","conflicts":[{"domain":"terrain_exact_brush","policy":"reject_exact_duplicate","scope":"authoritative_state_and_single_batch","target_fields":["operation","x","y","z","radius"]},{"domain":"terrain_volume_order","policy":"ordered","scope":"single_batch","target_fields":["x","y","z","radius"]}],"effect":{"completeness":"conservative_non_exhaustive","domains":["terrain_state","collision","navigation","replication","effects"],"primary":"terrain_sync_edit"},"fields":[{"constraints":[{"kind":"utf8"},{"kind":"one_of","values":["dig","add"]}],"name":"operation","required":true,"value_type":"string"},{"constraints":[{"kind":"finite"},{"kind":"number_range","maximum":3.4028234663852886e+38,"maximum_inclusive":true,"minimum":-3.4028234663852886e+38,"minimum_inclusive":true}],"name":"x","required":true,"value_type":"number"},{"constraints":[{"kind":"finite"},{"kind":"number_range","maximum":3.4028234663852886e+38,"maximum_inclusive":true,"minimum":-3.4028234663852886e+38,"minimum_inclusive":true}],"name":"y","required":true,"value_type":"number"},{"constraints":[{"kind":"finite"},{"kind":"number_range","maximum":3.4028234663852886e+38,"maximum_inclusive":true,"minimum":-3.4028234663852886e+38,"minimum_inclusive":true}],"name":"z","required":true,"value_type":"number"},{"constraints":[{"kind":"finite"},{"kind":"number_range","maximum":6,"maximum_inclusive":true,"minimum":0.4,"minimum_inclusive":true}],"name":"radius","required":true,"value_type":"number"}],"kind":"terrain_brush","limits":[{"applies_to":[],"comparison":"maximum_inclusive","metric":"command_count","pointer":"/host_limits/max_terrain_brushes_per_transaction","scope":"returned_batch"},{"applies_to":["radius"],"comparison":"minimum_inclusive","metric":"field_value","pointer":"/host_limits/min_terrain_brush_radius_m","scope":"field"},{"applies_to":["radius"],"comparison":"maximum_inclusive","metric":"field_value","pointer":"/host_limits/max_terrain_brush_radius_m","scope":"field"},{"applies_to":["x","z"],"comparison":"maximum_inclusive","metric":"absolute_coordinate","pointer":"/host_limits/world_xz_extent_m","scope":"field"},{"applies_to":["y"],"comparison":"minimum_inclusive","metric":"field_value","pointer":"/host_limits/world_min_y_m","scope":"field"},{"applies_to":["y"],"comparison":"maximum_inclusive","metric":"field_value","pointer":"/host_limits/world_max_y_m","scope":"field"}],"validation":{"authoritative_prepare_required":true,"dynamic_world_checks":true}}],"conflict_model":"conservative_non_exhaustive_hints","limit_pointer_base":"script_describe.data","schema_version":2},"command_contract_versions":{"preferred":2,"supported":[1,2]},"deployment":{"document":"independent_versioned_source_artifacts","durability_warning":"pending activation remains frozen; rollback or containment also freezes script execution until exact storage","publication":"atomic_write_ahead_then_tick_boundary_activation","status_coherence":"script_status.lifecycle_coherent compares every runtime and durable slot by canonical artifact identity","vm_heap":"reinitialized_from_source_on_process_restart"},"event_contract":{"delivery":{"active_trigger":"event_or_tick_interval","durability":"ephemeral","guarantee":"at_most_once","ordering":"fifo","overflow":"drop_oldest"},"events":[{"fields":[{"name":"amount","required":true,"value_type":"integer"},{"name":"kind","required":true,"value_type":"text"},{"name":"lethal","required":true,"value_type":"bool"}],"name":"entity_damaged","source_id":{"presence":"required","role":"target_entity"}},{"fields":[{"name":"text","required":true,"value_type":"text"}],"name":"player_chat","source_id":{"presence":"required","role":"player_entity"}},{"fields":[{"name":"name","required":true,"value_type":"text"}],"name":"player_joined","source_id":{"presence":"required","role":"player_entity"}},{"fields":[{"name":"grace_avatar","required":true,"value_type":"bool"}],"name":"player_left","source_id":{"presence":"required","role":"player_entity"}},{"fields":[{"name":"action","required":true,"value_type":"text"},{"name":"code","required":false,"value_type":"text"},{"name":"ok","required":true,"value_type":"bool"}],"name":"raid_action","source_id":{"presence":"optional","role":"avatar_entity"}},{"fields":[{"name":"code","required":false,"value_type":"text"},{"name":"dropped","required":true,"value_type":"bool"},{"name":"ok","required":true,"value_type":"bool"}],"name":"raid_death","source_id":{"presence":"optional","role":"avatar_entity"}},{"fields":[{"name":"code","required":false,"value_type":"text"},{"name":"ok","required":true,"value_type":"bool"}],"name":"raid_transition","source_id":{"presence":"optional","role":"avatar_entity"}},{"fields":[{"name":"cause","required":true,"value_type":"text"},{"name":"operation","required":true,"value_type":"text"}],"name":"terrain_brush","source_id":{"presence":"absent","role":"none"}}],"schema_version":1},"event_delivery":"bounded process-local queue; events are not restart-recoverable","host_limits":{"build_range_m":24,"max_broadcasts_per_transaction":16,"max_build_scale":20,"max_built_entities_per_transaction":256,"max_damage_requests_per_transaction":1,"max_entity_replacements_per_transaction":512,"max_health_mutations_per_entity_per_transaction":1,"max_player_controls_per_player_per_transaction":1,"max_prefab_entities_per_command":128,"max_terrain_brush_radius_m":6,"max_terrain_brushes_per_transaction":32,"min_build_scale":0.1,"min_terrain_brush_radius_m":0.4,"pending_event_queue_capacity":256,"world_max_y_m":512,"world_min_y_m":-128,"world_xz_extent_m":250},"limits":{"max_command_string_bytes":1024,"max_commands":2048,"max_entities":100000,"max_event_fields":16,"max_event_string_bytes":1024,"max_events":64,"max_frame_bytes":4194304,"max_interrupts":100000,"max_memory_bytes":33554432,"max_source_bytes":262144,"max_wall_time_us":2000,"suspend_after_faults":3},"mutation_commit_state":{"applied":"the requested lifecycle intent crossed its authoritative commit boundary","indeterminate":"delivery or durable/live reconciliation is uncertain; never replay, reconcile from script_status","not_applied":"the request made no lifecycle change; a caller may re-observe and form a new authorized request"},"runtime_mode":"process_local_abi1"}}}
{"schema_version":1,"seq":9,"at":"2026-09-21T13:47:13.866Z","kind":"request","phase":"script_status","request":{"cmd":"script_status"}}
{"schema_version":1,"seq":10,"at":"2026-09-21T13:47:13.868Z","kind":"response","phase":"script_status","response":{"ok":true,"data":{"deployment":{"activation_blocked":false,"authority_uncertain":false,"containment_hold":null,"disk_state":"exact","enabled":true,"format_version":1,"generation":0,"last_error":null,"path":"<isolated-run>/gameplay-script.json","persisted_format_version":null,"persisted_generation":0,"persistence":"local_file","publishing_generation":null,"recovery_required":false,"slots":{"active":null,"pending":null,"rollback":null}},"lifecycle_coherent":true,"limits":{"max_command_string_bytes":1024,"max_commands":2048,"max_entities":100000,"max_event_fields":16,"max_event_string_bytes":1024,"max_events":64,"max_frame_bytes":4194304,"max_interrupts":100000,"max_memory_bytes":33554432,"max_source_bytes":262144,"max_wall_time_us":2000,"suspend_after_faults":3},"runtime":{"active":null,"metrics":{"commands":0,"committed_batches":0,"committed_commands":0,"consecutive_faults":0,"faults":0,"host_rejections":0,"last_committed_tick":null,"last_run_us":0,"max_run_us":0,"memory_bytes":0,"runs":0},"pending":null,"rollback":null,"rollback_requested":false,"suspended":false}}}}
{"schema_version":1,"seq":11,"at":"2026-09-21T13:47:13.869Z","kind":"request","phase":"target_discovery","request":{"cmd":"query","tag":"agent-proof-controller","limit":1}}
{"schema_version":1,"seq":12,"at":"2026-09-21T13:47:13.871Z","kind":"response","phase":"target_discovery","response":{"ok":true,"data":{"count":1,"entities":[{"body":{"mode":"static"},"data":{"assembled_sections":0},"id":1,"name":"rescue-assembly-controller","shape":{"color":[0.9599999785423279,0.5,0.11999999731779099],"kind":"cube"},"tags":["agent-proof-controller"],"transform":{"pos":[-7,1,2],"rot_y":0,"scale":[1,2,1]}}]}}}
{"schema_version":1,"seq":13,"at":"2026-09-21T13:47:13.872Z","kind":"request","phase":"prefab_discovery","request":{"cmd":"prefabs"}}
{"schema_version":1,"seq":14,"at":"2026-09-21T13:47:13.873Z","kind":"response","phase":"prefab_discovery","response":{"ok":true,"data":{"prefabs":[{"doc":"One bounded rescue-platform section.","entities":1,"name":"rescue-span"}]}}}
{"schema_version":1,"seq":15,"at":"2026-09-21T13:47:51.953Z","kind":"authored_candidate","goal":"Author and publish a new bounded Luau rescue-platform mechanic from the live runtime contract; observe three typed build steps and a controller counter.","source":"-- Authored by the Codex assistant after discovering this isolated server's ABI.\n-- Build exactly three platform sections, one per scheduled invocation.\n-- This ABI1 local cursor is session-local; restart continuation is not claimed.\nlocal next_section = 1\nreturn {\n    tick = function(frame)\n        if next_section > 3 then return {} end\n        local section = next_section\n        next_section += 1\n        return {\n            {\n                kind = \"build_prefab\",\n                prefab = \"rescue-span\",\n                x = -4 + (section - 1) * 4,\n                y = 0.3 + (section - 1) * 0.5,\n                z = 2,\n                yaw = 0,\n                scale = 1,\n            },\n            {\n                kind = \"set_data_number\",\n                entity_id = 1,\n                key = \"assembled_sections\",\n                value = section,\n            },\n        }\n    end,\n}\n","command_ceiling":["build_prefab","set_data_number"]}
{"schema_version":1,"seq":16,"at":"2026-09-21T13:47:51.954Z","kind":"request","phase":"prepublish_status","request":{"cmd":"script_status"}}
{"schema_version":1,"seq":17,"at":"2026-09-21T13:47:51.957Z","kind":"response","phase":"prepublish_status","response":{"ok":true,"data":{"deployment":{"activation_blocked":false,"authority_uncertain":false,"containment_hold":null,"disk_state":"exact","enabled":true,"format_version":1,"generation":0,"last_error":null,"path":"<isolated-run>/gameplay-script.json","persisted_format_version":null,"persisted_generation":0,"persistence":"local_file","publishing_generation":null,"recovery_required":false,"slots":{"active":null,"pending":null,"rollback":null}},"lifecycle_coherent":true,"limits":{"max_command_string_bytes":1024,"max_commands":2048,"max_entities":100000,"max_event_fields":16,"max_event_string_bytes":1024,"max_events":64,"max_frame_bytes":4194304,"max_interrupts":100000,"max_memory_bytes":33554432,"max_source_bytes":262144,"max_wall_time_us":2000,"suspend_after_faults":3},"runtime":{"active":null,"metrics":{"commands":0,"committed_batches":0,"committed_commands":0,"consecutive_faults":0,"faults":0,"host_rejections":0,"last_committed_tick":null,"last_run_us":0,"max_run_us":0,"memory_bytes":0,"runs":0},"pending":null,"rollback":null,"rollback_requested":false,"suspended":false}}}}
{"schema_version":1,"seq":18,"at":"2026-09-21T13:47:51.958Z","kind":"request","phase":"dry_run","request":{"name":"ai-rescue-platform","revision":1,"source":"-- Authored by the Codex assistant after discovering this isolated server's ABI.\n-- Build exactly three platform sections, one per scheduled invocation.\n-- This ABI1 local cursor is session-local; restart continuation is not claimed.\nlocal next_section = 1\nreturn {\n    tick = function(frame)\n        if next_section > 3 then return {} end\n        local section = next_section\n        next_section += 1\n        return {\n            {\n                kind = \"build_prefab\",\n                prefab = \"rescue-span\",\n                x = -4 + (section - 1) * 4,\n                y = 0.3 + (section - 1) * 0.5,\n                z = 2,\n                yaw = 0,\n                scale = 1,\n            },\n            {\n                kind = \"set_data_number\",\n                entity_id = 1,\n                key = \"assembled_sections\",\n                value = section,\n            },\n        }\n    end,\n}\n","tick_interval":20,"capabilities":["build","entity_data"],"cmd":"script_put","expected_revision":0,"expected_active_artifact_digest":"","expected_deployment_generation":0,"dry_run":true}}
{"schema_version":1,"seq":19,"at":"2026-09-21T13:47:51.962Z","kind":"response","phase":"dry_run","response":{"ok":true,"data":{"artifact_digest":"13c449bb0780d769898656cd22a78eb4573f2501b256402f121a7bb67aef29c6","bytecode_bytes":521,"dry_run":true,"name":"ai-rescue-platform","revision":1,"source_hash":"4b0a8d45998eac26"}}}
{"schema_version":1,"seq":20,"at":"2026-09-21T13:47:51.962Z","kind":"request","phase":"publish","request":{"name":"ai-rescue-platform","revision":1,"source":"-- Authored by the Codex assistant after discovering this isolated server's ABI.\n-- Build exactly three platform sections, one per scheduled invocation.\n-- This ABI1 local cursor is session-local; restart continuation is not claimed.\nlocal next_section = 1\nreturn {\n    tick = function(frame)\n        if next_section > 3 then return {} end\n        local section = next_section\n        next_section += 1\n        return {\n            {\n                kind = \"build_prefab\",\n                prefab = \"rescue-span\",\n                x = -4 + (section - 1) * 4,\n                y = 0.3 + (section - 1) * 0.5,\n                z = 2,\n                yaw = 0,\n                scale = 1,\n            },\n            {\n                kind = \"set_data_number\",\n                entity_id = 1,\n                key = \"assembled_sections\",\n                value = section,\n            },\n        }\n    end,\n}\n","tick_interval":20,"capabilities":["build","entity_data"],"cmd":"script_put","expected_revision":0,"expected_active_artifact_digest":"","expected_deployment_generation":0,"dry_run":false}}
{"schema_version":1,"seq":21,"at":"2026-09-21T13:47:51.973Z","kind":"response","phase":"publish","response":{"ok":true,"data":{"artifact_digest":"13c449bb0780d769898656cd22a78eb4573f2501b256402f121a7bb67aef29c6","bytecode_bytes":521,"commit_state":"applied","deployment":{"activation_blocked":false,"authority_uncertain":false,"containment_hold":null,"disk_state":"exact","enabled":true,"format_version":1,"generation":1,"last_error":null,"path":"<isolated-run>/gameplay-script.json","persisted_format_version":1,"persisted_generation":1,"persistence":"local_file","publishing_generation":null,"recovery_required":false,"slots":{"active":null,"pending":{"artifact_digest":"13c449bb0780d769898656cd22a78eb4573f2501b256402f121a7bb67aef29c6","capabilities":["build","entity_data"],"name":"ai-rescue-platform","revision":1,"source_hash":"4b0a8d45998eac26","tick_interval":20},"rollback":null}},"dry_run":false,"name":"ai-rescue-platform","revision":1,"source_hash":"4b0a8d45998eac26"}}}
{"schema_version":1,"seq":22,"at":"2026-09-21T13:47:51.974Z","kind":"request","phase":"observe_progress","request":{"cmd":"query","tag":"agent-proof-controller","limit":1}}
{"schema_version":1,"seq":23,"at":"2026-09-21T13:47:51.975Z","kind":"response","phase":"observe_progress","response":{"ok":true,"data":{"count":1,"entities":[{"body":{"mode":"static"},"data":{"assembled_sections":0},"id":1,"name":"rescue-assembly-controller","shape":{"color":[0.9599999785423279,0.5,0.11999999731779099],"kind":"cube"},"tags":["agent-proof-controller"],"transform":{"pos":[-7,1,2],"rot_y":0,"scale":[1,2,1]}}]}}}
{"schema_version":1,"seq":24,"at":"2026-09-21T13:47:51.976Z","kind":"request","phase":"observe_platforms","request":{"cmd":"query","tag":"agent-proof-platform","limit":8}}
{"schema_version":1,"seq":25,"at":"2026-09-21T13:47:51.977Z","kind":"response","phase":"observe_platforms","response":{"ok":true,"data":{"count":0,"entities":[]}}}
{"schema_version":1,"seq":26,"at":"2026-09-21T13:47:51.977Z","kind":"request","phase":"activation","request":{"cmd":"script_status"}}
{"schema_version":1,"seq":27,"at":"2026-09-21T13:47:51.979Z","kind":"response","phase":"activation","response":{"ok":true,"data":{"deployment":{"activation_blocked":false,"authority_uncertain":false,"containment_hold":null,"disk_state":"exact","enabled":true,"format_version":1,"generation":1,"last_error":null,"path":"<isolated-run>/gameplay-script.json","persisted_format_version":1,"persisted_generation":1,"persistence":"local_file","publishing_generation":null,"recovery_required":false,"slots":{"active":null,"pending":{"artifact_digest":"13c449bb0780d769898656cd22a78eb4573f2501b256402f121a7bb67aef29c6","capabilities":["build","entity_data"],"name":"ai-rescue-platform","revision":1,"source_hash":"4b0a8d45998eac26","tick_interval":20},"rollback":null}},"lifecycle_coherent":true,"limits":{"max_command_string_bytes":1024,"max_commands":2048,"max_entities":100000,"max_event_fields":16,"max_event_string_bytes":1024,"max_events":64,"max_frame_bytes":4194304,"max_interrupts":100000,"max_memory_bytes":33554432,"max_source_bytes":262144,"max_wall_time_us":2000,"suspend_after_faults":3},"runtime":{"active":null,"metrics":{"commands":0,"committed_batches":0,"committed_commands":0,"consecutive_faults":0,"faults":0,"host_rejections":0,"last_committed_tick":null,"last_run_us":0,"max_run_us":0,"memory_bytes":0,"runs":0},"pending":{"artifact_digest":"13c449bb0780d769898656cd22a78eb4573f2501b256402f121a7bb67aef29c6","bytecode_bytes":521,"capabilities":["build","entity_data"],"name":"ai-rescue-platform","revision":1,"source_hash":"4b0a8d45998eac26","tick_interval":20},"rollback":null,"rollback_requested":false,"suspended":false}}}}
{"schema_version":1,"seq":28,"at":"2026-09-21T13:47:52.232Z","kind":"request","phase":"observe_progress","request":{"cmd":"query","tag":"agent-proof-controller","limit":1}}
{"schema_version":1,"seq":29,"at":"2026-09-21T13:47:52.234Z","kind":"response","phase":"observe_progress","response":{"ok":true,"data":{"count":1,"entities":[{"body":{"mode":"static"},"data":{"assembled_sections":0},"id":1,"name":"rescue-assembly-controller","shape":{"color":[0.9599999785423279,0.5,0.11999999731779099],"kind":"cube"},"tags":["agent-proof-controller"],"transform":{"pos":[-7,1,2],"rot_y":0,"scale":[1,2,1]}}]}}}
{"schema_version":1,"seq":30,"at":"2026-09-21T13:47:52.234Z","kind":"request","phase":"observe_platforms","request":{"cmd":"query","tag":"agent-proof-platform","limit":8}}
{"schema_version":1,"seq":31,"at":"2026-09-21T13:47:52.236Z","kind":"response","phase":"observe_platforms","response":{"ok":true,"data":{"count":0,"entities":[]}}}
{"schema_version":1,"seq":32,"at":"2026-09-21T13:47:52.236Z","kind":"request","phase":"activation","request":{"cmd":"script_status"}}
{"schema_version":1,"seq":33,"at":"2026-09-21T13:47:52.237Z","kind":"response","phase":"activation","response":{"ok":true,"data":{"deployment":{"activation_blocked":false,"authority_uncertain":false,"containment_hold":null,"disk_state":"exact","enabled":true,"format_version":1,"generation":2,"last_error":null,"path":"<isolated-run>/gameplay-script.json","persisted_format_version":1,"persisted_generation":2,"persistence":"local_file","publishing_generation":null,"recovery_required":false,"slots":{"active":{"artifact_digest":"13c449bb0780d769898656cd22a78eb4573f2501b256402f121a7bb67aef29c6","capabilities":["build","entity_data"],"name":"ai-rescue-platform","revision":1,"source_hash":"4b0a8d45998eac26","tick_interval":20},"pending":null,"rollback":null}},"lifecycle_coherent":true,"limits":{"max_command_string_bytes":1024,"max_commands":2048,"max_entities":100000,"max_event_fields":16,"max_event_string_bytes":1024,"max_events":64,"max_frame_bytes":4194304,"max_interrupts":100000,"max_memory_bytes":33554432,"max_source_bytes":262144,"max_wall_time_us":2000,"suspend_after_faults":3},"runtime":{"active":{"artifact_digest":"13c449bb0780d769898656cd22a78eb4573f2501b256402f121a7bb67aef29c6","bytecode_bytes":521,"capabilities":["build","entity_data"],"name":"ai-rescue-platform","revision":1,"source_hash":"4b0a8d45998eac26","tick_interval":20},"metrics":{"commands":0,"committed_batches":0,"committed_commands":0,"consecutive_faults":0,"faults":0,"host_rejections":0,"last_committed_tick":null,"last_run_us":0,"max_run_us":0,"memory_bytes":0,"runs":0},"pending":null,"rollback":null,"rollback_requested":false,"suspended":false}}}}
{"schema_version":1,"seq":34,"at":"2026-09-21T13:47:52.500Z","kind":"request","phase":"observe_progress","request":{"cmd":"query","tag":"agent-proof-controller","limit":1}}
{"schema_version":1,"seq":35,"at":"2026-09-21T13:47:52.502Z","kind":"response","phase":"observe_progress","response":{"ok":true,"data":{"count":1,"entities":[{"body":{"mode":"static"},"data":{"assembled_sections":0},"id":1,"name":"rescue-assembly-controller","shape":{"color":[0.9599999785423279,0.5,0.11999999731779099],"kind":"cube"},"tags":["agent-proof-controller"],"transform":{"pos":[-7,1,2],"rot_y":0,"scale":[1,2,1]}}]}}}
{"schema_version":1,"seq":36,"at":"2026-09-21T13:47:52.503Z","kind":"request","phase":"observe_platforms","request":{"cmd":"query","tag":"agent-proof-platform","limit":8}}
{"schema_version":1,"seq":37,"at":"2026-09-21T13:47:52.504Z","kind":"response","phase":"observe_platforms","response":{"ok":true,"data":{"count":0,"entities":[]}}}
{"schema_version":1,"seq":38,"at":"2026-09-21T13:47:52.505Z","kind":"request","phase":"activation","request":{"cmd":"script_status"}}
{"schema_version":1,"seq":39,"at":"2026-09-21T13:47:52.506Z","kind":"response","phase":"activation","response":{"ok":true,"data":{"deployment":{"activation_blocked":false,"authority_uncertain":false,"containment_hold":null,"disk_state":"exact","enabled":true,"format_version":1,"generation":2,"last_error":null,"path":"<isolated-run>/gameplay-script.json","persisted_format_version":1,"persisted_generation":2,"persistence":"local_file","publishing_generation":null,"recovery_required":false,"slots":{"active":{"artifact_digest":"13c449bb0780d769898656cd22a78eb4573f2501b256402f121a7bb67aef29c6","capabilities":["build","entity_data"],"name":"ai-rescue-platform","revision":1,"source_hash":"4b0a8d45998eac26","tick_interval":20},"pending":null,"rollback":null}},"lifecycle_coherent":true,"limits":{"max_command_string_bytes":1024,"max_commands":2048,"max_entities":100000,"max_event_fields":16,"max_event_string_bytes":1024,"max_events":64,"max_frame_bytes":4194304,"max_interrupts":100000,"max_memory_bytes":33554432,"max_source_bytes":262144,"max_wall_time_us":2000,"suspend_after_faults":3},"runtime":{"active":{"artifact_digest":"13c449bb0780d769898656cd22a78eb4573f2501b256402f121a7bb67aef29c6","bytecode_bytes":521,"capabilities":["build","entity_data"],"name":"ai-rescue-platform","revision":1,"source_hash":"4b0a8d45998eac26","tick_interval":20},"metrics":{"commands":0,"committed_batches":0,"committed_commands":0,"consecutive_faults":0,"faults":0,"host_rejections":0,"last_committed_tick":null,"last_run_us":0,"max_run_us":0,"memory_bytes":0,"runs":0},"pending":null,"rollback":null,"rollback_requested":false,"suspended":false}}}}
{"schema_version":1,"seq":40,"at":"2026-09-21T13:47:52.763Z","kind":"request","phase":"observe_progress","request":{"cmd":"query","tag":"agent-proof-controller","limit":1}}
{"schema_version":1,"seq":41,"at":"2026-09-21T13:47:52.765Z","kind":"response","phase":"observe_progress","response":{"ok":true,"data":{"count":1,"entities":[{"body":{"mode":"static"},"data":{"assembled_sections":0},"id":1,"name":"rescue-assembly-controller","shape":{"color":[0.9599999785423279,0.5,0.11999999731779099],"kind":"cube"},"tags":["agent-proof-controller"],"transform":{"pos":[-7,1,2],"rot_y":0,"scale":[1,2,1]}}]}}}
{"schema_version":1,"seq":42,"at":"2026-09-21T13:47:52.765Z","kind":"request","phase":"observe_platforms","request":{"cmd":"query","tag":"agent-proof-platform","limit":8}}
{"schema_version":1,"seq":43,"at":"2026-09-21T13:47:52.766Z","kind":"response","phase":"observe_platforms","response":{"ok":true,"data":{"count":0,"entities":[]}}}
{"schema_version":1,"seq":44,"at":"2026-09-21T13:47:52.767Z","kind":"request","phase":"activation","request":{"cmd":"script_status"}}
{"schema_version":1,"seq":45,"at":"2026-09-21T13:47:52.768Z","kind":"response","phase":"activation","response":{"ok":true,"data":{"deployment":{"activation_blocked":false,"authority_uncertain":false,"containment_hold":null,"disk_state":"exact","enabled":true,"format_version":1,"generation":2,"last_error":null,"path":"<isolated-run>/gameplay-script.json","persisted_format_version":1,"persisted_generation":2,"persistence":"local_file","publishing_generation":null,"recovery_required":false,"slots":{"active":{"artifact_digest":"13c449bb0780d769898656cd22a78eb4573f2501b256402f121a7bb67aef29c6","capabilities":["build","entity_data"],"name":"ai-rescue-platform","revision":1,"source_hash":"4b0a8d45998eac26","tick_interval":20},"pending":null,"rollback":null}},"lifecycle_coherent":true,"limits":{"max_command_string_bytes":1024,"max_commands":2048,"max_entities":100000,"max_event_fields":16,"max_event_string_bytes":1024,"max_events":64,"max_frame_bytes":4194304,"max_interrupts":100000,"max_memory_bytes":33554432,"max_source_bytes":262144,"max_wall_time_us":2000,"suspend_after_faults":3},"runtime":{"active":{"artifact_digest":"13c449bb0780d769898656cd22a78eb4573f2501b256402f121a7bb67aef29c6","bytecode_bytes":521,"capabilities":["build","entity_data"],"name":"ai-rescue-platform","revision":1,"source_hash":"4b0a8d45998eac26","tick_interval":20},"metrics":{"commands":0,"committed_batches":0,"committed_commands":0,"consecutive_faults":0,"faults":0,"host_rejections":0,"last_committed_tick":null,"last_run_us":0,"max_run_us":0,"memory_bytes":0,"runs":0},"pending":null,"rollback":null,"rollback_requested":false,"suspended":false}}}}
{"schema_version":1,"seq":46,"at":"2026-09-21T13:47:53.032Z","kind":"request","phase":"observe_progress","request":{"cmd":"query","tag":"agent-proof-controller","limit":1}}
{"schema_version":1,"seq":47,"at":"2026-09-21T13:47:53.033Z","kind":"response","phase":"observe_progress","response":{"ok":true,"data":{"count":1,"entities":[{"body":{"mode":"static"},"data":{"assembled_sections":1},"id":1,"name":"rescue-assembly-controller","shape":{"color":[0.9599999785423279,0.5,0.11999999731779099],"kind":"cube"},"tags":["agent-proof-controller"],"transform":{"pos":[-7,1,2],"rot_y":0,"scale":[1,2,1]}}]}}}
{"schema_version":1,"seq":48,"at":"2026-09-21T13:47:53.034Z","kind":"request","phase":"observe_platforms","request":{"cmd":"query","tag":"agent-proof-platform","limit":8}}
{"schema_version":1,"seq":49,"at":"2026-09-21T13:47:53.035Z","kind":"response","phase":"observe_platforms","response":{"ok":true,"data":{"count":1,"entities":[{"body":{"friction":0.800000011920929,"mode":"static","restitution":0},"id":3,"name":"rescue-platform-section","shape":{"color":[0.07999999821186066,0.6800000071525574,0.5799999833106995],"kind":"cube"},"tags":["agent-proof-platform","prefab:rescue-span"],"transform":{"pos":[-4,0.30000001192092896,2],"rot_y":0,"scale":[3.700000047683716,0.6000000238418579,3]}}]}}}
{"schema_version":1,"seq":50,"at":"2026-09-21T13:47:53.036Z","kind":"request","phase":"activation","request":{"cmd":"script_status"}}
{"schema_version":1,"seq":51,"at":"2026-09-21T13:47:53.037Z","kind":"response","phase":"activation","response":{"ok":true,"data":{"deployment":{"activation_blocked":false,"authority_uncertain":false,"containment_hold":null,"disk_state":"exact","enabled":true,"format_version":1,"generation":2,"last_error":null,"path":"<isolated-run>/gameplay-script.json","persisted_format_version":1,"persisted_generation":2,"persistence":"local_file","publishing_generation":null,"recovery_required":false,"slots":{"active":{"artifact_digest":"13c449bb0780d769898656cd22a78eb4573f2501b256402f121a7bb67aef29c6","capabilities":["build","entity_data"],"name":"ai-rescue-platform","revision":1,"source_hash":"4b0a8d45998eac26","tick_interval":20},"pending":null,"rollback":null}},"lifecycle_coherent":true,"limits":{"max_command_string_bytes":1024,"max_commands":2048,"max_entities":100000,"max_event_fields":16,"max_event_string_bytes":1024,"max_events":64,"max_frame_bytes":4194304,"max_interrupts":100000,"max_memory_bytes":33554432,"max_source_bytes":262144,"max_wall_time_us":2000,"suspend_after_faults":3},"runtime":{"active":{"artifact_digest":"13c449bb0780d769898656cd22a78eb4573f2501b256402f121a7bb67aef29c6","bytecode_bytes":521,"capabilities":["build","entity_data"],"name":"ai-rescue-platform","revision":1,"source_hash":"4b0a8d45998eac26","tick_interval":20},"metrics":{"commands":2,"committed_batches":1,"committed_commands":2,"consecutive_faults":0,"faults":0,"host_rejections":0,"last_committed_tick":780,"last_run_us":235,"max_run_us":235,"memory_bytes":649784,"runs":1},"pending":null,"rollback":null,"rollback_requested":false,"suspended":false}}}}
{"schema_version":1,"seq":52,"at":"2026-09-21T13:47:53.306Z","kind":"request","phase":"observe_progress","request":{"cmd":"query","tag":"agent-proof-controller","limit":1}}
{"schema_version":1,"seq":53,"at":"2026-09-21T13:47:53.307Z","kind":"response","phase":"observe_progress","response":{"ok":true,"data":{"count":1,"entities":[{"body":{"mode":"static"},"data":{"assembled_sections":1},"id":1,"name":"rescue-assembly-controller","shape":{"color":[0.9599999785423279,0.5,0.11999999731779099],"kind":"cube"},"tags":["agent-proof-controller"],"transform":{"pos":[-7,1,2],"rot_y":0,"scale":[1,2,1]}}]}}}
{"schema_version":1,"seq":54,"at":"2026-09-21T13:47:53.308Z","kind":"request","phase":"observe_platforms","request":{"cmd":"query","tag":"agent-proof-platform","limit":8}}
{"schema_version":1,"seq":55,"at":"2026-09-21T13:47:53.309Z","kind":"response","phase":"observe_platforms","response":{"ok":true,"data":{"count":1,"entities":[{"body":{"friction":0.800000011920929,"mode":"static","restitution":0},"id":3,"name":"rescue-platform-section","shape":{"color":[0.07999999821186066,0.6800000071525574,0.5799999833106995],"kind":"cube"},"tags":["agent-proof-platform","prefab:rescue-span"],"transform":{"pos":[-4,0.30000001192092896,2],"rot_y":0,"scale":[3.700000047683716,0.6000000238418579,3]}}]}}}
{"schema_version":1,"seq":56,"at":"2026-09-21T13:47:53.309Z","kind":"request","phase":"activation","request":{"cmd":"script_status"}}
{"schema_version":1,"seq":57,"at":"2026-09-21T13:47:53.310Z","kind":"response","phase":"activation","response":{"ok":true,"data":{"deployment":{"activation_blocked":false,"authority_uncertain":false,"containment_hold":null,"disk_state":"exact","enabled":true,"format_version":1,"generation":2,"last_error":null,"path":"<isolated-run>/gameplay-script.json","persisted_format_version":1,"persisted_generation":2,"persistence":"local_file","publishing_generation":null,"recovery_required":false,"slots":{"active":{"artifact_digest":"13c449bb0780d769898656cd22a78eb4573f2501b256402f121a7bb67aef29c6","capabilities":["build","entity_data"],"name":"ai-rescue-platform","revision":1,"source_hash":"4b0a8d45998eac26","tick_interval":20},"pending":null,"rollback":null}},"lifecycle_coherent":true,"limits":{"max_command_string_bytes":1024,"max_commands":2048,"max_entities":100000,"max_event_fields":16,"max_event_string_bytes":1024,"max_events":64,"max_frame_bytes":4194304,"max_interrupts":100000,"max_memory_bytes":33554432,"max_source_bytes":262144,"max_wall_time_us":2000,"suspend_after_faults":3},"runtime":{"active":{"artifact_digest":"13c449bb0780d769898656cd22a78eb4573f2501b256402f121a7bb67aef29c6","bytecode_bytes":521,"capabilities":["build","entity_data"],"name":"ai-rescue-platform","revision":1,"source_hash":"4b0a8d45998eac26","tick_interval":20},"metrics":{"commands":2,"committed_batches":1,"committed_commands":2,"consecutive_faults":0,"faults":0,"host_rejections":0,"last_committed_tick":780,"last_run_us":235,"max_run_us":235,"memory_bytes":649784,"runs":1},"pending":null,"rollback":null,"rollback_requested":false,"suspended":false}}}}
{"schema_version":1,"seq":58,"at":"2026-09-21T13:47:53.562Z","kind":"request","phase":"observe_progress","request":{"cmd":"query","tag":"agent-proof-controller","limit":1}}
{"schema_version":1,"seq":59,"at":"2026-09-21T13:47:53.563Z","kind":"response","phase":"observe_progress","response":{"ok":true,"data":{"count":1,"entities":[{"body":{"mode":"static"},"data":{"assembled_sections":1},"id":1,"name":"rescue-assembly-controller","shape":{"color":[0.9599999785423279,0.5,0.11999999731779099],"kind":"cube"},"tags":["agent-proof-controller"],"transform":{"pos":[-7,1,2],"rot_y":0,"scale":[1,2,1]}}]}}}
{"schema_version":1,"seq":60,"at":"2026-09-21T13:47:53.564Z","kind":"request","phase":"observe_platforms","request":{"cmd":"query","tag":"agent-proof-platform","limit":8}}
{"schema_version":1,"seq":61,"at":"2026-09-21T13:47:53.565Z","kind":"response","phase":"observe_platforms","response":{"ok":true,"data":{"count":1,"entities":[{"body":{"friction":0.800000011920929,"mode":"static","restitution":0},"id":3,"name":"rescue-platform-section","shape":{"color":[0.07999999821186066,0.6800000071525574,0.5799999833106995],"kind":"cube"},"tags":["agent-proof-platform","prefab:rescue-span"],"transform":{"pos":[-4,0.30000001192092896,2],"rot_y":0,"scale":[3.700000047683716,0.6000000238418579,3]}}]}}}
{"schema_version":1,"seq":62,"at":"2026-09-21T13:47:53.565Z","kind":"request","phase":"activation","request":{"cmd":"script_status"}}
{"schema_version":1,"seq":63,"at":"2026-09-21T13:47:53.567Z","kind":"response","phase":"activation","response":{"ok":true,"data":{"deployment":{"activation_blocked":false,"authority_uncertain":false,"containment_hold":null,"disk_state":"exact","enabled":true,"format_version":1,"generation":2,"last_error":null,"path":"<isolated-run>/gameplay-script.json","persisted_format_version":1,"persisted_generation":2,"persistence":"local_file","publishing_generation":null,"recovery_required":false,"slots":{"active":{"artifact_digest":"13c449bb0780d769898656cd22a78eb4573f2501b256402f121a7bb67aef29c6","capabilities":["build","entity_data"],"name":"ai-rescue-platform","revision":1,"source_hash":"4b0a8d45998eac26","tick_interval":20},"pending":null,"rollback":null}},"lifecycle_coherent":true,"limits":{"max_command_string_bytes":1024,"max_commands":2048,"max_entities":100000,"max_event_fields":16,"max_event_string_bytes":1024,"max_events":64,"max_frame_bytes":4194304,"max_interrupts":100000,"max_memory_bytes":33554432,"max_source_bytes":262144,"max_wall_time_us":2000,"suspend_after_faults":3},"runtime":{"active":{"artifact_digest":"13c449bb0780d769898656cd22a78eb4573f2501b256402f121a7bb67aef29c6","bytecode_bytes":521,"capabilities":["build","entity_data"],"name":"ai-rescue-platform","revision":1,"source_hash":"4b0a8d45998eac26","tick_interval":20},"metrics":{"commands":2,"committed_batches":1,"committed_commands":2,"consecutive_faults":0,"faults":0,"host_rejections":0,"last_committed_tick":780,"last_run_us":235,"max_run_us":235,"memory_bytes":649784,"runs":1},"pending":null,"rollback":null,"rollback_requested":false,"suspended":false}}}}
{"schema_version":1,"seq":64,"at":"2026-09-21T13:47:53.829Z","kind":"request","phase":"observe_progress","request":{"cmd":"query","tag":"agent-proof-controller","limit":1}}
{"schema_version":1,"seq":65,"at":"2026-09-21T13:47:53.831Z","kind":"response","phase":"observe_progress","response":{"ok":true,"data":{"count":1,"entities":[{"body":{"mode":"static"},"data":{"assembled_sections":2},"id":1,"name":"rescue-assembly-controller","shape":{"color":[0.9599999785423279,0.5,0.11999999731779099],"kind":"cube"},"tags":["agent-proof-controller"],"transform":{"pos":[-7,1,2],"rot_y":0,"scale":[1,2,1]}}]}}}
{"schema_version":1,"seq":66,"at":"2026-09-21T13:47:53.831Z","kind":"request","phase":"observe_platforms","request":{"cmd":"query","tag":"agent-proof-platform","limit":8}}
{"schema_version":1,"seq":67,"at":"2026-09-21T13:47:53.832Z","kind":"response","phase":"observe_platforms","response":{"ok":true,"data":{"count":2,"entities":[{"body":{"friction":0.800000011920929,"mode":"static","restitution":0},"id":3,"name":"rescue-platform-section","shape":{"color":[0.07999999821186066,0.6800000071525574,0.5799999833106995],"kind":"cube"},"tags":["agent-proof-platform","prefab:rescue-span"],"transform":{"pos":[-4,0.30000001192092896,2],"rot_y":0,"scale":[3.700000047683716,0.6000000238418579,3]}},{"body":{"friction":0.800000011920929,"mode":"static","restitution":0},"id":4,"name":"rescue-platform-section","shape":{"color":[0.07999999821186066,0.6800000071525574,0.5799999833106995],"kind":"cube"},"tags":["agent-proof-platform","prefab:rescue-span"],"transform":{"pos":[0,0.800000011920929,2],"rot_y":0,"scale":[3.700000047683716,0.6000000238418579,3]}}]}}}
{"schema_version":1,"seq":68,"at":"2026-09-21T13:47:53.832Z","kind":"request","phase":"activation","request":{"cmd":"script_status"}}
{"schema_version":1,"seq":69,"at":"2026-09-21T13:47:53.834Z","kind":"response","phase":"activation","response":{"ok":true,"data":{"deployment":{"activation_blocked":false,"authority_uncertain":false,"containment_hold":null,"disk_state":"exact","enabled":true,"format_version":1,"generation":2,"last_error":null,"path":"<isolated-run>/gameplay-script.json","persisted_format_version":1,"persisted_generation":2,"persistence":"local_file","publishing_generation":null,"recovery_required":false,"slots":{"active":{"artifact_digest":"13c449bb0780d769898656cd22a78eb4573f2501b256402f121a7bb67aef29c6","capabilities":["build","entity_data"],"name":"ai-rescue-platform","revision":1,"source_hash":"4b0a8d45998eac26","tick_interval":20},"pending":null,"rollback":null}},"lifecycle_coherent":true,"limits":{"max_command_string_bytes":1024,"max_commands":2048,"max_entities":100000,"max_event_fields":16,"max_event_string_bytes":1024,"max_events":64,"max_frame_bytes":4194304,"max_interrupts":100000,"max_memory_bytes":33554432,"max_source_bytes":262144,"max_wall_time_us":2000,"suspend_after_faults":3},"runtime":{"active":{"artifact_digest":"13c449bb0780d769898656cd22a78eb4573f2501b256402f121a7bb67aef29c6","bytecode_bytes":521,"capabilities":["build","entity_data"],"name":"ai-rescue-platform","revision":1,"source_hash":"4b0a8d45998eac26","tick_interval":20},"metrics":{"commands":4,"committed_batches":2,"committed_commands":4,"consecutive_faults":0,"faults":0,"host_rejections":0,"last_committed_tick":800,"last_run_us":54,"max_run_us":235,"memory_bytes":649784,"runs":2},"pending":null,"rollback":null,"rollback_requested":false,"suspended":false}}}}
{"schema_version":1,"seq":70,"at":"2026-09-21T13:47:54.094Z","kind":"request","phase":"observe_progress","request":{"cmd":"query","tag":"agent-proof-controller","limit":1}}
{"schema_version":1,"seq":71,"at":"2026-09-21T13:47:54.095Z","kind":"response","phase":"observe_progress","response":{"ok":true,"data":{"count":1,"entities":[{"body":{"mode":"static"},"data":{"assembled_sections":2},"id":1,"name":"rescue-assembly-controller","shape":{"color":[0.9599999785423279,0.5,0.11999999731779099],"kind":"cube"},"tags":["agent-proof-controller"],"transform":{"pos":[-7,1,2],"rot_y":0,"scale":[1,2,1]}}]}}}
{"schema_version":1,"seq":72,"at":"2026-09-21T13:47:54.096Z","kind":"request","phase":"observe_platforms","request":{"cmd":"query","tag":"agent-proof-platform","limit":8}}
{"schema_version":1,"seq":73,"at":"2026-09-21T13:47:54.098Z","kind":"response","phase":"observe_platforms","response":{"ok":true,"data":{"count":2,"entities":[{"body":{"friction":0.800000011920929,"mode":"static","restitution":0},"id":3,"name":"rescue-platform-section","shape":{"color":[0.07999999821186066,0.6800000071525574,0.5799999833106995],"kind":"cube"},"tags":["agent-proof-platform","prefab:rescue-span"],"transform":{"pos":[-4,0.30000001192092896,2],"rot_y":0,"scale":[3.700000047683716,0.6000000238418579,3]}},{"body":{"friction":0.800000011920929,"mode":"static","restitution":0},"id":4,"name":"rescue-platform-section","shape":{"color":[0.07999999821186066,0.6800000071525574,0.5799999833106995],"kind":"cube"},"tags":["agent-proof-platform","prefab:rescue-span"],"transform":{"pos":[0,0.800000011920929,2],"rot_y":0,"scale":[3.700000047683716,0.6000000238418579,3]}}]}}}
{"schema_version":1,"seq":74,"at":"2026-09-21T13:47:54.098Z","kind":"request","phase":"activation","request":{"cmd":"script_status"}}
{"schema_version":1,"seq":75,"at":"2026-09-21T13:47:54.099Z","kind":"response","phase":"activation","response":{"ok":true,"data":{"deployment":{"activation_blocked":false,"authority_uncertain":false,"containment_hold":null,"disk_state":"exact","enabled":true,"format_version":1,"generation":2,"last_error":null,"path":"<isolated-run>/gameplay-script.json","persisted_format_version":1,"persisted_generation":2,"persistence":"local_file","publishing_generation":null,"recovery_required":false,"slots":{"active":{"artifact_digest":"13c449bb0780d769898656cd22a78eb4573f2501b256402f121a7bb67aef29c6","capabilities":["build","entity_data"],"name":"ai-rescue-platform","revision":1,"source_hash":"4b0a8d45998eac26","tick_interval":20},"pending":null,"rollback":null}},"lifecycle_coherent":true,"limits":{"max_command_string_bytes":1024,"max_commands":2048,"max_entities":100000,"max_event_fields":16,"max_event_string_bytes":1024,"max_events":64,"max_frame_bytes":4194304,"max_interrupts":100000,"max_memory_bytes":33554432,"max_source_bytes":262144,"max_wall_time_us":2000,"suspend_after_faults":3},"runtime":{"active":{"artifact_digest":"13c449bb0780d769898656cd22a78eb4573f2501b256402f121a7bb67aef29c6","bytecode_bytes":521,"capabilities":["build","entity_data"],"name":"ai-rescue-platform","revision":1,"source_hash":"4b0a8d45998eac26","tick_interval":20},"metrics":{"commands":4,"committed_batches":2,"committed_commands":4,"consecutive_faults":0,"faults":0,"host_rejections":0,"last_committed_tick":800,"last_run_us":54,"max_run_us":235,"memory_bytes":649784,"runs":2},"pending":null,"rollback":null,"rollback_requested":false,"suspended":false}}}}
{"schema_version":1,"seq":76,"at":"2026-09-21T13:47:54.360Z","kind":"request","phase":"observe_progress","request":{"cmd":"query","tag":"agent-proof-controller","limit":1}}
{"schema_version":1,"seq":77,"at":"2026-09-21T13:47:54.362Z","kind":"response","phase":"observe_progress","response":{"ok":true,"data":{"count":1,"entities":[{"body":{"mode":"static"},"data":{"assembled_sections":2},"id":1,"name":"rescue-assembly-controller","shape":{"color":[0.9599999785423279,0.5,0.11999999731779099],"kind":"cube"},"tags":["agent-proof-controller"],"transform":{"pos":[-7,1,2],"rot_y":0,"scale":[1,2,1]}}]}}}
{"schema_version":1,"seq":78,"at":"2026-09-21T13:47:54.362Z","kind":"request","phase":"observe_platforms","request":{"cmd":"query","tag":"agent-proof-platform","limit":8}}
{"schema_version":1,"seq":79,"at":"2026-09-21T13:47:54.363Z","kind":"response","phase":"observe_platforms","response":{"ok":true,"data":{"count":2,"entities":[{"body":{"friction":0.800000011920929,"mode":"static","restitution":0},"id":3,"name":"rescue-platform-section","shape":{"color":[0.07999999821186066,0.6800000071525574,0.5799999833106995],"kind":"cube"},"tags":["agent-proof-platform","prefab:rescue-span"],"transform":{"pos":[-4,0.30000001192092896,2],"rot_y":0,"scale":[3.700000047683716,0.6000000238418579,3]}},{"body":{"friction":0.800000011920929,"mode":"static","restitution":0},"id":4,"name":"rescue-platform-section","shape":{"color":[0.07999999821186066,0.6800000071525574,0.5799999833106995],"kind":"cube"},"tags":["agent-proof-platform","prefab:rescue-span"],"transform":{"pos":[0,0.800000011920929,2],"rot_y":0,"scale":[3.700000047683716,0.6000000238418579,3]}}]}}}
{"schema_version":1,"seq":80,"at":"2026-09-21T13:47:54.364Z","kind":"request","phase":"activation","request":{"cmd":"script_status"}}
{"schema_version":1,"seq":81,"at":"2026-09-21T13:47:54.365Z","kind":"response","phase":"activation","response":{"ok":true,"data":{"deployment":{"activation_blocked":false,"authority_uncertain":false,"containment_hold":null,"disk_state":"exact","enabled":true,"format_version":1,"generation":2,"last_error":null,"path":"<isolated-run>/gameplay-script.json","persisted_format_version":1,"persisted_generation":2,"persistence":"local_file","publishing_generation":null,"recovery_required":false,"slots":{"active":{"artifact_digest":"13c449bb0780d769898656cd22a78eb4573f2501b256402f121a7bb67aef29c6","capabilities":["build","entity_data"],"name":"ai-rescue-platform","revision":1,"source_hash":"4b0a8d45998eac26","tick_interval":20},"pending":null,"rollback":null}},"lifecycle_coherent":true,"limits":{"max_command_string_bytes":1024,"max_commands":2048,"max_entities":100000,"max_event_fields":16,"max_event_string_bytes":1024,"max_events":64,"max_frame_bytes":4194304,"max_interrupts":100000,"max_memory_bytes":33554432,"max_source_bytes":262144,"max_wall_time_us":2000,"suspend_after_faults":3},"runtime":{"active":{"artifact_digest":"13c449bb0780d769898656cd22a78eb4573f2501b256402f121a7bb67aef29c6","bytecode_bytes":521,"capabilities":["build","entity_data"],"name":"ai-rescue-platform","revision":1,"source_hash":"4b0a8d45998eac26","tick_interval":20},"metrics":{"commands":4,"committed_batches":2,"committed_commands":4,"consecutive_faults":0,"faults":0,"host_rejections":0,"last_committed_tick":800,"last_run_us":54,"max_run_us":235,"memory_bytes":649784,"runs":2},"pending":null,"rollback":null,"rollback_requested":false,"suspended":false}}}}
{"schema_version":1,"seq":82,"at":"2026-09-21T13:47:54.624Z","kind":"request","phase":"observe_progress","request":{"cmd":"query","tag":"agent-proof-controller","limit":1}}
{"schema_version":1,"seq":83,"at":"2026-09-21T13:47:54.626Z","kind":"response","phase":"observe_progress","response":{"ok":true,"data":{"count":1,"entities":[{"body":{"mode":"static"},"data":{"assembled_sections":2},"id":1,"name":"rescue-assembly-controller","shape":{"color":[0.9599999785423279,0.5,0.11999999731779099],"kind":"cube"},"tags":["agent-proof-controller"],"transform":{"pos":[-7,1,2],"rot_y":0,"scale":[1,2,1]}}]}}}
{"schema_version":1,"seq":84,"at":"2026-09-21T13:47:54.627Z","kind":"request","phase":"observe_platforms","request":{"cmd":"query","tag":"agent-proof-platform","limit":8}}
{"schema_version":1,"seq":85,"at":"2026-09-21T13:47:54.628Z","kind":"response","phase":"observe_platforms","response":{"ok":true,"data":{"count":2,"entities":[{"body":{"friction":0.800000011920929,"mode":"static","restitution":0},"id":3,"name":"rescue-platform-section","shape":{"color":[0.07999999821186066,0.6800000071525574,0.5799999833106995],"kind":"cube"},"tags":["agent-proof-platform","prefab:rescue-span"],"transform":{"pos":[-4,0.30000001192092896,2],"rot_y":0,"scale":[3.700000047683716,0.6000000238418579,3]}},{"body":{"friction":0.800000011920929,"mode":"static","restitution":0},"id":4,"name":"rescue-platform-section","shape":{"color":[0.07999999821186066,0.6800000071525574,0.5799999833106995],"kind":"cube"},"tags":["agent-proof-platform","prefab:rescue-span"],"transform":{"pos":[0,0.800000011920929,2],"rot_y":0,"scale":[3.700000047683716,0.6000000238418579,3]}}]}}}
{"schema_version":1,"seq":86,"at":"2026-09-21T13:47:54.628Z","kind":"request","phase":"activation","request":{"cmd":"script_status"}}
{"schema_version":1,"seq":87,"at":"2026-09-21T13:47:54.630Z","kind":"response","phase":"activation","response":{"ok":true,"data":{"deployment":{"activation_blocked":false,"authority_uncertain":false,"containment_hold":null,"disk_state":"exact","enabled":true,"format_version":1,"generation":2,"last_error":null,"path":"<isolated-run>/gameplay-script.json","persisted_format_version":1,"persisted_generation":2,"persistence":"local_file","publishing_generation":null,"recovery_required":false,"slots":{"active":{"artifact_digest":"13c449bb0780d769898656cd22a78eb4573f2501b256402f121a7bb67aef29c6","capabilities":["build","entity_data"],"name":"ai-rescue-platform","revision":1,"source_hash":"4b0a8d45998eac26","tick_interval":20},"pending":null,"rollback":null}},"lifecycle_coherent":true,"limits":{"max_command_string_bytes":1024,"max_commands":2048,"max_entities":100000,"max_event_fields":16,"max_event_string_bytes":1024,"max_events":64,"max_frame_bytes":4194304,"max_interrupts":100000,"max_memory_bytes":33554432,"max_source_bytes":262144,"max_wall_time_us":2000,"suspend_after_faults":3},"runtime":{"active":{"artifact_digest":"13c449bb0780d769898656cd22a78eb4573f2501b256402f121a7bb67aef29c6","bytecode_bytes":521,"capabilities":["build","entity_data"],"name":"ai-rescue-platform","revision":1,"source_hash":"4b0a8d45998eac26","tick_interval":20},"metrics":{"commands":4,"committed_batches":2,"committed_commands":4,"consecutive_faults":0,"faults":0,"host_rejections":0,"last_committed_tick":800,"last_run_us":54,"max_run_us":235,"memory_bytes":649784,"runs":2},"pending":null,"rollback":null,"rollback_requested":false,"suspended":false}}}}
{"schema_version":1,"seq":88,"at":"2026-09-21T13:47:54.891Z","kind":"request","phase":"observe_progress","request":{"cmd":"query","tag":"agent-proof-controller","limit":1}}
{"schema_version":1,"seq":89,"at":"2026-09-21T13:47:54.892Z","kind":"response","phase":"observe_progress","response":{"ok":true,"data":{"count":1,"entities":[{"body":{"mode":"static"},"data":{"assembled_sections":3},"id":1,"name":"rescue-assembly-controller","shape":{"color":[0.9599999785423279,0.5,0.11999999731779099],"kind":"cube"},"tags":["agent-proof-controller"],"transform":{"pos":[-7,1,2],"rot_y":0,"scale":[1,2,1]}}]}}}
{"schema_version":1,"seq":90,"at":"2026-09-21T13:47:54.893Z","kind":"request","phase":"observe_platforms","request":{"cmd":"query","tag":"agent-proof-platform","limit":8}}
{"schema_version":1,"seq":91,"at":"2026-09-21T13:47:54.894Z","kind":"response","phase":"observe_platforms","response":{"ok":true,"data":{"count":3,"entities":[{"body":{"friction":0.800000011920929,"mode":"static","restitution":0},"id":3,"name":"rescue-platform-section","shape":{"color":[0.07999999821186066,0.6800000071525574,0.5799999833106995],"kind":"cube"},"tags":["agent-proof-platform","prefab:rescue-span"],"transform":{"pos":[-4,0.30000001192092896,2],"rot_y":0,"scale":[3.700000047683716,0.6000000238418579,3]}},{"body":{"friction":0.800000011920929,"mode":"static","restitution":0},"id":4,"name":"rescue-platform-section","shape":{"color":[0.07999999821186066,0.6800000071525574,0.5799999833106995],"kind":"cube"},"tags":["agent-proof-platform","prefab:rescue-span"],"transform":{"pos":[0,0.800000011920929,2],"rot_y":0,"scale":[3.700000047683716,0.6000000238418579,3]}},{"body":{"friction":0.800000011920929,"mode":"static","restitution":0},"id":5,"name":"rescue-platform-section","shape":{"color":[0.07999999821186066,0.6800000071525574,0.5799999833106995],"kind":"cube"},"tags":["agent-proof-platform","prefab:rescue-span"],"transform":{"pos":[4,1.2999999523162842,2],"rot_y":0,"scale":[3.700000047683716,0.6000000238418579,3]}}]}}}
{"schema_version":1,"seq":92,"at":"2026-09-21T13:47:54.895Z","kind":"request","phase":"activation","request":{"cmd":"script_status"}}
{"schema_version":1,"seq":93,"at":"2026-09-21T13:47:54.896Z","kind":"response","phase":"activation","response":{"ok":true,"data":{"deployment":{"activation_blocked":false,"authority_uncertain":false,"containment_hold":null,"disk_state":"exact","enabled":true,"format_version":1,"generation":2,"last_error":null,"path":"<isolated-run>/gameplay-script.json","persisted_format_version":1,"persisted_generation":2,"persistence":"local_file","publishing_generation":null,"recovery_required":false,"slots":{"active":{"artifact_digest":"13c449bb0780d769898656cd22a78eb4573f2501b256402f121a7bb67aef29c6","capabilities":["build","entity_data"],"name":"ai-rescue-platform","revision":1,"source_hash":"4b0a8d45998eac26","tick_interval":20},"pending":null,"rollback":null}},"lifecycle_coherent":true,"limits":{"max_command_string_bytes":1024,"max_commands":2048,"max_entities":100000,"max_event_fields":16,"max_event_string_bytes":1024,"max_events":64,"max_frame_bytes":4194304,"max_interrupts":100000,"max_memory_bytes":33554432,"max_source_bytes":262144,"max_wall_time_us":2000,"suspend_after_faults":3},"runtime":{"active":{"artifact_digest":"13c449bb0780d769898656cd22a78eb4573f2501b256402f121a7bb67aef29c6","bytecode_bytes":521,"capabilities":["build","entity_data"],"name":"ai-rescue-platform","revision":1,"source_hash":"4b0a8d45998eac26","tick_interval":20},"metrics":{"commands":6,"committed_batches":3,"committed_commands":6,"consecutive_faults":0,"faults":0,"host_rejections":0,"last_committed_tick":820,"last_run_us":53,"max_run_us":235,"memory_bytes":649784,"runs":3},"pending":null,"rollback":null,"rollback_requested":false,"suspended":false}}}}
