{"engine":"Aether","version":"0.10.152","catalogVersion":"0.10.152","endpoint":"https://modeljlabs.com/aether/workspace/mcp","catalogUrl":"https://modeljlabs.com/aether/workspace/mcp/catalog.json","transport":"streamable-http","authentication":"OAuth 2.1 or Aether bearer token for project operations","sharedTools":127,"operations":["aether_export_targets","aether_game_export","aether_3d_project_export","aether_2d_physics_catalog","aether_2d_physics_apply","aether_2d_project_read","aether_2d_project_apply","aether_2d_project_test","aether_2d_project_export","aether_get_capabilities","aether_blueprint_catalog","aether_blueprint_read","aether_blueprint_apply","aether_document_schema","aether_project_rename","aether_project_history","aether_project_undo","aether_project_redo","aether_batch","aether_assets_remove","aether_actors_duplicate","aether_terrain_sculpt","aether_timeline_keys","aether_project_create","aether_project_list","aether_read_scene","aether_asset_catalog","aether_assets_import","aether_actors_add","aether_configure_actors","aether_actors_remove","aether_configure_terrain","aether_terrain_sample","aether_navigation_route","aether_configure_environment","aether_configure_gameplay","aether_configure_logic","aether_configure_timeline","aether_project_import","aether_project_validate","aether_project_export","aether_project_save","aether_play_start","aether_play_step","aether_play_event","aether_play_status","aether_play_stop","aether_model_rig","aether_sound_synthesize","aether_animation_clips","aether_sound_upsert","aether_gameplay_examples","aether_gameplay_catalog","aether_gameplay_read","aether_gameplay_apply","aether_gameplay_test","aether_model_compose","aether_model_recipe_read","aether_browser_parity","aether_import_formats","aether_import_inspect","aether_import_apply","aether_3d_physics_catalog","aether_3d_physics_read","aether_3d_physics_apply","aether_model_primitive","aether_model_curve","aether_modifier_stack","aether_mesh_inspect","aether_mesh_vertices_edit","aether_mesh_transform","aether_mesh_weld","aether_mesh_normals","aether_mesh_export","aether_terrain_inspect","aether_terrain_heightfield","aether_terrain_mesh","aether_terrain_scatter","aether_timeline_sample","aether_2d_create","aether_2d_actor_upsert","aether_2d_actor_remove","aether_2d_camera_set","aether_2d_inputs_set","aether_2d_sprites_set","aether_2d_collider_upsert","aether_2d_body_upsert","aether_2d_joint_upsert","aether_2d_joint_remove","aether_2d_image_upsert","aether_2d_clip_upsert","aether_2d_tilemap_upsert","aether_2d_prefab_upsert","aether_2d_blueprint_upsert","aether_mcp_status","aether_script_catalog","aether_script_validate","aether_script_read","aether_script_upsert","aether_script_remove","aether_component_upsert","aether_component_remove","aether_component_inspect","aether_ui_apply","aether_animation_controller_apply","aether_runtime_test","aether_build_validate","aether_preview_status","aether_preview_request","aether_preview_result","aether_browser_authoring_catalog","aether_browser_model_apply","aether_browser_model_read","aether_browser_material_apply","aether_browser_material_read","aether_terrain_graph_catalog","aether_terrain_graph_apply","aether_terrain_graph_read","aether_terrain_graph_detach","aether_terrain_pipeline_set","aether_terrain_layers_set","aether_terrain_heightfield_import","aether_terrain_pipeline_inspect","aether_terrain_channel_tile","aether_scatter_layer_upsert","aether_scatter_layer_remove","aether_scatter_inspect"],"nativeRelayCatalogTools":109,"nativeReferenceCatalogTools":109,"nativeConnectionRequired":true,"nativeConnectionVerified":false,"refresh":"Rediscover tools after an engine update. Reconnect clients that cache the tool catalog. Use the public endpoint for the public engine; an older connector URL remains an older service.","download":"https://modeljlabs.com/aether/workspace/downloads/Aether_Browser_MCP.zip","tools":[{"name":"aether_export_targets","description":"Discover playable formats, rendering backends, build requirements and unsupported targets. Desktop project ZIPs require a packaging step; WebGPU is experimental; WebAssembly covers the native 3D rigid-body solver.","inputSchema":{"type":"object","properties":{"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_game_export","description":"Export an existing 2D or shared 3D game as a playable web artifact or a desktop build-project ZIP. Includes the mandatory two-second Created with Aether splash. Exports are not cryptographically signed. Does not change the renderer or add game systems.","inputSchema":{"type":"object","properties":{"target":{"type":"string","enum":["web","web-wasm","desktop-project"]},"renderer":{"type":"string","enum":["auto","canvas2d","webgl2","webgpu"]},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_3d_project_export","description":"Export a playable static-host ZIP using the same executable rules, adventure, squad or native WASM physics 3D runtime as browser Play. Includes the mandatory two-second Created with Aether splash. Rejects legacy Logic preview nodes and unsupported native gameplay.","inputSchema":{"type":"object","properties":{"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_2d_physics_catalog","description":"Discover advanced 2D body, solver and joint schemas, Blueprint physics properties and simulation units.","inputSchema":{"type":"object","properties":{"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_2d_physics_apply","description":"Atomically upgrade a 2D project to version 3 and replace supplied bodies, joints or solver settings. Retains unsupplied scene data and preserves legacy sensor flags. Uses project revision guards and undo.","inputSchema":{"type":"object","properties":{"bodies":{"type":"array","items":{"type":"object"},"maxItems":512},"joints":{"type":"array","items":{"type":"object"},"maxItems":512},"solver":{"type":"object"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_2d_project_read","description":"Read the editor 2D project and discover full scene and Blueprint authoring schemas. Same document is editable in browser and desktop.","inputSchema":{"type":"object","properties":{"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_2d_project_apply","description":"Replace and validate the editable 2D project, including actors, Blueprint graphs, embedded image sprites, animation clips, tilemaps, dynamic bodies and spawn prefabs. Existing project revision guards and undo apply.","inputSchema":{"type":"object","properties":{"project":{"type":"object"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["project"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_2d_project_test","description":"Starts EvConstruction/EvBeginPlay once, then simulates 60Hz test frames with 120Hz fixed steps. Input, widget and custom events are applied before each test frame. Returns state, startup actors and audio event trace; no audible or visual certification.","inputSchema":{"type":"object","properties":{"frames":{"type":"integer","minimum":0,"maximum":7200},"events":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"frame":{"type":"integer","minimum":0},"type":{"enum":["input"]},"code":{"type":"string"},"pressed":{"type":"boolean"}},"required":["frame","code","pressed"],"additionalProperties":false},{"type":"object","properties":{"frame":{"type":"integer","minimum":0},"type":{"const":"widget"},"id":{"type":"string"},"value":{"type":"number"}},"required":["frame","type","id"],"additionalProperties":false},{"type":"object","properties":{"frame":{"type":"integer","minimum":0},"type":{"const":"event"},"target":{"type":"string"},"name":{"type":"string"}},"required":["frame","type","target","name"],"additionalProperties":false}]},"maxItems":2048},"commands":{"type":"array","items":{"type":"object","properties":{"frame":{"type":"integer","minimum":0},"actor":{"type":"string"},"property":{"type":"string"},"value":{"type":["string","number","boolean"]}},"required":["frame","actor","property","value"],"additionalProperties":false},"maxItems":2048},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_2d_project_export","description":"Export a self-contained HTML player using the unchanged Aether 2D engine and the saved project. Includes the mandatory Created with Aether startup splash. Can also run in Aether desktop.","inputSchema":{"type":"object","properties":{"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_get_capabilities","description":"Describe the shared editor authoring surfaces and runtime limitations.","inputSchema":{"type":"object","properties":{"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_blueprint_catalog","description":"Discover executable Blueprint nodes; choose runtime=2d for actor lifecycle, random, sound and rotation support.","inputSchema":{"type":"object","properties":{"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0},"runtime":{"enum":["mission","2d"]}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_blueprint_read","description":"Read the current squad mission Blueprint.","inputSchema":{"type":"object","properties":{"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_blueprint_apply","description":"Validate and replace the squad mission Blueprint, including functions, timers, delays and containers.","inputSchema":{"type":"object","properties":{"definition":{"type":"object"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["definition"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_document_schema","description":"Discover the saved document schema and concrete authoring limits.","inputSchema":{"type":"object","properties":{"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_project_rename","description":"Rename the editable project.","inputSchema":{"type":"object","properties":{"name":{"type":"string"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["name"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_project_history","description":"Inspect available persisted undo and redo states.","inputSchema":{"type":"object","properties":{"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_project_undo","description":"Undo one saved authoring transaction; gameplay tests are discarded.","inputSchema":{"type":"object","properties":{"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_project_redo","description":"Redo one saved authoring transaction; gameplay tests are discarded.","inputSchema":{"type":"object","properties":{"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_batch","description":"Atomically apply up to 32 authoring operations with one revision and undo entry. All edits roll back if any operation fails.","inputSchema":{"type":"object","properties":{"operations":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"arguments":{"type":"object"}},"required":["name","arguments"],"additionalProperties":false},"maxItems":32},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["operations"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_assets_remove","description":"Remove unused embedded assets. Refuses assets still referenced by actors.","inputSchema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string"},"maxItems":24},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["ids"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_actors_duplicate","description":"Duplicate actors with new IDs and optional position offset; copy animation keys and remap internal squad references.","inputSchema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string"},"maxItems":150},"offset":{"type":"array","items":{"type":"number"},"minItems":3,"maxItems":3},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["ids"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_terrain_sculpt","description":"Append ordered raise/lower/smooth/flatten stamps. Each has x,z,radius,strength; flatten requires targetHeight. Smooth/flatten strength 0..10 is blend amount. Omitted mode preserves signed legacy raise/lower.","inputSchema":{"type":"object","properties":{"stamps":{"type":"array","items":{"type":"object"},"maxItems":500},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["stamps"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_timeline_keys","description":"Upsert or remove actor keyframes while preserving other timeline settings.","inputSchema":{"type":"object","properties":{"upsert":{"type":"array","items":{"type":"object"},"maxItems":1000},"remove":{"type":"array","items":{"type":"string"},"maxItems":1000},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_project_create","description":"Create an empty, editable shared-editor project.","inputSchema":{"type":"object","properties":{"name":{"type":"string"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["name"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_project_list","description":"List saved MCP projects.","inputSchema":{"type":"object","properties":{"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_read_scene","description":"Read the complete saved shared-editor document.","inputSchema":{"type":"object","properties":{"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_asset_catalog","description":"List built-in model references and reusable equipment prefabs.","inputSchema":{"type":"object","properties":{"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_assets_import","description":"Register embedded GLB/OBJ assets or built-in catalog IDs; actors reference their IDs.","inputSchema":{"type":"object","properties":{"assets":{"type":"array","items":{"type":"object"},"maxItems":24},"builtin":{"type":"array","items":{"type":"string"},"maxItems":3},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_actors_add","description":"Add editable actors, including imported models, equipment, AI, materials, colliders and CAD components.","inputSchema":{"type":"object","properties":{"actors":{"type":"array","items":{"type":"object"},"maxItems":150},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["actors"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_configure_actors","description":"Apply validated actor property patches as one atomic edit. Supports every saved actor component.","inputSchema":{"type":"object","properties":{"updates":{"type":"array","items":{"type":"object"},"maxItems":150},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["updates"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_actors_remove","description":"Remove actors; clean dependent mission objectives, prerequisites and keyframes.","inputSchema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string"},"maxItems":150},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["ids"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_configure_terrain","description":"Edit terrain generator, dimensions, materials, height, erosion, seed and sculpt stamps. Setting seed selects seedMode=full unless explicitly overridden; legacy preserves existing classic layouts.","inputSchema":{"type":"object","properties":{"terrain":{"type":"object"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["terrain"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_terrain_sample","description":"Sample actual terrain heights and walkability for placement.","inputSchema":{"type":"object","properties":{"points":{"type":"array","items":{"type":"array","items":{"type":"number"},"minItems":2,"maxItems":2},"maxItems":1000},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["points"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_navigation_route","description":"Find a traversable route on the saved terrain with water, colliders and slope limits.","inputSchema":{"type":"object","properties":{"from":{"type":"array","items":{"type":"number"},"minItems":2,"maxItems":2},"to":{"type":"array","items":{"type":"number"},"minItems":2,"maxItems":2},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["from","to"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_configure_environment","description":"Set exposure (0.1..3), ambientIntensity (0..8), ambientSkyColor/ambientGroundColor (#RRGGBB), sunIntensity, HDR environmentIntensity, fog, vegetation and water. See aether_document_schema for full fields.","inputSchema":{"type":"object","properties":{"environment":{"type":"object"},"water":{"type":"object"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_configure_gameplay","description":"Set complete mission or squad gameplay components; use null to remove either.","inputSchema":{"type":"object","properties":{"adventure":{"type":["object","null"]},"gameplay":{"type":["object","null"]},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_configure_logic","description":"Replace shared logic nodes with validated editable nodes.","inputSchema":{"type":"object","properties":{"logic":{"type":"array","items":{"type":"object"},"maxItems":100},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["logic"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_configure_timeline","description":"Replace animation settings and actor keyframes.","inputSchema":{"type":"object","properties":{"timeline":{"type":"object"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["timeline"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_project_import","description":"Import an existing project document using the editor schema.","inputSchema":{"type":"object","properties":{"document":{"type":"object"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["document"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_project_validate","description":"Validate the project, asset references and playable mission structure.","inputSchema":{"type":"object","properties":{"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_project_export","description":"Return portable Aether editor JSON. Bundled assets resolve in updated Aether installations.","inputSchema":{"type":"object","properties":{"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_project_save","description":"Persist the project and return its location/revision.","inputSchema":{"type":"object","properties":{"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_play_start","description":"Start an adventure or squad/Blueprint gameplay test using the editor runtime; no GPU rendering.","inputSchema":{"type":"object","properties":{"mode":{"type":"string","enum":["adventure","squad"]},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_play_step","description":"Advance gameplay with movement, sprint, interaction, aim/fire or reload. One call is at most 30 simulated seconds.","inputSchema":{"type":"object","properties":{"frames":{"type":"integer","minimum":1,"maximum":600},"dt":{"type":"number","minimum":0.001,"maximum":0.05},"move":{"type":"array","items":{"type":"number"},"minItems":2,"maxItems":2},"sprint":{"type":"boolean"},"interact":{"type":"boolean"},"fire":{"type":"boolean"},"yaw":{"type":"number"},"pitch":{"type":"number"},"reload":{"type":"boolean"},"paused":{"type":"boolean"},"recall":{"type":"boolean"},"selection":{"type":"string","enum":["all","amber","mint"]},"order":{"type":"array","items":{"type":"number"},"minItems":2,"maxItems":2},"target_id":{"type":"string"},"single":{"type":"boolean"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_play_event","description":"Dispatch an authored CustomEvent on the squad mission Blueprint in the current test.","inputSchema":{"type":"object","properties":{"event":{"type":"string","minLength":1,"maxLength":128},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["event"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_play_status","description":"Read the active test position, goals, agents and inventory.","inputSchema":{"type":"object","properties":{"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_play_stop","description":"Discard the test state, preserving the authored project.","inputSchema":{"type":"object","properties":{"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_model_rig","description":"Create or replace a model with a real GLB skeleton and clips from dimensioned rigid parts. Bones are parent-local translations; geometry uses model coordinates; rotation keys are XYZ degrees. No smooth weight painting, IK or retargeting. Saves an editable rigRecipe on the actor.","inputSchema":{"type":"object","properties":{"actor_id":{"type":"string"},"name":{"type":"string"},"recipe":{"type":"object","properties":{"bones":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$"},"parent":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$"},"position":{"type":"array","items":[{"type":"number","minimum":-10000,"maximum":10000},{"type":"number","minimum":-10000,"maximum":10000},{"type":"number","minimum":-10000,"maximum":10000}],"minItems":3,"maxItems":3,"default":[0,0,0]}},"required":["name"],"additionalProperties":false},"minItems":1,"maxItems":64},"parts":{"type":"array","items":{"type":"object","properties":{"bone":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$"},"geometry":{"type":"object","properties":{"shapes":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"kind":{"const":"box","type":"string"},"min":{"type":"array","items":[{"type":"number","minimum":-10000,"maximum":10000},{"type":"number","minimum":-10000,"maximum":10000},{"type":"number","minimum":-10000,"maximum":10000}],"minItems":3,"maxItems":3},"max":{"type":"array","items":[{"type":"number","minimum":-10000,"maximum":10000},{"type":"number","minimum":-10000,"maximum":10000},{"type":"number","minimum":-10000,"maximum":10000}],"minItems":3,"maxItems":3},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}},"required":["kind","min","max"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"polyhedron","type":"string"},"points":{"type":"array","items":{"type":"array","items":[{"type":"number","minimum":-10000,"maximum":10000},{"type":"number","minimum":-10000,"maximum":10000},{"type":"number","minimum":-10000,"maximum":10000}],"minItems":3,"maxItems":3},"minItems":3,"maxItems":8192},"faces":{"type":"array","items":{"type":"array","items":{"type":"integer","minimum":0,"maximum":8191},"minItems":3,"maxItems":64},"minItems":1,"maxItems":16384},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}},"required":["kind","points","faces"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"lathe","type":"string"},"profile":{"type":"array","items":{"type":"array","items":[{"type":"number","minimum":-10000,"maximum":10000},{"type":"number","minimum":-10000,"maximum":10000},{"type":"number","minimum":-10000,"maximum":10000}],"minItems":3,"maxItems":3},"minItems":2,"maxItems":256},"segments":{"type":"integer","minimum":3,"maximum":256,"default":16},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}},"required":["kind","profile"],"additionalProperties":false}]},"minItems":1,"maxItems":20000}},"required":["shapes"],"additionalProperties":false},"position":{"type":"array","items":[{"type":"number","minimum":-10000,"maximum":10000},{"type":"number","minimum":-10000,"maximum":10000},{"type":"number","minimum":-10000,"maximum":10000}],"minItems":3,"maxItems":3,"default":[0,0,0]},"rotation":{"type":"array","items":[{"type":"number","minimum":-10000,"maximum":10000},{"type":"number","minimum":-10000,"maximum":10000},{"type":"number","minimum":-10000,"maximum":10000}],"minItems":3,"maxItems":3,"default":[0,0,0]},"color":{"type":"string","pattern":"^#[a-fA-F0-9]{6}$","default":"#dddddd"},"roughness":{"type":"number","minimum":0,"maximum":1,"default":0.55},"metallic":{"type":"number","minimum":0,"maximum":1,"default":0.1}},"required":["bone","geometry"],"additionalProperties":false},"minItems":1,"maxItems":64},"clips":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$"},"tracks":{"type":"array","items":{"type":"object","properties":{"bone":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$"},"property":{"type":"string","enum":["position","rotation"]},"keys":{"type":"array","items":{"type":"object","properties":{"time":{"type":"number","minimum":0,"maximum":180},"value":{"type":"array","items":[{"type":"number","minimum":-10000,"maximum":10000},{"type":"number","minimum":-10000,"maximum":10000},{"type":"number","minimum":-10000,"maximum":10000}],"minItems":3,"maxItems":3}},"required":["time","value"],"additionalProperties":false},"minItems":2,"maxItems":256}},"required":["bone","property","keys"],"additionalProperties":false},"minItems":1,"maxItems":128}},"required":["name","tracks"],"additionalProperties":false},"maxItems":32,"default":[]}},"required":["bones","parts"],"additionalProperties":false},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["recipe"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_sound_synthesize","description":"Generate deterministic embedded PCM WAV for a 2D project or 3D program from layered oscillators/noise; recipe is saved with the sound.","inputSchema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"recipe":{"type":"object","properties":{"duration":{"type":"number","minimum":0.02,"maximum":12},"seed":{"type":"integer","minimum":0,"maximum":4294967295,"default":1},"layers":{"type":"array","items":{"type":"object","properties":{"wave":{"type":"string","enum":["sine","triangle","saw","square","noise"]},"frequency":{"type":"number","minimum":0,"maximum":10000},"endFrequency":{"type":"number","minimum":0,"maximum":10000},"gain":{"type":"number","minimum":0,"maximum":1,"default":0.3},"attack":{"type":"number","minimum":0,"maximum":12,"default":0.005},"release":{"type":"number","minimum":0,"maximum":12,"default":0.08}},"required":["wave","frequency"],"additionalProperties":false},"minItems":1,"maxItems":8}},"required":["duration","layers"],"additionalProperties":false},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["id","name","recipe"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_animation_clips","description":"Inspect embedded GLB animation clip names, duration metadata, channels and skeleton bones. Use these names in animation_play rule actions.","inputSchema":{"type":"object","properties":{"actor_id":{"type":"string"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["actor_id"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_sound_upsert","description":"Add or replace embedded WAV/MP3/OGG in a 2D project or 3D program. 2D uses PlaySound.s; 3D uses sound_play.","inputSchema":{"type":"object","properties":{"sound":{"type":"object","properties":{"id":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","x-runtime-validation":true},"name":{"type":"string","maxLength":100},"recipe":{"type":"object","properties":{"duration":{"type":"number","minimum":0.02,"maximum":12},"seed":{"type":"integer","minimum":0,"maximum":4294967295,"default":1},"layers":{"type":"array","items":{"type":"object","properties":{"wave":{"type":"string","enum":["sine","triangle","saw","square","noise"]},"frequency":{"type":"number","minimum":0,"maximum":10000},"endFrequency":{"type":"number","minimum":0,"maximum":10000},"gain":{"type":"number","minimum":0,"maximum":1,"default":0.3},"attack":{"type":"number","minimum":0,"maximum":12,"default":0.005},"release":{"type":"number","minimum":0,"maximum":12,"default":0.08}},"required":["wave","frequency"],"additionalProperties":false},"minItems":1,"maxItems":8}},"required":["duration","layers"],"additionalProperties":false},"data":{"type":"string","maxLength":5600000,"pattern":"^data:audio\\/(wav|mpeg|ogg);base64,[A-Za-z0-9+/]+={0,2}$","x-runtime-validation":true}},"required":["id","name","data"],"additionalProperties":false},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["sound"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_gameplay_examples","description":"List three editable examples in different genres, or return their ordinary MCP authoring calls. Recipes contain data only; there are no special example runtimes.","inputSchema":{"type":"object","properties":{"id":{"type":"string","enum":["platform","puzzle","runner"]},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_gameplay_catalog","description":"Discover reusable 3D rule, expression, input, transform, attachment, menu, camera and HUD authoring. No game-specific controller is required.","inputSchema":{"type":"object","properties":{"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_gameplay_read","description":"Read the saved executable 3D program.","inputSchema":{"type":"object","properties":{"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_gameplay_apply","description":"Replace the executable 3D behavior program, or pass null to remove it. Expressions are sandboxed data, not JavaScript; reference/ownership validation and undo apply.","inputSchema":{"type":"object","properties":{"program":{"anyOf":[{"type":"object","properties":{"version":{"const":1,"type":"number"},"scriptModules":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","x-runtime-validation":true},"source":{"type":"string","minLength":1,"maxLength":32768},"fields":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","x-runtime-validation":true},"additionalProperties":{"type":"object","properties":{"type":{"type":"string","enum":["number","boolean","string","array","object"]},"default":{"x-runtime-validation":true},"min":{"type":"number","minimum":-1000000000,"maximum":1000000000},"max":{"type":"number","minimum":-1000000000,"maximum":1000000000}},"required":["type","default"],"additionalProperties":false},"default":{}}},"required":["id","source"],"additionalProperties":false},"maxItems":16,"default":[]},"components":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","x-runtime-validation":true},"actorId":{"type":"string","minLength":1,"maxLength":100},"script":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","x-runtime-validation":true},"enabled":{"type":"boolean","default":true},"template":{"type":"boolean","default":false},"state":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","x-runtime-validation":true},"additionalProperties":{"x-runtime-validation":true},"default":{}}},"required":["id","actorId","script"],"additionalProperties":false},"maxItems":64,"default":[]},"animationControllers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","x-runtime-validation":true},"actorId":{"type":"string","minLength":1,"maxLength":100},"initial":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","x-runtime-validation":true},"states":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","x-runtime-validation":true},"clip":{"type":"string","minLength":1,"maxLength":100},"speed":{"type":"number","minimum":0,"maximum":8,"default":1},"loop":{"type":"string","enum":["once","repeat","pingpong"],"default":"repeat"}},"required":["id","clip"],"additionalProperties":false},"minItems":1,"maxItems":32},"transitions":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","x-runtime-validation":true},"to":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","x-runtime-validation":true},"when":{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}]},"fade":{"type":"number","minimum":0,"maximum":5,"default":0.15},"after":{"type":"number","minimum":0,"maximum":3600,"default":0}},"required":["from","to","when"],"additionalProperties":false},"maxItems":128,"default":[]}},"required":["id","actorId","initial","states"],"additionalProperties":false},"maxItems":32,"default":[]},"widgets":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","x-runtime-validation":true},"kind":{"type":"string","enum":["text","button","progress","slider","toggle","select"]},"label":{"type":"string","maxLength":100},"panel":{"type":"string","maxLength":60,"default":""},"value":{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}],"default":0},"visible":{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}],"default":1},"enabled":{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}],"default":1},"event":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","x-runtime-validation":true},"variable":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","x-runtime-validation":true},"min":{"type":"number","minimum":-1000000000,"maximum":1000000000,"default":0},"max":{"type":"number","minimum":-1000000000,"maximum":1000000000,"default":100},"step":{"type":"number","minimum":0.0001,"maximum":100000,"default":1},"options":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","maxLength":80},"value":{"type":"number","minimum":-1000000000,"maximum":1000000000}},"required":["label","value"],"additionalProperties":false},"maxItems":32,"default":[]}},"required":["id","kind","label"],"additionalProperties":false},"maxItems":64,"default":[]},"randomSeed":{"type":"integer","minimum":1,"maximum":2147483647,"default":1},"title":{"type":"string","maxLength":100},"description":{"type":"string","maxLength":1500,"default":""},"variables":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","x-runtime-validation":true},"additionalProperties":{"type":"number","minimum":-1000000000,"maximum":1000000000}},"rules":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":100},"event":{"type":"string","enum":["start","tick","key","custom"]},"eventId":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","x-runtime-validation":true},"key":{"type":"string","pattern":"^(Key[A-Z]|Digit[0-9]|Arrow(Up|Down|Left|Right)|Space|ShiftLeft|ShiftRight|ControlLeft|ControlRight|Mouse[0-4])$"},"when":{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}],"default":1},"set":{"type":"array","items":{"type":"object","properties":{"variable":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","x-runtime-validation":true},"value":{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}]}},"required":["variable","value"],"additionalProperties":false},"maxItems":100,"default":[]},"actions":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"const":"physics","type":"string"},"target":{"anyOf":[{"type":"object","properties":{"actorId":{"type":"string","minLength":1,"maxLength":100}},"required":["actorId"],"additionalProperties":false},{"type":"object","properties":{"instance":{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}]}},"required":["instance"],"additionalProperties":false}]},"operation":{"type":"string","enum":["ApplyForce","ApplyTorque","ApplyImpulse","ApplyAngularImpulse"]},"vector":{"type":"array","items":[{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}]},{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}]},{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}]}],"minItems":3,"maxItems":3}},"required":["type","target","operation","vector"],"additionalProperties":false},{"type":"object","properties":{"type":{"const":"spawn","type":"string"},"prefab":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","x-runtime-validation":true},"position":{"type":"array","items":[{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}]},{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}]},{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}]}],"minItems":3,"maxItems":3},"rotation":{"type":"array","items":[{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}]},{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}]},{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}]}],"minItems":3,"maxItems":3,"default":[0,0,0]},"velocity":{"type":"array","items":[{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}]},{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}]},{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}]}],"minItems":3,"maxItems":3,"default":[0,0,0]},"lifetime":{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}],"default":30},"result":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","x-runtime-validation":true}},"required":["type","prefab","position"],"additionalProperties":false},{"type":"object","properties":{"type":{"const":"despawn","type":"string"},"instance":{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}]}},"required":["type","instance"],"additionalProperties":false},{"type":"object","properties":{"type":{"const":"sound_play","type":"string"},"sound":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","x-runtime-validation":true},"voice":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","x-runtime-validation":true},"volume":{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}],"default":1},"rate":{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}],"default":1},"loop":{"type":"boolean","default":false},"target":{"anyOf":[{"type":"object","properties":{"actorId":{"type":"string","minLength":1,"maxLength":100}},"required":["actorId"],"additionalProperties":false},{"type":"object","properties":{"instance":{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}]}},"required":["instance"],"additionalProperties":false}]}},"required":["type","sound","voice"],"additionalProperties":false},{"type":"object","properties":{"type":{"const":"sound_stop","type":"string"},"voice":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","x-runtime-validation":true}},"required":["type","voice"],"additionalProperties":false},{"type":"object","properties":{"type":{"const":"animation_play","type":"string"},"target":{"anyOf":[{"type":"object","properties":{"actorId":{"type":"string","minLength":1,"maxLength":100}},"required":["actorId"],"additionalProperties":false},{"type":"object","properties":{"instance":{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}]}},"required":["instance"],"additionalProperties":false}]},"clip":{"type":"string","minLength":1,"maxLength":100},"loop":{"type":"string","enum":["once","repeat","pingpong"],"default":"repeat"},"speed":{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}],"default":1},"fade":{"type":"number","minimum":0,"maximum":5,"default":0.15}},"required":["type","target","clip"],"additionalProperties":false},{"type":"object","properties":{"type":{"const":"animation_stop","type":"string"},"target":{"anyOf":[{"type":"object","properties":{"actorId":{"type":"string","minLength":1,"maxLength":100}},"required":["actorId"],"additionalProperties":false},{"type":"object","properties":{"instance":{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}]}},"required":["instance"],"additionalProperties":false}]},"fade":{"type":"number","minimum":0,"maximum":5,"default":0.15}},"required":["type","target"],"additionalProperties":false}]},"maxItems":32,"default":[]}},"required":["name","event"],"additionalProperties":false},"maxItems":200},"prefabs":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","x-runtime-validation":true},"actorId":{"type":"string","minLength":1,"maxLength":100},"physics":{"type":"boolean","default":false},"maxAlive":{"type":"integer","minimum":1,"maximum":128,"default":32}},"required":["id","actorId"],"additionalProperties":false},"maxItems":32,"default":[]},"sounds":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","x-runtime-validation":true},"name":{"type":"string","maxLength":100},"recipe":{"type":"object","properties":{"duration":{"type":"number","minimum":0.02,"maximum":12},"seed":{"type":"integer","minimum":0,"maximum":4294967295,"default":1},"layers":{"type":"array","items":{"type":"object","properties":{"wave":{"type":"string","enum":["sine","triangle","saw","square","noise"]},"frequency":{"type":"number","minimum":0,"maximum":10000},"endFrequency":{"type":"number","minimum":0,"maximum":10000},"gain":{"type":"number","minimum":0,"maximum":1,"default":0.3},"attack":{"type":"number","minimum":0,"maximum":12,"default":0.005},"release":{"type":"number","minimum":0,"maximum":12,"default":0.08}},"required":["wave","frequency"],"additionalProperties":false},"minItems":1,"maxItems":8}},"required":["duration","layers"],"additionalProperties":false},"data":{"type":"string","maxLength":5600000,"pattern":"^data:audio\\/(wav|mpeg|ogg);base64,[A-Za-z0-9+/]+={0,2}$","x-runtime-validation":true}},"required":["id","name","data"],"additionalProperties":false},"maxItems":24,"default":[]},"sensors":{"type":"array","items":{"type":"object","properties":{"variable":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","x-runtime-validation":true},"target":{"anyOf":[{"type":"object","properties":{"actorId":{"type":"string","minLength":1,"maxLength":100}},"required":["actorId"],"additionalProperties":false},{"type":"object","properties":{"instance":{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}]}},"required":["instance"],"additionalProperties":false}]},"property":{"type":"string","enum":["x","y","z","vx","vy","vz","wx","wy","wz","alive"]}},"required":["variable","target","property"],"additionalProperties":false},"maxItems":128,"default":[]},"bindings":{"type":"array","items":{"type":"object","properties":{"actorId":{"type":"string"},"parent":{"type":"string"},"position":{"type":"array","items":[{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}]},{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}]},{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}]}],"minItems":3,"maxItems":3},"rotation":{"type":"array","items":[{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}]},{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}]},{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}]}],"minItems":3,"maxItems":3},"scale":{"type":"array","items":[{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}]},{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}]},{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}]}],"minItems":3,"maxItems":3,"default":[1,1,1]},"visible":{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}],"default":1}},"required":["actorId","position","rotation"],"additionalProperties":false},"maxItems":150},"camera":{"type":"object","properties":{"actorId":{"type":"string"},"mode":{"type":"string","enum":["follow","fixed"],"default":"follow"},"offset":{"type":"array","items":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"number","minimum":-1000000000,"maximum":1000000000}],"minItems":3,"maxItems":3},"lookAt":{"type":"array","items":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"number","minimum":-1000000000,"maximum":1000000000}],"minItems":3,"maxItems":3},"alternateOffset":{"type":"array","items":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"number","minimum":-1000000000,"maximum":1000000000}],"minItems":3,"maxItems":3,"default":[0,1,0]},"alternateLookAt":{"type":"array","items":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"number","minimum":-1000000000,"maximum":1000000000}],"minItems":3,"maxItems":3,"default":[0,1,-100]},"switchKey":{"anyOf":[{"type":"string","pattern":"^(Key[A-Z]|Digit[0-9]|Arrow(Up|Down|Left|Right)|Space|ShiftLeft|ShiftRight|ControlLeft|ControlRight|Mouse[0-4])$"},{"const":"","type":"string"}],"default":""},"smoothing":{"type":"number","minimum":0,"maximum":30,"default":5},"far":{"type":"number","minimum":100,"maximum":30000,"default":10000},"pointerLock":{"type":"boolean","default":false}},"required":["actorId","offset","lookAt"],"additionalProperties":false},"menu":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","maxLength":80},"options":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","maxLength":80},"description":{"type":"string","maxLength":250,"default":""},"set":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","x-runtime-validation":true},"additionalProperties":{"type":"number","minimum":-1000000000,"maximum":1000000000}}},"required":["label","set"],"additionalProperties":false},"minItems":1,"maxItems":20}},"required":["label","options"],"additionalProperties":false},"maxItems":12},"hud":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","maxLength":60},"value":{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}]},"decimals":{"type":"integer","minimum":0,"maximum":3,"default":0},"suffix":{"type":"string","maxLength":30,"default":""}},"required":["label","value"],"additionalProperties":false},"maxItems":16},"messages":{"type":"array","items":{"type":"object","properties":{"when":{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}]},"text":{"type":"string","maxLength":180}},"required":["when","text"],"additionalProperties":false},"maxItems":30},"points":{"type":"array","items":{"type":"array","items":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"number","minimum":-1000000000,"maximum":1000000000}],"minItems":3,"maxItems":3},"maxItems":256,"default":[]},"boxes":{"type":"array","items":{"type":"array","items":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"number","minimum":-1000000000,"maximum":1000000000}],"minItems":6,"maxItems":6},"maxItems":3000,"default":[]},"controls":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","maxLength":60},"code":{"type":"string","pattern":"^(Key[A-Z]|Digit[0-9]|Arrow(Up|Down|Left|Right)|Space|ShiftLeft|ShiftRight|ControlLeft|ControlRight|Mouse[0-4])$"}},"required":["label","code"],"additionalProperties":false},"maxItems":24,"default":[]},"pauseWhen":{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}],"default":0}},"required":["version","title","variables","rules","bindings","camera","menu","hud","messages"],"additionalProperties":false},{"type":"null"}]},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["program"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_gameplay_test","description":"Run the actual fixed-step 3D behavior runtime with scheduled input and menu choices; returns variables, poses and HUD. No GPU playtest. Events are zero-based fixed frames at 120 Hz. Pointer events: {frame,type:\"pointer\",x,y,dx,dy,wheel}; x/y normalized 0..1, deltas/wheel in pixels. Mouse buttons use {frame,code:\"Mouse0\",pressed:true}. Maximum 72000 frames, 8192 events and 10000000 estimated operations; long traces auto-sample to <=120 entries. Documentation: https://modeljlabs.com/aether/learn/runtime-148","inputSchema":{"type":"object","properties":{"frames":{"type":"integer","minimum":0,"maximum":72000},"choices":{"type":"array","items":{"type":"integer","minimum":0},"maxItems":12},"events":{"type":"array","maxItems":8192,"items":{"oneOf":[{"type":"object","required":["frame","type"],"additionalProperties":false,"properties":{"frame":{"type":"integer","minimum":0,"maximum":71999},"type":{"const":"pointer"},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"dx":{"type":"number","minimum":-1000000,"maximum":1000000},"dy":{"type":"number","minimum":-1000000,"maximum":1000000},"wheel":{"type":"number","minimum":-1000000,"maximum":1000000}}},{"type":"object","required":["frame","code","pressed"],"additionalProperties":false,"properties":{"frame":{"type":"integer","minimum":0,"maximum":71999},"type":{"const":"input"},"code":{"type":"string","pattern":"^(Key[A-Z]|Digit[0-9]|Arrow(Up|Down|Left|Right)|Space|ShiftLeft|ShiftRight|ControlLeft|ControlRight|Mouse[0-4])$"},"pressed":{"type":"boolean"}}},{"type":"object","required":["frame","type"],"additionalProperties":false,"properties":{"frame":{"type":"integer","minimum":0,"maximum":71999},"type":{"const":"clear"}}},{"type":"object","required":["frame","type","name"],"additionalProperties":false,"properties":{"frame":{"type":"integer","minimum":0,"maximum":71999},"type":{"enum":["event","widget"]},"name":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$"},"value":{}}}]}},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_model_compose","description":"Create or replace an editable model from boxes, convex polygon faces or elliptical lathe profiles. Each shape accepts color (#RRGGBB), otherwise it inherits the actor color. Geometry and materials are rebuilt in Play and export.","inputSchema":{"type":"object","properties":{"actor_id":{"type":"string"},"name":{"type":"string"},"recipe":{"type":"object","properties":{"shapes":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"kind":{"const":"box","type":"string"},"min":{"type":"array","items":[{"type":"number","minimum":-10000,"maximum":10000},{"type":"number","minimum":-10000,"maximum":10000},{"type":"number","minimum":-10000,"maximum":10000}],"minItems":3,"maxItems":3},"max":{"type":"array","items":[{"type":"number","minimum":-10000,"maximum":10000},{"type":"number","minimum":-10000,"maximum":10000},{"type":"number","minimum":-10000,"maximum":10000}],"minItems":3,"maxItems":3},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}},"required":["kind","min","max"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"polyhedron","type":"string"},"points":{"type":"array","items":{"type":"array","items":[{"type":"number","minimum":-10000,"maximum":10000},{"type":"number","minimum":-10000,"maximum":10000},{"type":"number","minimum":-10000,"maximum":10000}],"minItems":3,"maxItems":3},"minItems":3,"maxItems":8192},"faces":{"type":"array","items":{"type":"array","items":{"type":"integer","minimum":0,"maximum":8191},"minItems":3,"maxItems":64},"minItems":1,"maxItems":16384},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}},"required":["kind","points","faces"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"lathe","type":"string"},"profile":{"type":"array","items":{"type":"array","items":[{"type":"number","minimum":-10000,"maximum":10000},{"type":"number","minimum":-10000,"maximum":10000},{"type":"number","minimum":-10000,"maximum":10000}],"minItems":3,"maxItems":3},"minItems":2,"maxItems":256},"segments":{"type":"integer","minimum":3,"maximum":256,"default":16},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}},"required":["kind","profile"],"additionalProperties":false}]},"minItems":1,"maxItems":20000}},"required":["shapes"],"additionalProperties":false},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["recipe"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_model_recipe_read","description":"Read a composed model construction recipe and generated vertex count.","inputSchema":{"type":"object","properties":{"actor_id":{"type":"string"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["actor_id"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_browser_parity","description":"Inspect actual native-tool equivalents and remaining browser gaps. Unconnected tools are not advertised as runnable.","inputSchema":{"type":"object","properties":{"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_import_formats","description":"Discover supported Godot/Unity scene conversion and Android loose-asset extraction, including losses.","inputSchema":{"type":"object","properties":{"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_import_inspect","description":"Preview a supplied source project without mutation. Returns a converted editable document and detailed losses; does not execute scripts.","inputSchema":{"type":"object","properties":{"files":{"type":"array","items":{"type":"object"},"maxItems":256},"format":{"type":"string","enum":["godot","unity","android"]},"entry":{"type":"string"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["files","format"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_import_apply","description":"Replace this project with the inspected source conversion. Unsupported components require explicit accept_lossy=true.","inputSchema":{"type":"object","properties":{"files":{"type":"array","items":{"type":"object"},"maxItems":256},"format":{"type":"string","enum":["godot","unity","android"]},"entry":{"type":"string"},"accept_lossy":{"type":"boolean"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["files","format"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_3d_physics_catalog","description":"Discover native WASM rigid-body schema, body ownership rules and scope.","inputSchema":{"type":"object","properties":{"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_3d_physics_read","description":"Read authored native WASM bodies and keyboard actions.","inputSchema":{"type":"object","properties":{"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_3d_physics_apply","description":"Replace validated 3D native WASM physics configuration. Used by browser Play and exported games.","inputSchema":{"type":"object","properties":{"physics":{"type":"object","properties":{"version":{"const":1,"type":"number"},"gravity":{"type":"array","items":[{"type":"number","minimum":-10000,"maximum":10000},{"type":"number","minimum":-10000,"maximum":10000},{"type":"number","minimum":-10000,"maximum":10000}],"minItems":3,"maxItems":3},"ground":{"type":"boolean"},"groundY":{"type":"number","minimum":-500,"maximum":500},"bodies":{"type":"array","items":{"type":"object","properties":{"actorId":{"type":"string","minLength":1,"maxLength":100},"shape":{"type":"string","enum":["box","sphere"]},"half":{"type":"array","items":[{"type":"number","minimum":0.01,"maximum":100},{"type":"number","minimum":0.01,"maximum":100},{"type":"number","minimum":0.01,"maximum":100}],"minItems":3,"maxItems":3},"mass":{"type":"number","minimum":0,"maximum":100000},"restitution":{"type":"number","minimum":0,"maximum":1},"friction":{"type":"number","minimum":0,"maximum":2},"offset":{"type":"array","items":[{"type":"number","minimum":-10000,"maximum":10000},{"type":"number","minimum":-10000,"maximum":10000},{"type":"number","minimum":-10000,"maximum":10000}],"minItems":3,"maxItems":3}},"required":["actorId","shape","half","mass","restitution","friction"],"additionalProperties":false},"maxItems":128},"actions":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","pattern":"^(Key[A-Z]|Digit[0-9]|Arrow(Up|Down|Left|Right)|Space)$"},"actorId":{"type":"string","minLength":1,"maxLength":100},"operation":{"type":"string","enum":["ApplyForce","ApplyTorque","ApplyImpulse","ApplyAngularImpulse"]},"vector":{"type":"array","items":[{"type":"number","minimum":-10000,"maximum":10000},{"type":"number","minimum":-10000,"maximum":10000},{"type":"number","minimum":-10000,"maximum":10000}],"minItems":3,"maxItems":3},"trigger":{"type":"string","enum":["held","pressed"]}},"required":["code","actorId","operation","vector","trigger"],"additionalProperties":false},"maxItems":128}},"required":["version","gravity","ground","groundY","bodies","actions"],"additionalProperties":false},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["physics"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_model_primitive","description":"Create a dimensionally accurate centered editable OBJ primitive, rather than a normalized preview model.","inputSchema":{"type":"object","properties":{"name":{"type":"string"},"kind":{"type":"string","enum":["box","sphere","cylinder","capsule","plane"]},"size":{"type":"array","items":{"type":"number"},"minItems":3,"maxItems":3},"position":{"type":"array","items":{"type":"number"},"minItems":3,"maxItems":3},"segments":{"type":"integer","minimum":3,"maximum":64},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["kind","size"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_model_curve","description":"Create or update a non-destructive tube curve recipe using shared editor geometry.","inputSchema":{"type":"object","properties":{"actor_id":{"type":"string"},"name":{"type":"string"},"curve":{"type":"object"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["curve"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_modifier_stack","description":"Replace an actor’s shared modifier stack (twist/taper/bend/noise); does not imply native modifier parity.","inputSchema":{"type":"object","properties":{"actor_id":{"type":"string"},"modifiers":{"type":"array","items":{"type":"object"},"maxItems":8},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["actor_id","modifiers"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_mesh_inspect","description":"Inspect a single-mesh OBJ asset, bounds, edge incidence and a bounded vertex page.","inputSchema":{"type":"object","properties":{"actor_id":{"type":"string"},"offset":{"type":"integer","minimum":0},"limit":{"type":"integer","minimum":1,"maximum":1000},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["actor_id"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_mesh_vertices_edit","description":"Edit indexed vertices of an OBJ base mesh. Indices are from mesh_inspect and must be revision-guarded.","inputSchema":{"type":"object","properties":{"actor_id":{"type":"string"},"vertices":{"type":"array","items":{"type":"object"},"maxItems":1000},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["actor_id","vertices"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_mesh_transform","description":"Bake translation, Euler rotation and positive scale into one OBJ base mesh; actor placement remains editable.","inputSchema":{"type":"object","properties":{"actor_id":{"type":"string"},"position":{"type":"array","items":{"type":"number"},"minItems":3,"maxItems":3},"rotation":{"type":"array","items":{"type":"number"},"minItems":3,"maxItems":3},"scale":{"type":"array","items":{"type":"number"},"minItems":3,"maxItems":3},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["actor_id"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_mesh_weld","description":"Weld coincident OBJ vertices at a specified tolerance and recalculate smooth normals.","inputSchema":{"type":"object","properties":{"actor_id":{"type":"string"},"tolerance":{"type":"number","minimum":0.000001,"maximum":0.1},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["actor_id"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_mesh_normals","description":"Recalculate flat or smooth normals on an OBJ base mesh.","inputSchema":{"type":"object","properties":{"actor_id":{"type":"string"},"smooth":{"type":"boolean"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["actor_id"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_mesh_export","description":"Export OBJ base geometry or ASCII STL. Modifier stacks must be removed/baked in the editor first; reports source coordinates.","inputSchema":{"type":"object","properties":{"actor_id":{"type":"string"},"format":{"type":"string","enum":["obj","stl"]},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["actor_id","format"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_terrain_inspect","description":"Read shared terrain recipe and sample bounds at a bounded resolution.","inputSchema":{"type":"object","properties":{"resolution":{"type":"integer","minimum":2,"maximum":129},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_terrain_heightfield","description":"Export actual shared terrain samples as row-major height values with decoding coordinates.","inputSchema":{"type":"object","properties":{"resolution":{"type":"integer","minimum":2,"maximum":129},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_terrain_mesh","description":"Bake shared terrain to a separate editable OBJ actor; retains the original terrain recipe.","inputSchema":{"type":"object","properties":{"resolution":{"type":"integer","minimum":2,"maximum":129},"name":{"type":"string"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_terrain_scatter","description":"Deterministically place model instances on sampled terrain with height/slope filters.","inputSchema":{"type":"object","properties":{"asset_id":{"type":"string"},"count":{"type":"integer","minimum":1,"maximum":100},"seed":{"type":"integer"},"min_height":{"type":"number"},"max_height":{"type":"number"},"max_slope":{"type":"number"},"scale":{"type":"array","items":{"type":"number"},"minItems":3,"maxItems":3},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["asset_id","count"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_timeline_sample","description":"Sample the same transform key interpolation used by browser animation playback.","inputSchema":{"type":"object","properties":{"actor_id":{"type":"string"},"time":{"type":"number"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["actor_id","time"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_2d_create","description":"Create an empty editable 2D project with camera, inputs and Box2D solver defaults.","inputSchema":{"type":"object","properties":{"name":{"type":"string"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_2d_actor_upsert","description":"Create or replace a named 2D actor while preserving other actors and resources.","inputSchema":{"type":"object","properties":{"actor":{"type":"object"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["actor"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_2d_actor_remove","description":"Remove an actor and its sprites, collider, body and dependent joints.","inputSchema":{"type":"object","properties":{"actor":{"type":"string"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["actor"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_2d_camera_set","description":"Set 2D camera center/size, background and gravity.","inputSchema":{"type":"object","properties":{"camera":{"type":"object"},"background":{"type":"array","items":{"type":"number"},"minItems":3,"maxItems":3},"gravity":{"type":"array","items":{"type":"number"},"minItems":2,"maxItems":2},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_2d_inputs_set","description":"Replace validated keyboard/action mappings.","inputSchema":{"type":"object","properties":{"inputs":{"type":"array","items":{"type":"object"},"maxItems":64},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["inputs"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_2d_sprites_set","description":"Replace sprites for one actor, preserving other actors’ render data.","inputSchema":{"type":"object","properties":{"actor":{"type":"string"},"sprites":{"type":"array","items":{"type":"object"},"maxItems":32},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["actor","sprites"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_2d_collider_upsert","description":"Create or replace one actor’s shape and collision filtering.","inputSchema":{"type":"object","properties":{"collider":{"type":"object"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["collider"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_2d_body_upsert","description":"Create or replace one actor’s dynamic/static/kinematic physics body.","inputSchema":{"type":"object","properties":{"body":{"type":"object"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["body"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_2d_joint_upsert","description":"Create or replace a validated 2D solver joint by ID.","inputSchema":{"type":"object","properties":{"joint":{"type":"object"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["joint"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_2d_joint_remove","description":"Remove one named joint; references from gear joints are validated.","inputSchema":{"type":"object","properties":{"id":{"type":"string"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["id"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_2d_image_upsert","description":"Register or replace an embedded PNG/JPEG/WebP sprite sheet.","inputSchema":{"type":"object","properties":{"image":{"type":"object"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["image"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_2d_clip_upsert","description":"Create or replace a validated sprite-sheet animation clip.","inputSchema":{"type":"object","properties":{"clip":{"type":"object"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["clip"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_2d_tilemap_upsert","description":"Create or replace one tilemap including collision tiles.","inputSchema":{"type":"object","properties":{"tilemap":{"type":"object"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["tilemap"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_2d_prefab_upsert","description":"Create or replace one Blueprint-bound spawn prefab.","inputSchema":{"type":"object","properties":{"prefab":{"type":"object"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["prefab"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_2d_blueprint_upsert","description":"Create or replace an executable 2D actor Blueprint class with validated graph references. Browser 2D widget nodes: ShowWidget, HideWidget, SetWidgetVisible, SetWidgetEnabled, SetWidgetText, SetWidgetStyle. s=control id; visibility/enabled use v=0/1 or input 0; text/style use s2 or String input 0. Style accepts classic/neon/flat or JSON skin. Initial controls[].visible defaults true; visible_var binds a numeric/Boolean variable on visible_target (defaults to target), visible_when=false shows when zero. Explicit visibility nodes override that binding until a new play session. Save and re-export; no appended scripts required. See project_read.widget_runtime.","inputSchema":{"type":"object","properties":{"blueprint":{"type":"object"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["blueprint"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_mcp_status","description":"Read the running engine version, exact shared tool names, public connection address and separate native catalog counts.","inputSchema":{"type":"object","properties":{"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_script_catalog","description":"Discover AetherScript syntax, component schemas, bounded engine APIs and runtime limits. This is interpreted AetherScript, not JavaScript, C# or access to host/network APIs.","inputSchema":{"type":"object","properties":{"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_script_validate","description":"Compile an AetherScript module without changing any project. Returns line/column diagnostics, callable functions and syntax/semantic validation.","inputSchema":{"type":"object","properties":{"source":{"type":"string"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["source"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_script_read","description":"Read saved reusable scripts and actor component instances.","inputSchema":{"type":"object","properties":{"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_script_upsert","description":"Compile and save one reusable script module with typed field defaults. Existing component values must remain valid; a failing edit is rejected atomically.","inputSchema":{"type":"object","properties":{"module":{"type":"object","properties":{"id":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","x-runtime-validation":true},"source":{"type":"string","minLength":1,"maxLength":32768},"fields":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","x-runtime-validation":true},"additionalProperties":{"type":"object","properties":{"type":{"type":"string","enum":["number","boolean","string","array","object"]},"default":{"x-runtime-validation":true},"min":{"type":"number","minimum":-1000000000,"maximum":1000000000},"max":{"type":"number","minimum":-1000000000,"maximum":1000000000}},"required":["type","default"],"additionalProperties":false},"default":{}}},"required":["id","source"],"additionalProperties":false},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["module"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_script_remove","description":"Remove an unreferenced module. Refuses modules still used by actor components.","inputSchema":{"type":"object","properties":{"id":{"type":"string"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["id"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_component_upsert","description":"Attach or replace an instance of a reusable script on an actor, with independently validated state. Template components are cloned onto spawned prefabs.","inputSchema":{"type":"object","properties":{"component":{"type":"object","properties":{"id":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","x-runtime-validation":true},"actorId":{"type":"string","minLength":1,"maxLength":100},"script":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","x-runtime-validation":true},"enabled":{"type":"boolean","default":true},"template":{"type":"boolean","default":false},"state":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","x-runtime-validation":true},"additionalProperties":{"x-runtime-validation":true},"default":{}}},"required":["id","actorId","script"],"additionalProperties":false},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["component"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_component_remove","description":"Remove a saved script component without deleting the actor or reusable module.","inputSchema":{"type":"object","properties":{"id":{"type":"string"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["id"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_component_inspect","description":"Inspect one actor, supported built-in component fields and its saved script component instances. Saved state is not live runtime state.","inputSchema":{"type":"object","properties":{"actor_id":{"type":"string"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["actor_id"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_ui_apply","description":"Replace reusable text, button, progress, slider, toggle and select widgets. Widgets bind to variables and authored events in Play and exports.","inputSchema":{"type":"object","properties":{"widgets":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","x-runtime-validation":true},"kind":{"type":"string","enum":["text","button","progress","slider","toggle","select"]},"label":{"type":"string","maxLength":100},"panel":{"type":"string","maxLength":60,"default":""},"value":{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}],"default":0},"visible":{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}],"default":1},"enabled":{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}],"default":1},"event":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","x-runtime-validation":true},"variable":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","x-runtime-validation":true},"min":{"type":"number","minimum":-1000000000,"maximum":1000000000,"default":0},"max":{"type":"number","minimum":-1000000000,"maximum":1000000000,"default":100},"step":{"type":"number","minimum":0.0001,"maximum":100000,"default":1},"options":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","maxLength":80},"value":{"type":"number","minimum":-1000000000,"maximum":1000000000}},"required":["label","value"],"additionalProperties":false},"maxItems":32,"default":[]}},"required":["id","kind","label"],"additionalProperties":false},"maxItems":64},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["widgets"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_animation_controller_apply","description":"Replace reusable clip state machines with validated states, transitions, conditions and crossfades. Targets need compatible embedded animation clips.","inputSchema":{"type":"object","properties":{"controllers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","x-runtime-validation":true},"actorId":{"type":"string","minLength":1,"maxLength":100},"initial":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","x-runtime-validation":true},"states":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","x-runtime-validation":true},"clip":{"type":"string","minLength":1,"maxLength":100},"speed":{"type":"number","minimum":0,"maximum":8,"default":1},"loop":{"type":"string","enum":["once","repeat","pingpong"],"default":"repeat"}},"required":["id","clip"],"additionalProperties":false},"minItems":1,"maxItems":32},"transitions":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","x-runtime-validation":true},"to":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","x-runtime-validation":true},"when":{"anyOf":[{"type":"number","minimum":-1000000000,"maximum":1000000000},{"type":"string","minLength":1,"maxLength":2048}]},"fade":{"type":"number","minimum":0,"maximum":5,"default":0.15},"after":{"type":"number","minimum":0,"maximum":3600,"default":0}},"required":["from","to","when"],"additionalProperties":false},"maxItems":128,"default":[]}},"required":["id","actorId","initial","states"],"additionalProperties":false},"maxItems":32},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["controllers"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_runtime_test","description":"Execute the actual fixed-step 3D runtime with scripts, components, physics, widgets and custom events. Returns source-tagged logs, measured CPU update times, state assertions and replay traces. No GPU/audio rendering. Events are zero-based fixed frames at 120 Hz. Pointer events: {frame,type:\"pointer\",x,y,dx,dy,wheel}; x/y normalized 0..1, deltas/wheel in pixels. Mouse buttons use {frame,code:\"Mouse0\",pressed:true}. Maximum 72000 frames, 8192 events and 10000000 estimated operations; long traces auto-sample to <=120 entries. Documentation: https://modeljlabs.com/aether/learn/runtime-148","inputSchema":{"type":"object","properties":{"frames":{"type":"integer","minimum":0,"maximum":72000},"choices":{"type":"array","items":{"type":"integer"},"maxItems":12},"events":{"type":"array","maxItems":8192,"items":{"oneOf":[{"type":"object","required":["frame","type"],"additionalProperties":false,"properties":{"frame":{"type":"integer","minimum":0,"maximum":71999},"type":{"const":"pointer"},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"dx":{"type":"number","minimum":-1000000,"maximum":1000000},"dy":{"type":"number","minimum":-1000000,"maximum":1000000},"wheel":{"type":"number","minimum":-1000000,"maximum":1000000}}},{"type":"object","required":["frame","code","pressed"],"additionalProperties":false,"properties":{"frame":{"type":"integer","minimum":0,"maximum":71999},"type":{"const":"input"},"code":{"type":"string","pattern":"^(Key[A-Z]|Digit[0-9]|Arrow(Up|Down|Left|Right)|Space|ShiftLeft|ShiftRight|ControlLeft|ControlRight|Mouse[0-4])$"},"pressed":{"type":"boolean"}}},{"type":"object","required":["frame","type"],"additionalProperties":false,"properties":{"frame":{"type":"integer","minimum":0,"maximum":71999},"type":{"const":"clear"}}},{"type":"object","required":["frame","type","name"],"additionalProperties":false,"properties":{"frame":{"type":"integer","minimum":0,"maximum":71999},"type":{"enum":["event","widget"]},"name":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$"},"value":{}}}]}},"observe":{"type":"array","items":{"type":"string"},"maxItems":16},"traceEvery":{"type":"integer","minimum":1},"assertions":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"equals":{},"tolerance":{"type":"number"}},"required":["path","equals"],"additionalProperties":false},"maxItems":64},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_build_validate","description":"Validate export readiness across requested targets. Checks project references and scripting, packages, animation clips and exact target requirements. Does not compile desktop executables or certify GPU visuals.","inputSchema":{"type":"object","properties":{"targets":{"type":"array","items":{"type":"object"},"maxItems":8},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_preview_status","description":"List browser previews explicitly connected by the project owner for the current saved revision. No session means rendered evidence is unavailable.","inputSchema":{"type":"object","properties":{"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_preview_request","description":"Queue inspect, viewport capture or a bounded rendered replay in a connected browser. Replay restarts and pauses the visible game. Poll aether_preview_result; queued does not mean executed.","inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["inspect","capture","replay"]},"session_id":{"type":"string"},"input":{"type":"object"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["action"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_preview_result","description":"Read a queued preview job. Completed reports contain browser runtime diagnostics and, for captures/replays, an actual 3D canvas JPEG. Images exclude HTML HUD. Human visual/audio review is still separate.","inputSchema":{"type":"object","properties":{"job_id":{"type":"string"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["job_id"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_browser_authoring_catalog","description":"Read the native mesh operations, modifiers and material expressions that execute through browser WebAssembly.","inputSchema":{"type":"object","properties":{"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_browser_model_apply","description":"Rebuild an actor from a retained source mesh, native edit operations and a non-destructive modifier stack. A source mesh is required for initial conversion. The validated baked mesh is saved with the recipe for Play and export.","inputSchema":{"type":"object","properties":{"actor":{"type":"string","minLength":1,"maxLength":100},"mesh":{"type":"object"},"operations":{"type":"array","items":{"type":"object"},"maxItems":64},"modifiers":{"type":"array","items":{"type":"object"},"maxItems":16},"targets":{"type":"object"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["actor"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_browser_model_read","description":"Read an actor’s retained native model source, editing recipe, modifier stack and baked geometry.","inputSchema":{"type":"object","properties":{"actor":{"type":"string","minLength":1,"maxLength":100},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["actor"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_browser_material_apply","description":"Evaluate a native material expression graph into saved UV-space PBR texture maps. This is a static bake at the selected time, not a dynamic shader.","inputSchema":{"type":"object","properties":{"actor":{"type":"string","minLength":1,"maxLength":100},"graph":{"type":"object"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["actor","graph"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_browser_material_read","description":"Read the saved material graph, native .amat representation and baked texture channels.","inputSchema":{"type":"object","properties":{"actor":{"type":"string","minLength":1,"maxLength":100},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["actor"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_terrain_graph_catalog","description":"Read the 41 native C++ terrain nodes available in the browser, their parameter ranges/defaults and connection requirements. Ports: 0 primary, 1 flow/mask, 2 wear, 3 deposit. No file dependencies or macros.","inputSchema":{"type":"object","properties":{"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_terrain_graph_apply","description":"Build and save a connected native terrain graph using the production C++ WASM kernel. Saves recipe, float32 heightfield and normalized masks together. Inputs refer to earlier node indices; -1 disconnects. Replaces the base heightfield and removes the ordered operation stack; retains sculpt stamps. Square world, 64/128/256 cells, maximum 12 nodes. No paired desktop required.","inputSchema":{"type":"object","properties":{"graph":{"type":"object","additionalProperties":false,"required":["cells","worldSize","nodes"],"properties":{"cells":{"type":"integer","enum":[64,128,256]},"worldSize":{"type":"number","minimum":32,"maximum":8192},"nodes":{"type":"array","minItems":1,"maxItems":12,"items":{"type":"object","additionalProperties":false,"required":["kind"],"properties":{"kind":{"type":"string","enum":["Mountain","MountainRange","Ridge","Plains","Island","Constant","Canyon","Dunes","Volcano","Perlin","Voronoi","Gradient","Shape","Cracks","Erode","Thermal","Terrace","Blur","Warp","Carve","Detail","Shaper","Clamp","Curve","Stratify","HydroFix","SlopeMask","HeightMask","WearMask","DepositMask","Curvature","Peaks","Soil","FlowMap","RockMap","Angle","Blend","Add","Max","Min","Output"]},"seed":{"type":"integer","minimum":0,"maximum":2147483647},"parameters":{"type":"array","items":{"type":"number"},"maxItems":8},"inputs":{"type":"array","items":{"type":"integer","minimum":-1,"maximum":11},"maxItems":3},"ports":{"type":"array","items":{"type":"integer","minimum":0,"maximum":3},"maxItems":3}}}},"output":{"type":"integer","minimum":0,"maximum":11}}},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["graph"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_terrain_graph_read","description":"Read the saved native terrain recipe, build identity and bake status.","inputSchema":{"type":"object","properties":{"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_terrain_graph_detach","description":"Detach the graph recipe and native masks while retaining the baked heightfield and sculpt stamps as an editable imported base.","inputSchema":{"type":"object","properties":{"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_terrain_pipeline_set","description":"Set a reproducible ordered terrain pipeline: noise, hydraulic water/sediment erosion, thermal weathering, terraces and strata. Live simulation supports 128/256/512 cells; background editor export rebuilds up to 4096. Schema: terrain.pipeline.","inputSchema":{"type":"object","properties":{"pipeline":{"type":"object"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["pipeline"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_terrain_layers_set","description":"Set saved mask-driven terrain surface layers. Channels: height/slope/wear/deposit/flow. Colors and roughness blend in array order. Schema: terrain.layers.","inputSchema":{"type":"object","properties":{"layers":{"type":"array","items":{"type":"object"},"maxItems":16},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["layers"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_terrain_heightfield_import","description":"Import embedded float32le or uint16le height samples in metres, rows north-to-south in +Z, columns +X. Maximum 2049 samples per side; uint16 requires minimum/maximum. The project document limit still applies.","inputSchema":{"type":"object","properties":{"heightfield":{"type":"object"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["heightfield"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_terrain_pipeline_inspect","description":"Inspect the live deterministic simulation and separate flow/wear/deposit maps. Reports material-volume balance and operation order; does not claim Gaea numerical parity.","inputSchema":{"type":"object","properties":{"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_terrain_channel_tile","description":"Read a bounded float32le height/wear/deposit/flow tile from the live simulation. Tile edge samples overlap for seamless assembly. No per-tile erosion or normalization.","inputSchema":{"type":"object","properties":{"channel":{"type":"string","enum":["height","wear","deposit","flow"]},"x":{"type":"integer"},"z":{"type":"integer"},"cells":{"type":"integer"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["channel","x","z","cells"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_scatter_layer_upsert","description":"Add/replace a decorative instanced static-model layer outside the actor count. Up to 50000 instances/layer, 100000/scene. Height/slope/erosion-mask filters; seeded positions. No individual physics or skeletal animation.","inputSchema":{"type":"object","properties":{"layer":{"type":"object"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["layer"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_scatter_layer_remove","description":"Remove one instanced scatter layer.","inputSchema":{"type":"object","properties":{"id":{"type":"string"},"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":["id"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}},{"name":"aether_scatter_inspect","description":"Report requested and placed decorative instances and spatial batches, separate from gameplay actor counts.","inputSchema":{"type":"object","properties":{"project_id":{"type":"string"},"expected_revision":{"type":"integer","minimum":0}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false},"_meta":{"aether/version":"0.10.152","aether/runtime":"shared"}}]}