{ "tools": [ { "name": "build_targets", "description": "Check local app build tools and Android release signing availability.", "inputSchema": { "type": "object", "properties": {}, "$schema": "http://json-schema.org/draft-07/schema#" }, "annotations": { "readOnlyHint": true, "destructiveHint": false, "idempotentHint": true, "openWorldHint": false }, "execution": { "taskSupport": "forbidden" } }, { "name": "build_start", "description": "Build an immutable project snapshot into Linux x64 AppImage, Windows x64 portable EXE or Android APK. Returns a job; poll build_status until terminal. First-time tool downloads need network. Never claim device testing from package success.", "inputSchema": { "type": "object", "properties": { "expectedRevision": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "options": { "type": "object", "properties": { "target": { "type": "string", "enum": [ "linux", "windows", "android" ] }, "name": { "type": "string" }, "appId": { "type": "string" }, "version": { "type": "string" }, "versionCode": { "type": "integer", "minimum": -9007199254740991, "maximum": 9007199254740991 }, "mode": { "type": "string", "enum": [ "debug", "release" ] }, "width": { "type": "integer", "minimum": -9007199254740991, "maximum": 9007199254740991 }, "height": { "type": "integer", "minimum": -9007199254740991, "maximum": 9007199254740991 }, "fullscreen": { "type": "boolean" }, "orientation": { "type": "string", "enum": [ "landscape", "portrait", "sensor" ] } }, "required": [ "target" ] } }, "required": [ "expectedRevision", "options" ], "$schema": "http://json-schema.org/draft-07/schema#" }, "annotations": { "readOnlyHint": false, "destructiveHint": true, "idempotentHint": false, "openWorldHint": false }, "execution": { "taskSupport": "forbidden" } }, { "name": "build_status", "description": "Read build status, bounded log and artifact URLs with SHA-256.", "inputSchema": { "type": "object", "properties": { "id": { "type": "string" } }, "required": [ "id" ], "$schema": "http://json-schema.org/draft-07/schema#" }, "annotations": { "readOnlyHint": true, "destructiveHint": false, "idempotentHint": true, "openWorldHint": false }, "execution": { "taskSupport": "forbidden" } }, { "name": "build_list", "description": "List recent local build jobs.", "inputSchema": { "type": "object", "properties": {}, "$schema": "http://json-schema.org/draft-07/schema#" }, "annotations": { "readOnlyHint": true, "destructiveHint": false, "idempotentHint": true, "openWorldHint": false }, "execution": { "taskSupport": "forbidden" } }, { "name": "build_cancel", "description": "Cancel a queued or running build and stop its child processes.", "inputSchema": { "type": "object", "properties": { "id": { "type": "string" } }, "required": [ "id" ], "$schema": "http://json-schema.org/draft-07/schema#" }, "annotations": { "readOnlyHint": false, "destructiveHint": true, "idempotentHint": false, "openWorldHint": false }, "execution": { "taskSupport": "forbidden" } }, { "name": "project_read", "description": "Project revision, scenes, asset summaries, scripts, settings and editor status. Binary model data omitted.", "inputSchema": { "type": "object", "properties": {}, "$schema": "http://json-schema.org/draft-07/schema#" }, "annotations": { "readOnlyHint": true, "destructiveHint": false, "idempotentHint": true, "openWorldHint": false }, "execution": { "taskSupport": "forbidden" } }, { "name": "project_new", "description": "Replace active project with an empty scene. Undoable. Save your current project first.", "inputSchema": { "type": "object", "properties": { "expectedRevision": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "requestId": { "type": "string", "maxLength": 100 }, "name": { "type": "string", "maxLength": 200 }, "template": { "default": "empty", "type": "string", "const": "empty" } }, "required": [ "expectedRevision", "name" ], "$schema": "http://json-schema.org/draft-07/schema#" }, "annotations": { "readOnlyHint": false, "destructiveHint": true, "idempotentHint": false, "openWorldHint": false }, "execution": { "taskSupport": "forbidden" } }, { "name": "scene_read", "description": "Read entity hierarchy and components. Geometry arrays omitted unless requested.", "inputSchema": { "type": "object", "properties": { "sceneId": { "type": "string" }, "includeGeometry": { "default": false, "type": "boolean" } }, "$schema": "http://json-schema.org/draft-07/schema#" }, "annotations": { "readOnlyHint": true, "destructiveHint": false, "idempotentHint": true, "openWorldHint": false }, "execution": { "taskSupport": "forbidden" } }, { "name": "scene_create", "description": "Create and activate a scene.", "inputSchema": { "type": "object", "properties": { "expectedRevision": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "requestId": { "type": "string", "maxLength": 100 }, "name": { "type": "string" }, "id": { "type": "string" } }, "required": [ "expectedRevision", "name" ], "$schema": "http://json-schema.org/draft-07/schema#" }, "annotations": { "readOnlyHint": false, "destructiveHint": true, "idempotentHint": false, "openWorldHint": false }, "execution": { "taskSupport": "forbidden" } }, { "name": "commands_apply", "description": "Apply one atomic command batch. Read forma://reference/commands for schemas.", "inputSchema": { "type": "object", "properties": { "expectedRevision": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "requestId": { "type": "string", "maxLength": 100 }, "label": { "type": "string", "maxLength": 200 }, "commands": { "minItems": 1, "maxItems": 1000, "type": "array", "items": { "type": "object", "properties": { "op": { "type": "string" }, "args": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} } }, "required": [ "op", "args" ] } } }, "required": [ "expectedRevision", "label", "commands" ], "$schema": "http://json-schema.org/draft-07/schema#" }, "annotations": { "readOnlyHint": false, "destructiveHint": true, "idempotentHint": false, "openWorldHint": false }, "execution": { "taskSupport": "forbidden" } }, { "name": "node_create", "description": "Create a 3D entity with arbitrary components.", "inputSchema": { "type": "object", "properties": { "expectedRevision": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "requestId": { "type": "string", "maxLength": 100 }, "name": { "type": "string" }, "id": { "type": "string" }, "parentId": { "type": "string" }, "position": { "default": [ 0, 0, 0 ], "type": "array", "items": [ { "type": "number" }, { "type": "number" }, { "type": "number" } ] }, "components": { "default": {}, "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} } }, "required": [ "expectedRevision", "name" ], "$schema": "http://json-schema.org/draft-07/schema#" }, "annotations": { "readOnlyHint": false, "destructiveHint": true, "idempotentHint": false, "openWorldHint": false }, "execution": { "taskSupport": "forbidden" } }, { "name": "node_update", "description": "Deep merge object properties. Use node.reparent command to change hierarchy.", "inputSchema": { "type": "object", "properties": { "expectedRevision": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "requestId": { "type": "string", "maxLength": 100 }, "id": { "type": "string" }, "patch": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} } }, "required": [ "expectedRevision", "id", "patch" ], "$schema": "http://json-schema.org/draft-07/schema#" }, "annotations": { "readOnlyHint": false, "destructiveHint": true, "idempotentHint": false, "openWorldHint": false }, "execution": { "taskSupport": "forbidden" } }, { "name": "node_delete", "description": "delete object subtree.", "inputSchema": { "type": "object", "properties": { "expectedRevision": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "requestId": { "type": "string", "maxLength": 100 }, "id": { "type": "string" } }, "required": [ "expectedRevision", "id" ], "$schema": "http://json-schema.org/draft-07/schema#" }, "annotations": { "readOnlyHint": false, "destructiveHint": true, "idempotentHint": false, "openWorldHint": false }, "execution": { "taskSupport": "forbidden" } }, { "name": "node_duplicate", "description": "duplicate object subtree.", "inputSchema": { "type": "object", "properties": { "expectedRevision": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "requestId": { "type": "string", "maxLength": 100 }, "id": { "type": "string" } }, "required": [ "expectedRevision", "id" ], "$schema": "http://json-schema.org/draft-07/schema#" }, "annotations": { "readOnlyHint": false, "destructiveHint": true, "idempotentHint": false, "openWorldHint": false }, "execution": { "taskSupport": "forbidden" } }, { "name": "model_generate", "description": "Generate editable geometry WITHOUT Blender. arena: level; character: static stylized figure; extrude: polygon [x,z]+depth; lathe: profile [radius,y]+segments.", "inputSchema": { "type": "object", "properties": { "expectedRevision": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "requestId": { "type": "string", "maxLength": 100 }, "kind": { "type": "string", "enum": [ "arena", "character", "extrude", "lathe" ] }, "name": { "type": "string" }, "width": { "type": "number", "minimum": 8, "maximum": 80 }, "depth": { "type": "number", "minimum": 0.05, "maximum": 80 }, "height": { "type": "number", "minimum": 0.1, "maximum": 20 }, "seed": { "type": "integer", "minimum": -9007199254740991, "maximum": 9007199254740991 }, "obstacles": { "type": "integer", "minimum": 0, "maximum": 80 }, "segments": { "type": "integer", "minimum": 3, "maximum": 128 }, "color": { "type": "string", "pattern": "^#[\\da-fA-F]{6}$" }, "profile": { "maxItems": 256, "type": "array", "items": { "type": "array", "items": [ { "type": "number" }, { "type": "number" } ] } } }, "required": [ "expectedRevision", "kind" ], "$schema": "http://json-schema.org/draft-07/schema#" }, "annotations": { "readOnlyHint": false, "destructiveHint": true, "idempotentHint": false, "openWorldHint": false }, "execution": { "taskSupport": "forbidden" } }, { "name": "mesh_create", "description": "Create custom triangle mesh directly from vertex arrays.", "inputSchema": { "type": "object", "properties": { "expectedRevision": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "requestId": { "type": "string", "maxLength": 100 }, "name": { "type": "string" }, "positions": { "maxItems": 900000, "type": "array", "items": { "type": "number" } }, "indices": { "maxItems": 1800000, "type": "array", "items": { "type": "integer", "minimum": -9007199254740991, "maximum": 9007199254740991 } }, "normals": { "type": "array", "items": { "type": "number" } }, "uvs": { "type": "array", "items": { "type": "number" } }, "color": { "default": "#91a697", "type": "string" } }, "required": [ "expectedRevision", "name", "positions", "indices" ], "$schema": "http://json-schema.org/draft-07/schema#" }, "annotations": { "readOnlyHint": false, "destructiveHint": true, "idempotentHint": false, "openWorldHint": false }, "execution": { "taskSupport": "forbidden" } }, { "name": "asset_import_glb", "description": "Import GLB or embedded glTF using base64 bytes OR a path inside the project folder. External URLs are not fetched.", "inputSchema": { "type": "object", "properties": { "expectedRevision": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "requestId": { "type": "string", "maxLength": 100 }, "name": { "type": "string", "pattern": "\\.(glb|gltf)$" }, "base64": { "type": "string", "maxLength": 36000000 }, "path": { "type": "string" }, "instantiate": { "default": true, "type": "boolean" } }, "required": [ "expectedRevision", "name" ], "$schema": "http://json-schema.org/draft-07/schema#" }, "annotations": { "readOnlyHint": false, "destructiveHint": true, "idempotentHint": false, "openWorldHint": false }, "execution": { "taskSupport": "forbidden" } }, { "name": "script_upsert", "description": "Create or edit trusted JavaScript behavior and Inspector fields.", "inputSchema": { "type": "object", "properties": { "expectedRevision": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "requestId": { "type": "string", "maxLength": 100 }, "id": { "type": "string" }, "name": { "type": "string" }, "source": { "type": "string", "maxLength": 250000 }, "fields": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} } }, "required": [ "expectedRevision", "id", "name", "source", "fields" ], "$schema": "http://json-schema.org/draft-07/schema#" }, "annotations": { "readOnlyHint": false, "destructiveHint": true, "idempotentHint": false, "openWorldHint": false }, "execution": { "taskSupport": "forbidden" } }, { "name": "prefab_create", "description": "Capture object subtree as prefab asset.", "inputSchema": { "type": "object", "properties": { "expectedRevision": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "requestId": { "type": "string", "maxLength": 100 }, "id": { "type": "string" }, "name": { "type": "string" } }, "required": [ "expectedRevision", "id" ], "$schema": "http://json-schema.org/draft-07/schema#" }, "annotations": { "readOnlyHint": false, "destructiveHint": true, "idempotentHint": false, "openWorldHint": false }, "execution": { "taskSupport": "forbidden" } }, { "name": "prefab_instantiate", "description": "Instantiate prefab and remap internal object references.", "inputSchema": { "type": "object", "properties": { "expectedRevision": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "requestId": { "type": "string", "maxLength": 100 }, "assetId": { "type": "string" }, "position": { "default": [ 0, 0, 0 ], "type": "array", "items": [ { "type": "number" }, { "type": "number" }, { "type": "number" } ] } }, "required": [ "expectedRevision", "assetId" ], "$schema": "http://json-schema.org/draft-07/schema#" }, "annotations": { "readOnlyHint": false, "destructiveHint": true, "idempotentHint": false, "openWorldHint": false }, "execution": { "taskSupport": "forbidden" } }, { "name": "history_undo", "description": "undo last transaction.", "inputSchema": { "type": "object", "properties": { "expectedRevision": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 } }, "required": [ "expectedRevision" ], "$schema": "http://json-schema.org/draft-07/schema#" }, "annotations": { "readOnlyHint": false, "destructiveHint": true, "idempotentHint": false, "openWorldHint": false }, "execution": { "taskSupport": "forbidden" } }, { "name": "history_redo", "description": "redo last transaction.", "inputSchema": { "type": "object", "properties": { "expectedRevision": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 } }, "required": [ "expectedRevision" ], "$schema": "http://json-schema.org/draft-07/schema#" }, "annotations": { "readOnlyHint": false, "destructiveHint": true, "idempotentHint": false, "openWorldHint": false }, "execution": { "taskSupport": "forbidden" } }, { "name": "project_save", "description": "Persist JSON and portable .forma archive to project directory.", "inputSchema": { "type": "object", "properties": {}, "$schema": "http://json-schema.org/draft-07/schema#" }, "annotations": { "readOnlyHint": false, "destructiveHint": true, "idempotentHint": false, "openWorldHint": false }, "execution": { "taskSupport": "forbidden" } }, { "name": "project_export_web", "description": "Export standalone HTML+runtime+assets as ZIP in exports/. Does not publish.", "inputSchema": { "type": "object", "properties": {}, "$schema": "http://json-schema.org/draft-07/schema#" }, "annotations": { "readOnlyHint": false, "destructiveHint": true, "idempotentHint": false, "openWorldHint": false }, "execution": { "taskSupport": "forbidden" } }, { "name": "runtime_play", "description": "play in the connected editor. Requires a live browser editor. Capture returns actual PNG.", "inputSchema": { "type": "object", "properties": {}, "$schema": "http://json-schema.org/draft-07/schema#" }, "annotations": { "readOnlyHint": false, "destructiveHint": true, "idempotentHint": false, "openWorldHint": false }, "execution": { "taskSupport": "forbidden" } }, { "name": "runtime_stop", "description": "stop in the connected editor. Requires a live browser editor. Capture returns actual PNG.", "inputSchema": { "type": "object", "properties": {}, "$schema": "http://json-schema.org/draft-07/schema#" }, "annotations": { "readOnlyHint": false, "destructiveHint": true, "idempotentHint": false, "openWorldHint": false }, "execution": { "taskSupport": "forbidden" } }, { "name": "runtime_snapshot", "description": "snapshot in the connected editor. Requires a live browser editor. Capture returns actual PNG.", "inputSchema": { "type": "object", "properties": {}, "$schema": "http://json-schema.org/draft-07/schema#" }, "annotations": { "readOnlyHint": true, "destructiveHint": false, "idempotentHint": true, "openWorldHint": false }, "execution": { "taskSupport": "forbidden" } }, { "name": "runtime_capture", "description": "capture in the connected editor. Requires a live browser editor. Capture returns actual PNG.", "inputSchema": { "type": "object", "properties": {}, "$schema": "http://json-schema.org/draft-07/schema#" }, "annotations": { "readOnlyHint": true, "destructiveHint": false, "idempotentHint": true, "openWorldHint": false }, "execution": { "taskSupport": "forbidden" } }, { "name": "runtime_input", "description": "Send timed movement, first-person view, jump, dash or attack to the running game and return observed state.", "inputSchema": { "type": "object", "properties": { "x": { "default": 0, "type": "number", "minimum": -1, "maximum": 1 }, "z": { "default": 0, "type": "number", "minimum": -1, "maximum": 1 }, "attack": { "default": false, "type": "boolean" }, "jump": { "default": false, "type": "boolean" }, "dash": { "default": false, "type": "boolean" }, "sprint": { "default": false, "type": "boolean" }, "reset": { "default": false, "type": "boolean" }, "yaw": { "type": "number" }, "pitch": { "type": "number", "minimum": -1.3, "maximum": 1.3 }, "pointer": { "default": false, "type": "boolean" }, "aim": { "type": "array", "items": [ { "type": "number" }, { "type": "number" }, { "type": "number" } ] }, "durationMs": { "default": 500, "type": "integer", "minimum": 50, "maximum": 10000 } }, "$schema": "http://json-schema.org/draft-07/schema#" }, "annotations": { "readOnlyHint": false, "destructiveHint": true, "idempotentHint": false, "openWorldHint": false }, "execution": { "taskSupport": "forbidden" } }, { "name": "editor_focus", "description": "Focus editor camera on an entity.", "inputSchema": { "type": "object", "properties": { "id": { "type": "string" } }, "required": [ "id" ], "$schema": "http://json-schema.org/draft-07/schema#" }, "annotations": { "readOnlyHint": false, "destructiveHint": true, "idempotentHint": false, "openWorldHint": false }, "execution": { "taskSupport": "forbidden" } } ] }