{
 "engine": "Realot Studio",
 "generatedFrom": "project/runtime/components/*.js, project/runtime/scripting/components/*API.js, relay/tools.json and project/editor state",
 "runtimeEntry": "project/runtime/index.js",
 "componentTypes": [
  "Transform",
  "SpriteRenderer",
  "ShapeRenderer",
  "TextRenderer",
  "StrokePath",
  "SpeechBubble",
  "ChatLog",
  "TextInput",
  "Joystick",
  "Rigidbody2D",
  "Collider2D",
  "Joint2D",
  "CharacterController",
  "SpriteAnimation",
  "Camera",
  "AudioSource",
  "AudioListener",
  "Light",
  "ShadowCaster",
  "LightingSettings",
  "NavAgent2D",
  "NavWorld2D",
  "Tileset",
  "Tilemap",
  "Script"
 ],
 "lifecycle": [
  "onClone",
  "onStart",
  "onUpdate",
  "onFixedUpdate",
  "onDestroy",
  "onClick",
  "onCollision",
  "onCollisionEnter",
  "onCollisionStay",
  "onCollisionExit",
  "onTriggerEnter",
  "onTriggerExit",
  "onMessage",
  "onStateEnter",
  "onStateExit",
  "onStateUpdate",
  "onHearSound",
  "onLoseSound"
 ],
 "enums": {
  "LightType": {
   "DIRECTIONAL": "Directional",
   "POINT": "Point",
   "SPOT": "Spot",
   "AREA": "Area",
   "GOD_RAYS": "GodRays",
   "FREEFORM": "Freeform"
  },
  "ShapeType": {
   "SQUARE": "Square",
   "CIRCLE": "Circle",
   "TRIANGLE": "Triangle",
   "CAPSULE": "Capsule"
  },
  "JoystickPositionMode": {
   "FIXED": "Fixed",
   "DYNAMIC": "Dynamic"
  },
  "StrokePathTextureMode": {
   "STRETCH": "stretch",
   "TILE": "tile"
  },
  "StrokePathJointMode": {
   "SHARP": "sharp",
   "BEVEL": "bevel",
   "ROUND": "round"
  },
  "StrokePathCapMode": {
   "NONE": "none",
   "BOX": "box",
   "ROUND": "round"
  },
  "ControllerType": {
   "CHARACTER": "Character Controller",
   "PLATFORMER": "Platformer",
   "TOP_DOWN": "Top-Down",
   "CAR": "Car",
   "FOLLOW": "Follow",
   "PATROL": "Patrol",
   "FREE": "Free"
  },
  "PatrolMode": {
   "PLATFORMER": "Platformer",
   "TOP_DOWN": "Top-Down"
  },
  "PatrolAxis": {
   "HORIZONTAL": "Horizontal",
   "VERTICAL": "Vertical"
  },
  "TileRole": {
   "CORNER_TL": "cornerTL",
   "EDGE_T": "edgeT",
   "CORNER_TR": "cornerTR",
   "EDGE_L": "edgeL",
   "CENTER": "center",
   "EDGE_R": "edgeR",
   "CORNER_BL": "cornerBL",
   "EDGE_B": "edgeB",
   "CORNER_BR": "cornerBR",
   "STUB_T": "stubT",
   "LINE_V": "lineV",
   "STUB_B": "stubB",
   "STUB_L": "stubL",
   "LINE_H": "lineH",
   "STUB_R": "stubR",
   "SINGLE": "single"
  },
  "JointType2D": {
   "FIXED": "Fixed",
   "REVOLUTE": "Revolute",
   "PRISMATIC": "Prismatic",
   "ROPE": "Rope",
   "SPRING": "Spring"
  },
  "CameraAspectMode": {
   "LANDSCAPE": "Landscape",
   "PORTRAIT": "Portrait",
   "SQUARE": "Square",
   "CUSTOM": "Custom"
  },
  "ScalingMode": {
   "EXPAND": "Expand",
   "FIT": "Fit",
   "FILL": "Fill",
   "STRETCH": "Stretch"
  },
  "BodyType": {
   "DYNAMIC": "Dynamic",
   "KINEMATIC": "Kinematic",
   "STATIC": "Static"
  },
  "ColliderShape": {
   "BOX": "Box",
   "CIRCLE": "Circle",
   "CAPSULE": "Capsule",
   "TRIANGLE": "Triangle"
  },
  "OneWayDirection": {
   "UP": "Up",
   "DOWN": "Down"
  },
  "ShadowMode": {
   "QUAD": "quad",
   "RAYMARCH": "raymarch"
  }
 },
 "globalApi": {
  "Entity lookup functions": [
   "findFirst(name)",
   "findAll(name)",
   "findFirstWithTag(tag)",
   "findAllWithTag(tag)",
   "findWithTag(tag)",
   "findById(id)",
   "findInRadius(x, y, radius, opts)"
  ],
  "Scene (`scene`)": [
   "findFirst(name)",
   "findAll(name)",
   "findFirstWithTag(tag)",
   "findAllWithTag(tag)",
   "findWithTag(tag)",
   "findById(id)",
   "load(sceneName)",
   "restart()",
   "pause()",
   "resume()",
   "isPaused (read-only)",
   "current (read-only)",
   "lighting"
  ],
  "Physics (`physics`)": [
   "raycast(x1, y1, x2, y2, opts)",
   "layer(...indices)"
  ],
  "Navigation (`nav`)": [
   "findPath(x1, y1, x2, y2, opts)",
   "isWalkable(x, y)",
   "bake()",
   "areaIndex(name)",
   "areaMask(...names)",
   "areaCosts(costsByName)"
  ],
  "Input (`input`)": [
   "keyDown(key)",
   "keyPressed(key)"
  ],
  "Mouse (`mouse`)": [
   "x, y (world-space)",
   "screenX, screenY (canvas pixels)",
   "over (read-only)",
   "down(button?)",
   "pressed(button?)",
   "released(button?)",
   "isOver(entityOrName, opts)",
   "clickedOn(entityOrName, opts, button?)"
  ],
  "Touch (`touch`)": [
   "count, first, anyJustStarted, anyJustEnded",
   "per-touch: id, x, y, screenX, screenY, startX, startY, dx, dy, distance, justStarted, justEnded",
   "swipe: active, direction, dx, dy, distance",
   "pinch: active, scale, delta, distance",
   "isOver(entityOrName, opts)",
   "tappedOn(entityOrName, opts)"
  ],
  "Time (`time`)": [
   "deltaTime",
   "unscaledDeltaTime",
   "elapsed",
   "scale"
  ],
  "Random (`random`)": [
   "int(min, max)",
   "float(min, max)"
  ],
  "Math helpers (`mathx`)": [
   "lerp(a, b, t)",
   "smoothstep(a, b, value)",
   "clamp(value, min, max)",
   "moveToward(current, target, maxDelta)",
   "remap(value, inMin, inMax, outMin, outMax)",
   "approximately(a, b, epsilon?)"
  ],
  "Global state (`global`)": [
   "Read, write and test arbitrary named in-memory values shared by scripts; resets when the game page is reloaded."
  ],
  "Debug HUD (`debug`)": [
   "show(on?)",
   "showFps(on?)",
   "log(label, value)",
   "clear(label)",
   "clearAll()"
  ],
  "Object pools (`pool`)": [
   "create(name, options)",
   "find(name)",
   "get(name, x, y)",
   "release(entity)"
  ],
  "Global functions": [
   "spawn(nameOrTag, opts)",
   "wait(seconds, callback)",
   "cancelWait(timerId)",
   "repeat(seconds, callback)",
   "cancelRepeat(timerId)",
   "sendMessage(tagOrEntity, message, data)",
   "broadcastMessage(message, data)",
   "tween(target, properties, duration, easing?, onComplete?)",
   "cancelTween(tweenId)",
   "smoothstep(a, b, value)"
  ]
 },
 "editorSettings": {
  "performancePreferences": {
   "editorFpsFocused": 60,
   "editorFpsUnfocused": 24,
   "gameFps": {
    "default": 60,
    "allowed": [
     30,
     60,
     120,
     0
    ],
    "zeroMeans": "unlimited"
   },
   "backgroundRendering": true,
   "vsync": true,
   "showComponentNotes": false
  },
  "projectRegistries": {
   "tagDefaults": [
    "Untagged",
    "Player",
    "Enemy"
   ],
   "physicsLayerCount": 16,
   "physicsLayerDefault": "Default",
   "navAreaCount": 16,
   "navAreaDefaults": [
    "Ground",
    "Water"
   ]
  },
  "note": "These are stored implementation defaults and project registries; the supplied editor has no general Settings dialog to edit performance preferences."
 },
 "aiBridge": {
  "defaultRelayUrl": "https://realot-bridge.realot.workers.dev",
  "sharedRelayActiveMinutesPer24Hours": 30,
  "idleGraceSeconds": 20,
  "sharedRelayTools": [
   {
    "name": "get_editor_state",
    "description": "Overview of the open Realot editor: project name, whether the game is playing, selected entity ids, entity count, available component types.",
    "inputSchema": {
     "type": "object",
     "properties": {},
     "additionalProperties": false
    }
   },
   {
    "name": "list_entities",
    "description": "List every entity in the current scene (id, name, tag, active, component types, x/y position).",
    "inputSchema": {
     "type": "object",
     "properties": {
      "limit": {
       "type": "integer",
       "description": "Max entities to return (default 200)."
      }
     },
     "additionalProperties": false
    }
   },
   {
    "name": "get_entity",
    "description": "Full data of one entity: all components with every property.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "id": {
       "type": "string"
      }
     },
     "required": [
      "id"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "create_entity",
    "description": "Create an entity. 'components' maps a component type (e.g. SpriteRenderer, Collider2D, Rigidbody2D, Script) to its properties. A Transform is always added. Undoable with undo. Values are validated: wrong types, unknown properties, invalid enum values (e.g. Light.type), out-of-range numbers, bad hex colors and values the engine would silently clamp are rejected with a message listing every problem and the allowed values; nothing is changed on error.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "name": {
       "type": "string"
      },
      "x": {
       "type": "number"
      },
      "y": {
       "type": "number"
      },
      "tag": {
       "type": "string"
      },
      "components": {
       "type": "object",
       "description": "{ \"Collider2D\": { \"shape\": \"Box\", \"width\": 50, \"height\": 50 }, ... }"
      }
     },
     "required": [
      "name"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "update_component",
    "description": "Change properties of an existing component on an entity (only properties the component already has). Use get_entity first to see them. Values are validated: wrong types, unknown properties, invalid enum values (e.g. Light.type), out-of-range numbers, bad hex colors and values the engine would silently clamp are rejected with a message listing every problem and the allowed values; nothing is changed on error.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "id": {
       "type": "string"
      },
      "type": {
       "type": "string",
       "description": "Component type, e.g. Transform"
      },
      "props": {
       "type": "object"
      }
     },
     "required": [
      "id",
      "type",
      "props"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "add_component",
    "description": "Add a component to an entity. Values are validated: wrong types, unknown properties, invalid enum values (e.g. Light.type), out-of-range numbers, bad hex colors and values the engine would silently clamp are rejected with a message listing every problem and the allowed values; nothing is changed on error.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "id": {
       "type": "string"
      },
      "type": {
       "type": "string"
      },
      "props": {
       "type": "object"
      }
     },
     "required": [
      "id",
      "type"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "remove_component",
    "description": "Remove a component (not Transform) from an entity.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "id": {
       "type": "string"
      },
      "type": {
       "type": "string"
      }
     },
     "required": [
      "id",
      "type"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "delete_entities",
    "description": "Delete entities by id (same as pressing Delete in the editor). Undoable.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "ids": {
       "type": "array",
       "items": {
        "type": "string"
       }
      }
     },
     "required": [
      "ids"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "select_entities",
    "description": "Select entities in the editor so the user sees them in the Inspector.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "ids": {
       "type": "array",
       "items": {
        "type": "string"
       }
      }
     },
     "required": [
      "ids"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "list_scripts",
    "description": "Names of all scripts in the project.",
    "inputSchema": {
     "type": "object",
     "properties": {},
     "additionalProperties": false
    }
   },
   {
    "name": "get_script",
    "description": "Source code of a script.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "name": {
       "type": "string"
      }
     },
     "required": [
      "name"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "write_script",
    "description": "Create or overwrite a script's source code. Entities already using this script get the new code too. Reports syntax errors.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "name": {
       "type": "string"
      },
      "source": {
       "type": "string"
      }
     },
     "required": [
      "name",
      "source"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "attach_script",
    "description": "Attach an existing script to an entity (adds a Script component).",
    "inputSchema": {
     "type": "object",
     "properties": {
      "id": {
       "type": "string"
      },
      "scriptName": {
       "type": "string"
      }
     },
     "required": [
      "id",
      "scriptName"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "set_playing",
    "description": "Start or stop play mode (opens the game in the play window).",
    "inputSchema": {
     "type": "object",
     "properties": {
      "playing": {
       "type": "boolean"
      }
     },
     "required": [
      "playing"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "get_console",
    "description": "Recent editor/play console lines (logs, warnings, script errors).",
    "inputSchema": {
     "type": "object",
     "properties": {
      "limit": {
       "type": "integer",
       "description": "Default 40."
      }
     },
     "additionalProperties": false
    }
   },
   {
    "name": "screenshot",
    "description": "Image of the scene viewport as the user sees it.",
    "inputSchema": {
     "type": "object",
     "properties": {},
     "additionalProperties": false
    }
   },
   {
    "name": "undo",
    "description": "Undo the last editor change.",
    "inputSchema": {
     "type": "object",
     "properties": {},
     "additionalProperties": false
    }
   },
   {
    "name": "redo",
    "description": "Redo the last undone change.",
    "inputSchema": {
     "type": "object",
     "properties": {},
     "additionalProperties": false
    }
   },
   {
    "name": "save_project",
    "description": "Save now (browser autosave slot, and the .realot file if one is being kept up to date).",
    "inputSchema": {
     "type": "object",
     "properties": {},
     "additionalProperties": false
    }
   },
   {
    "name": "list_assets",
    "description": "List imported images and audio without returning binary data, grouped like the editor's Project folders: Sprites, Animation Clips (uploaded animation frames) and Tiles (tileset images), plus Audio. Use the keys in SpriteRenderer, AudioSource, animation clips, and tilesets.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "kind": {
       "type": "string",
       "enum": [
        "all",
        "sprite",
        "animation",
        "frame",
        "tile",
        "audio"
       ],
       "description": "animation (alias frame) = Animation Clips folder; tile = Tiles folder."
      },
      "query": {
       "type": "string",
       "maxLength": 200
      },
      "limit": {
       "type": "integer",
       "minimum": 1,
       "maximum": 500
      }
     },
     "additionalProperties": false
    }
   },
   {
    "name": "begin_asset_upload",
    "description": "Start uploading a custom asset: a sprite, audio file, animation source, tileset image, or a loose image for the Animation Clips folder (purpose 'frame-asset') or Tiles folder (purpose 'tile-asset'). Then send sequential base64 chunks with append_asset_upload_chunk and finish with complete_asset_upload. The editor must be open and connected. Maximum 20 MiB per file. Purpose 'project-zip' (a .realot/.zip project, max 20 MiB) REPLACES the entire open project and asks the person at the editor to confirm. Animation uploads land in the Animation Clips folder; tileset uploads land in the Tiles folder.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "file_name": {
       "type": "string",
       "maxLength": 240
      },
      "mime_type": {
       "type": "string",
       "maxLength": 100
      },
      "size_bytes": {
       "type": "integer",
       "minimum": 1,
       "maximum": 20971520
      },
      "purpose": {
       "type": "string",
       "enum": [
        "sprite",
        "audio",
        "animation-image",
        "animation-zip",
        "animation-gif",
        "animation-sheet",
        "tileset-sheet",
        "tileset-tile",
        "frame-asset",
        "tile-asset",
        "project-zip"
       ]
      },
      "entity_id": {
       "type": "string",
       "description": "Required for animation-image, animation-zip, animation-gif, and animation-sheet."
      },
      "clip_id": {
       "type": "string",
       "description": "Required for animation upload purposes."
      },
      "tileset_entity_id": {
       "type": "string",
       "description": "Required for tileset-sheet and tileset-tile."
      },
      "role": {
       "type": "string",
       "description": "Required for tileset-tile; use a role from list_tilesets."
      },
      "grid_cols": {
       "type": "integer",
       "minimum": 1,
       "maximum": 64
      },
      "grid_rows": {
       "type": "integer",
       "minimum": 1,
       "maximum": 64
      },
      "group": {
       "type": "string",
       "maxLength": 80,
       "description": "Optional heading to list a frame-asset or tile-asset under in its folder."
      }
     },
     "required": [
      "file_name",
      "mime_type",
      "size_bytes",
      "purpose"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "append_asset_upload_chunk",
    "description": "Send one base64-encoded binary chunk for an active asset upload. Chunks must be independent base64 strings, sequential from index 0. Use the chunk size returned by begin_asset_upload; retrying the same index and data is safe.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "upload_id": {
       "type": "string"
      },
      "chunk_index": {
       "type": "integer",
       "minimum": 0
      },
      "chunk_base64": {
       "type": "string",
       "maxLength": 245760
      }
     },
     "required": [
      "upload_id",
      "chunk_index",
      "chunk_base64"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "complete_asset_upload",
    "description": "Validate and import all received bytes using the editor's native import pipeline. Call only after every chunk has been accepted.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "upload_id": {
       "type": "string"
      }
     },
     "required": [
      "upload_id"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "cancel_asset_upload",
    "description": "Discard a staged upload before it is imported.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "upload_id": {
       "type": "string"
      }
     },
     "required": [
      "upload_id"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "rename_asset",
    "description": "Rename an imported sprite, animation frame, tile or audio asset while preserving its key and references.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "key": {
       "type": "string"
      },
      "kind": {
       "type": "string",
       "enum": [
        "sprite",
        "frame",
        "animation",
        "tile",
        "audio"
       ]
      },
      "name": {
       "type": "string",
       "maxLength": 160
      }
     },
     "required": [
      "key",
      "kind",
      "name"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "delete_asset",
    "description": "Delete an imported asset. If the asset is referenced by scenes or prefabs, the first call reports those references; set confirm=true only when it is acceptable to leave them unresolved.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "key": {
       "type": "string"
      },
      "kind": {
       "type": "string",
       "enum": [
        "sprite",
        "frame",
        "animation",
        "tile",
        "audio"
       ]
      },
      "confirm": {
       "type": "boolean",
       "description": "Explicitly confirm deletion even when references exist."
      }
     },
     "required": [
      "key",
      "kind"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "list_animations",
    "description": "List animation clips and ordered frame keys for every entity in the active scene.",
    "inputSchema": {
     "type": "object",
     "properties": {},
     "additionalProperties": false
    }
   },
   {
    "name": "open_editor_panel",
    "description": "Open the animation editor, tileset editor, physics-layer panel, or navigation-area panel. Animation and tileset panels need the matching entity_id.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "panel": {
       "type": "string",
       "enum": [
        "animation",
        "tileset",
        "physics_layers",
        "navigation_areas"
       ]
      },
      "entity_id": {
       "type": "string"
      },
      "clip_id": {
       "type": "string"
      }
     },
     "required": [
      "panel"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "create_animation_clip",
    "description": "Create an empty animation clip on an entity, adding SpriteAnimation if needed, and open it in the animation editor.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "entity_id": {
       "type": "string"
      },
      "name": {
       "type": "string",
       "maxLength": 120
      },
      "fps": {
       "type": "number",
       "minimum": 0.1,
       "maximum": 120
      },
      "loop": {
       "type": "boolean"
      }
     },
     "required": [
      "entity_id"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "update_animation_clip",
    "description": "Change an animation clip name, frame rate, loop setting, or collider override. Set collider_override to null to remove the override.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "entity_id": {
       "type": "string"
      },
      "clip_id": {
       "type": "string"
      },
      "fields": {
       "type": "object",
       "properties": {
        "name": {
         "type": "string",
         "maxLength": 120
        },
        "fps": {
         "type": "number",
         "minimum": 0.1,
         "maximum": 120
        },
        "loop": {
         "type": "boolean"
        },
        "collider_override": {
         "type": [
          "object",
          "null"
         ]
        }
       },
       "additionalProperties": false
      }
     },
     "required": [
      "entity_id",
      "clip_id",
      "fields"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "delete_animation_clip",
    "description": "Delete one animation clip from its entity. The remaining clips and frames are preserved.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "entity_id": {
       "type": "string"
      },
      "clip_id": {
       "type": "string"
      }
     },
     "required": [
      "entity_id",
      "clip_id"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "move_animation_frame",
    "description": "Reorder an animation frame by moving it from one zero-based position to another.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "entity_id": {
       "type": "string"
      },
      "clip_id": {
       "type": "string"
      },
      "from_index": {
       "type": "integer",
       "minimum": 0
      },
      "to_index": {
       "type": "integer",
       "minimum": 0
      }
     },
     "required": [
      "entity_id",
      "clip_id",
      "from_index",
      "to_index"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "delete_animation_frame",
    "description": "Remove one zero-based frame position from an animation clip without deleting the underlying imported asset.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "entity_id": {
       "type": "string"
      },
      "clip_id": {
       "type": "string"
      },
      "frame_index": {
       "type": "integer",
       "minimum": 0
      }
     },
     "required": [
      "entity_id",
      "clip_id",
      "frame_index"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "list_tilesets",
    "description": "List tilesets, tile dimensions, and sprite keys assigned to each role.",
    "inputSchema": {
     "type": "object",
     "properties": {},
     "additionalProperties": false
    }
   },
   {
    "name": "update_tileset",
    "description": "Edit a tileset name, tile dimensions, or selected role-to-sprite assignments. Set a slot to null to clear it.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "entity_id": {
       "type": "string"
      },
      "patch": {
       "type": "object",
       "properties": {
        "name": {
         "type": "string",
         "maxLength": 120
        },
        "tileWidth": {
         "type": "integer",
         "minimum": 1,
         "maximum": 4096
        },
        "tileHeight": {
         "type": "integer",
         "minimum": 1,
         "maximum": 4096
        },
        "slots": {
         "type": "object",
         "description": "Partial role-to-sprite-key map; use null to clear a role."
        }
       },
       "additionalProperties": false
      }
     },
     "required": [
      "entity_id",
      "patch"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "add_animation_frames",
    "description": "Add images that are already in the project (sprites, Animation Clips frames, or Tiles) to an animation clip as frames. Use list_assets for keys and list_animations for entity/clip ids. Optional index inserts at that position instead of appending. Undoable.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "entity_id": {
       "type": "string"
      },
      "clip_id": {
       "type": "string"
      },
      "asset_keys": {
       "type": "array",
       "items": {
        "type": "string"
       },
       "minItems": 1,
       "maxItems": 200
      },
      "index": {
       "type": "integer",
       "minimum": 0
      }
     },
     "required": [
      "entity_id",
      "clip_id",
      "asset_keys"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "set_tileset_slot",
    "description": "Put an existing project image (sprite, animation frame or tile) in one slot of a Tileset, or clear the slot with asset_key null. Roles come from list_tilesets.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "entity_id": {
       "type": "string"
      },
      "role": {
       "type": "string"
      },
      "asset_key": {
       "type": [
        "string",
        "null"
       ]
      }
     },
     "required": [
      "entity_id",
      "role",
      "asset_key"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "slice_asset_into_tileset",
    "description": "Cut one existing project image (for example an uploaded sprite) into a 4x4 grid and fill all 16 Tileset slots with the pieces. The pieces are saved in the Tiles folder under the tileset's name. Undoable.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "entity_id": {
       "type": "string"
      },
      "asset_key": {
       "type": "string"
      }
     },
     "required": [
      "entity_id",
      "asset_key"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "list_tilemaps",
    "description": "List Tilemap entities, their assigned tileset entity, painted cell count, and up to 500 grid coordinates.",
    "inputSchema": {
     "type": "object",
     "properties": {},
     "additionalProperties": false
    }
   },
   {
    "name": "paint_tilemap",
    "description": "Paint or erase grid cells on a Tilemap. Coordinates are integer cell columns and rows, not world coordinates. Undoable.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "entity_id": {
       "type": "string"
      },
      "mode": {
       "type": "string",
       "enum": [
        "paint",
        "erase"
       ]
      },
      "cells": {
       "type": "array",
       "minItems": 1,
       "maxItems": 5000,
       "items": {
        "type": "object",
        "properties": {
         "col": {
          "type": "integer"
         },
         "row": {
          "type": "integer"
         }
        },
        "required": [
         "col",
         "row"
        ],
        "additionalProperties": false
       }
      }
     },
     "required": [
      "entity_id",
      "mode",
      "cells"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "list_navigation_worlds",
    "description": "List NavWorld2D entities with bounds, cell size, painted cell counts, and navigation settings.",
    "inputSchema": {
     "type": "object",
     "properties": {},
     "additionalProperties": false
    }
   },
   {
    "name": "paint_navigation_cells",
    "description": "Paint walkable or blocked navigation cells, restore baked walkability, or set/clear navigation area indices. Coordinates are integer grid columns and rows. Undoable.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "entity_id": {
       "type": "string"
      },
      "mode": {
       "type": "string",
       "enum": [
        "walkable",
        "blocked",
        "erase_walkability",
        "area",
        "clear_area"
       ]
      },
      "area_index": {
       "type": "integer",
       "minimum": 0,
       "maximum": 15
      },
      "cells": {
       "type": "array",
       "minItems": 1,
       "maxItems": 5000,
       "items": {
        "type": "object",
        "properties": {
         "col": {
          "type": "integer"
         },
         "row": {
          "type": "integer"
         }
        },
        "required": [
         "col",
         "row"
        ],
        "additionalProperties": false
       }
      }
     },
     "required": [
      "entity_id",
      "mode",
      "cells"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "update_navigation_world",
    "description": "Edit NavWorld2D bounds, cell size, obstacle threshold, diagonal movement, dynamic mode, or all 16 area costs. Cell changes invalidate the baked runtime cache.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "entity_id": {
       "type": "string"
      },
      "patch": {
       "type": "object",
       "properties": {
        "boundsX": {
         "type": "number"
        },
        "boundsY": {
         "type": "number"
        },
        "boundsWidth": {
         "type": "number",
         "exclusiveMinimum": 0
        },
        "boundsHeight": {
         "type": "number",
         "exclusiveMinimum": 0
        },
        "cellSize": {
         "type": "number",
         "exclusiveMinimum": 0
        },
        "minObstacleFootprint": {
         "type": "number",
         "minimum": 0
        },
        "allowDiagonal": {
         "type": "boolean"
        },
        "dynamic": {
         "type": "boolean"
        },
        "areaCosts": {
         "type": "array",
         "minItems": 16,
         "maxItems": 16,
         "items": {
          "type": "number",
          "minimum": 0.01
         }
        }
       },
       "additionalProperties": false
      }
     },
     "required": [
      "entity_id",
      "patch"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "list_navigation_areas",
    "description": "List the 16 named navigation area slots and their indices.",
    "inputSchema": {
     "type": "object",
     "properties": {},
     "additionalProperties": false
    }
   },
   {
    "name": "set_navigation_area_name",
    "description": "Rename one navigation area slot. Slot 0 is the default Ground area and cannot be cleared.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "index": {
       "type": "integer",
       "minimum": 0,
       "maximum": 15
      },
      "name": {
       "type": "string",
       "maxLength": 80
      }
     },
     "required": [
      "index",
      "name"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "list_physics_layers",
    "description": "List all 16 named physics layers and their indices.",
    "inputSchema": {
     "type": "object",
     "properties": {},
     "additionalProperties": false
    }
   },
   {
    "name": "set_physics_layer_name",
    "description": "Rename one of the 16 physics layer slots. Slot 0 is the default layer and cannot be cleared.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "index": {
       "type": "integer",
       "minimum": 0,
       "maximum": 15
      },
      "name": {
       "type": "string",
       "maxLength": 80
      }
     },
     "required": [
      "index",
      "name"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "set_collider_layer_filter",
    "description": "Set a Collider2D's physics layer and the layer indices it collides with. Use list_physics_layers to map names to indices.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "entity_id": {
       "type": "string"
      },
      "layer": {
       "type": "integer",
       "minimum": 0,
       "maximum": 15
      },
      "collides_with": {
       "type": "array",
       "items": {
        "type": "integer",
        "minimum": 0,
        "maximum": 15
       },
       "maxItems": 16
      }
     },
     "required": [
      "entity_id",
      "layer",
      "collides_with"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "set_editor_tool",
    "description": "Choose a viewport tool and optionally select its Tilemap, NavWorld2D, or StrokePath entity so the user can continue painting in the editor.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "tool": {
       "type": "string",
       "enum": [
        "select",
        "translate",
        "rotate",
        "scale",
        "pan",
        "tile",
        "erase",
        "nav",
        "nav-block",
        "nav-area",
        "path"
       ]
      },
      "entity_id": {
       "type": "string"
      }
     },
     "required": [
      "tool"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "update_entity",
    "description": "Rename an entity or change its tag, active flag, or hierarchy folder. Use update_component for Transform and other components.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "id": {
       "type": "string",
       "description": "Entity id"
      },
      "patch": {
       "type": "object",
       "description": "Any of: name (string), tag (string; new tags are added to the registry), active (boolean), folderId (string|null)"
      }
     },
     "required": [
      "id",
      "patch"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "list_scenes",
    "description": "List every scene in the project and which one is active.",
    "inputSchema": {
     "type": "object",
     "properties": {},
     "required": [],
     "additionalProperties": false
    }
   },
   {
    "name": "create_scene",
    "description": "Create a new scene (with a Main Camera). Switches to it unless switch=false.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "name": {
       "type": "string",
       "description": "Scene name"
      },
      "switch": {
       "type": "boolean",
       "description": "Switch to the new scene (default true)"
      }
     },
     "required": [],
     "additionalProperties": false
    }
   },
   {
    "name": "switch_scene",
    "description": "Make another scene the active one in the editor.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "scene_id": {
       "type": "string",
       "description": "Scene id from list_scenes"
      }
     },
     "required": [
      "scene_id"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "rename_scene",
    "description": "Rename a scene.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "scene_id": {
       "type": "string",
       "description": "Scene id"
      },
      "name": {
       "type": "string",
       "description": "New name"
      }
     },
     "required": [
      "scene_id",
      "name"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "delete_scene",
    "description": "Delete a scene. Cannot be undone, so the first call only reports what would be deleted; repeat with confirm=true. A project must keep one scene.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "scene_id": {
       "type": "string",
       "description": "Scene id"
      },
      "confirm": {
       "type": "boolean",
       "description": "Set true to actually delete"
      }
     },
     "required": [
      "scene_id"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "list_tags",
    "description": "List the project tag registry.",
    "inputSchema": {
     "type": "object",
     "properties": {},
     "required": [],
     "additionalProperties": false
    }
   },
   {
    "name": "add_tag",
    "description": "Add a tag to the registry.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "tag": {
       "type": "string",
       "description": "Tag name"
      }
     },
     "required": [
      "tag"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "delete_tag",
    "description": "Remove a tag from the registry (Untagged cannot be removed).",
    "inputSchema": {
     "type": "object",
     "properties": {
      "tag": {
       "type": "string",
       "description": "Tag name"
      }
     },
     "required": [
      "tag"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "list_prefabs",
    "description": "List prefabs in the project.",
    "inputSchema": {
     "type": "object",
     "properties": {},
     "required": [],
     "additionalProperties": false
    }
   },
   {
    "name": "create_prefab",
    "description": "Create a prefab from an entity and link that entity to it.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "id": {
       "type": "string",
       "description": "Source entity id"
      },
      "name": {
       "type": "string",
       "description": "Prefab name (default: entity name)"
      }
     },
     "required": [
      "id"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "instantiate_prefab",
    "description": "Place a new instance of a prefab in the active scene.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "prefab_id": {
       "type": "string",
       "description": "Prefab id from list_prefabs"
      },
      "name": {
       "type": "string",
       "description": "Optional entity name"
      },
      "x": {
       "type": "number",
       "description": "World x"
      },
      "y": {
       "type": "number",
       "description": "World y"
      }
     },
     "required": [
      "prefab_id"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "rename_prefab",
    "description": "Rename a prefab.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "prefab_id": {
       "type": "string",
       "description": "Prefab id"
      },
      "name": {
       "type": "string",
       "description": "New name"
      }
     },
     "required": [
      "prefab_id",
      "name"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "delete_prefab",
    "description": "Delete a prefab from the catalogue; existing instances become unlinked. First call reports impact; repeat with confirm=true.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "prefab_id": {
       "type": "string",
       "description": "Prefab id"
      },
      "confirm": {
       "type": "boolean",
       "description": "Set true to actually delete"
      }
     },
     "required": [
      "prefab_id"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "list_folders",
    "description": "List Hierarchy folders in the active scene (id, name, parentId).",
    "inputSchema": {
     "type": "object",
     "properties": {},
     "required": [],
     "additionalProperties": false
    }
   },
   {
    "name": "create_folder",
    "description": "Create a Hierarchy folder, optionally nested in another. Put entities in it with update_entity folderId.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "name": {
       "type": "string",
       "description": "Folder name"
      },
      "parent_id": {
       "type": "string",
       "description": "Parent folder id (omit for top level)"
      }
     },
     "required": [
      "name"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "rename_folder",
    "description": "Rename a Hierarchy folder.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "folder_id": {
       "type": "string",
       "description": "Folder id"
      },
      "name": {
       "type": "string",
       "description": "New name"
      }
     },
     "required": [
      "folder_id",
      "name"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "move_folder",
    "description": "Nest a folder inside another folder, or move it to the top level (omit parent_id). Cycles are refused.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "folder_id": {
       "type": "string",
       "description": "Folder id"
      },
      "parent_id": {
       "type": "string",
       "description": "New parent folder id; omit for top level"
      }
     },
     "required": [
      "folder_id"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "delete_folder",
    "description": "Delete a folder. Its entities and sub-folders move up one level; nothing inside is deleted.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "folder_id": {
       "type": "string",
       "description": "Folder id"
      }
     },
     "required": [
      "folder_id"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "update_prefab",
    "description": "Push an instance's current data to its prefab and to every non-overridden instance across all scenes (the editor's Update Prefab).",
    "inputSchema": {
     "type": "object",
     "properties": {
      "id": {
       "type": "string",
       "description": "Entity id of a prefab instance"
      },
      "apply_position": {
       "type": "boolean",
       "description": "Also propagate position (default false)"
      },
      "apply_rotation": {
       "type": "boolean",
       "description": "Also propagate rotation (default false)"
      },
      "apply_scale": {
       "type": "boolean",
       "description": "Also propagate scale (default false)"
      }
     },
     "required": [
      "id"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "revert_prefab",
    "description": "Reset a prefab instance to its prefab's data, discarding overrides.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "id": {
       "type": "string",
       "description": "Entity id of a prefab instance"
      }
     },
     "required": [
      "id"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "unpack_prefab",
    "description": "Unlink an instance from its prefab, keeping its current data.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "id": {
       "type": "string",
       "description": "Entity id of a prefab instance"
      }
     },
     "required": [
      "id"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "duplicate_scene",
    "description": "Duplicate a scene (deep copy) and add it to the project. Does not switch to it.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "scene_id": {
       "type": "string",
       "description": "Scene id from list_scenes"
      }
     },
     "required": [
      "scene_id"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "delete_script",
    "description": "Delete a script from the project and clear it from objects using it. Cannot be undone, so the first call reports usage; repeat with confirm=true.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "name": {
       "type": "string",
       "description": "Script name"
      },
      "confirm": {
       "type": "boolean",
       "description": "Set true to actually delete"
      }
     },
     "required": [
      "name"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "set_script_enabled",
    "description": "Enable or disable the Script component on an entity without removing it.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "id": {
       "type": "string",
       "description": "Entity id"
      },
      "enabled": {
       "type": "boolean",
       "description": "true to enable, false to disable"
      }
     },
     "required": [
      "id",
      "enabled"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "bake_navworld",
    "description": "Bake a NavWorld2D from the scene's colliders (the editor's Bake button). Reports walkable and blocked cell counts.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "id": {
       "type": "string",
       "description": "Entity id with a NavWorld2D component"
      }
     },
     "required": [
      "id"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "set_paused",
    "description": "Pause or resume the running game. The game must be playing (see set_playing).",
    "inputSchema": {
     "type": "object",
     "properties": {
      "paused": {
       "type": "boolean",
       "description": "true to pause, false to resume"
      }
     },
     "required": [
      "paused"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "export_game",
    "description": "Build the game as a standalone HTML5 or PWA ZIP. By default it also downloads the ZIP in the editor's browser; read the bytes with read_export_chunk. APK builds are not supported through MCP.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "format": {
       "type": "string",
       "enum": [
        "html",
        "pwa"
       ],
       "description": "Export format"
      },
      "title": {
       "type": "string",
       "description": "Game title (default: current export/project title)"
      },
      "download": {
       "type": "boolean",
       "description": "Also download in the editor browser (default true)"
      }
     },
     "required": [
      "format"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "read_export_chunk",
    "description": "Read one base64 chunk of the last export_game ZIP.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "export_id": {
       "type": "string",
       "description": "export_id from export_game"
      },
      "chunk_index": {
       "type": "integer",
       "description": "0-based chunk index"
      }
     },
     "required": [
      "export_id",
      "chunk_index"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "release_export",
    "description": "Free the memory held by the last export_game result.",
    "inputSchema": {
     "type": "object",
     "properties": {
      "export_id": {
       "type": "string",
       "description": "export_id from export_game"
      }
     },
     "required": [
      "export_id"
     ],
     "additionalProperties": false
    }
   },
   {
    "name": "download_project_zip",
    "description": "Save the whole project as a .realot ZIP, downloaded in the editor's browser (File > Save Project without a file handle).",
    "inputSchema": {
     "type": "object",
     "properties": {
      "name": {
       "type": "string",
       "description": "Project name (default: current)"
      },
      "optimize_assets": {
       "type": "boolean",
       "description": "Re-encode PNG/WAV assets smaller (slower)"
      }
     },
     "required": [],
     "additionalProperties": false
    }
   }
  ],
  "localCompanionTools": [
   "realot_bridge_status",
   "realot_get_status",
   "realot_list_scenes",
   "realot_list_entities",
   "realot_get_entity",
   "realot_create_entity",
   "realot_update_entity",
   "realot_delete_entity",
   "realot_add_component",
   "realot_update_component",
   "realot_remove_component",
   "realot_list_scripts",
   "realot_get_script",
   "realot_set_script",
   "realot_validate_script",
   "realot_create_scene",
   "realot_switch_scene",
   "realot_rename_scene",
   "realot_delete_scene",
   "realot_validate_scene",
   "realot_set_play_mode",
   "realot_get_console",
   "realot_save_project"
  ],
  "localCompanionStatus": "Included source only; the editor-side installer has no call site in the supplied startup path."
 },
 "scriptModules": {
  "AnimatorAPI": {
   "access": "this.animator",
   "requirement": "SpriteAnimation component",
   "source": "project/runtime/scripting/components/AnimatorAPI.js",
   "members": [
    {
     "name": "currentClip",
     "signature": null,
     "kind": "read-only property",
     "doc": "The `this.animator` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "currentFrame",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.animator` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "play",
     "signature": "play(clipName)",
     "kind": "method",
     "doc": "The `this.animator` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "playing",
     "signature": null,
     "kind": "read-only property",
     "doc": "The `this.animator` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "speed",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.animator` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "stop",
     "signature": "stop()",
     "kind": "method",
     "doc": "The `this.animator` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "totalFrames",
     "signature": null,
     "kind": "read-only property",
     "doc": "The `this.animator` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    }
   ]
  },
  "AudioAPI": {
   "access": "this.audio",
   "requirement": "AudioSource component",
   "source": "project/runtime/scripting/components/AudioAPI.js",
   "members": [
    {
     "name": "pitch",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.audio` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "play",
     "signature": "play()",
     "kind": "method",
     "doc": "The `this.audio` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "playOnce",
     "signature": "playOnce()",
     "kind": "method",
     "doc": "The `this.audio` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "playing",
     "signature": null,
     "kind": "read-only property",
     "doc": "The `this.audio` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "stop",
     "signature": "stop()",
     "kind": "method",
     "doc": "The `this.audio` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "volume",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.audio` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    }
   ]
  },
  "AudioListenerAPI": {
   "access": "this.ear",
   "requirement": "AudioListener component",
   "source": "project/runtime/scripting/components/AudioListenerAPI.js",
   "members": [
    {
     "name": "canHear",
     "signature": "canHear(nameOrTag, opts)",
     "kind": "method",
     "doc": "The `this.ear` sub-object exposed to user scripts (see scripting/ScriptAPI.js) — the query surface for the AudioListener component (see components/AudioListener.js)."
    },
    {
     "name": "enabled",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.ear` sub-object exposed to user scripts (see scripting/ScriptAPI.js) — the query surface for the AudioListener component (see components/AudioListener.js)."
    },
    {
     "name": "radius",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.ear` sub-object exposed to user scripts (see scripting/ScriptAPI.js) — the query surface for the AudioListener component (see components/AudioListener.js)."
    },
    {
     "name": "sourcesInRange",
     "signature": null,
     "kind": "read-only property",
     "doc": "The `this.ear` sub-object exposed to user scripts (see scripting/ScriptAPI.js) — the query surface for the AudioListener component (see components/AudioListener.js)."
    }
   ]
  },
  "CameraAPI": {
   "access": "this.camera",
   "requirement": "Camera component",
   "source": "project/runtime/scripting/components/CameraAPI.js",
   "members": [
    {
     "name": "allowStretching",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "aspectMode",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "aspectRatioLock",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "backgroundColor",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "barColor",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "customHeight",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "customWidth",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "enablePseudo3D",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "follow",
     "signature": "follow(entityTarget, opts)",
     "kind": "method",
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "integerScaling",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "keepHeight",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "landscapeHeight",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "landscapeWidth",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "letterboxing",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "offsetX",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "offsetY",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "pillarboxing",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "portraitHeight",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "portraitWidth",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "renderToSprite",
     "signature": "renderToSprite(spriteEntity)",
     "kind": "method",
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "scalingMode",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "shake",
     "signature": "shake(intensity, duration)",
     "kind": "method",
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "squareSize",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "stopFollow",
     "signature": "stopFollow()",
     "kind": "method",
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "x",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "y",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "zoom",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    }
   ]
  },
  "ChatLogAPI": {
   "access": "this.chat",
   "requirement": "ChatLog component",
   "source": "project/runtime/scripting/components/ChatLogAPI.js",
   "members": [
    {
     "name": "backgroundColor",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "backgroundOpacity",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "clear",
     "signature": "clear()",
     "kind": "method",
     "doc": "The `this.chat` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "fontFamily",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "fontSize",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "lineHeight",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "maxMessages",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "messageColor",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "messages",
     "signature": null,
     "kind": "read-only property",
     "doc": "The `this.chat` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "padding",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "screenSpace",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "send",
     "signature": "send(sender, text, color)",
     "kind": "method",
     "doc": "The `this.chat` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "senderColor",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.chat` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "showSender",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.chat` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "visible",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "visibleCount",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "width",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    }
   ]
  },
  "ColliderAPI": {
   "access": "this.collider",
   "requirement": "Collider2D component",
   "source": "project/runtime/scripting/components/ColliderAPI.js",
   "members": [
    {
     "name": "capsuleHalfHeight",
     "signature": null,
     "kind": "read-only property",
     "doc": ""
    },
    {
     "name": "capsuleRadius",
     "signature": null,
     "kind": "read-only property",
     "doc": ""
    },
    {
     "name": "density",
     "signature": null,
     "kind": "read-only property",
     "doc": ""
    },
    {
     "name": "friction",
     "signature": null,
     "kind": "read-only property",
     "doc": ""
    },
    {
     "name": "height",
     "signature": null,
     "kind": "read-only property",
     "doc": ""
    },
    {
     "name": "isColliding",
     "signature": "isColliding(other)",
     "kind": "method",
     "doc": "The `this.collider` sub-object exposed to user scripts."
    },
    {
     "name": "isOneWayPlatform",
     "signature": null,
     "kind": "read-only property",
     "doc": ""
    },
    {
     "name": "isTrigger",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "layer",
     "signature": null,
     "kind": "read-only property",
     "doc": ""
    },
    {
     "name": "mask",
     "signature": null,
     "kind": "read-only property",
     "doc": ""
    },
    {
     "name": "offset",
     "signature": null,
     "kind": "read-only property",
     "doc": ""
    },
    {
     "name": "oneWayDirection",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.collider` sub-object exposed to user scripts."
    },
    {
     "name": "radius",
     "signature": null,
     "kind": "read-only property",
     "doc": ""
    },
    {
     "name": "restitution",
     "signature": null,
     "kind": "read-only property",
     "doc": ""
    },
    {
     "name": "rotation",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.collider` sub-object exposed to user scripts."
    },
    {
     "name": "shape",
     "signature": null,
     "kind": "read-only property",
     "doc": ""
    },
    {
     "name": "width",
     "signature": null,
     "kind": "read-only property",
     "doc": ""
    }
   ]
  },
  "ControllerAPI": {
   "access": "this.controller",
   "requirement": "CharacterController component. This module combines members for several movement types; a member is available only when the component is set to a compatible type (Character, Platformer, Top-Down, Car, Follow or Patrol). Free mode exposes only its small common surface.",
   "source": "project/runtime/scripting/components/ControllerAPI.js",
   "members": [
    {
     "name": "acceleration",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "airControl",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "brakeForce",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "canJump",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "controllerType",
     "signature": null,
     "kind": "read-only property",
     "doc": ""
    },
    {
     "name": "driftFactor",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "driveTowardArriveDistance",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "facingDirection",
     "signature": null,
     "kind": "read-only property",
     "doc": ""
    },
    {
     "name": "flipDirection",
     "signature": "flipDirection()",
     "kind": "method",
     "doc": ""
    },
    {
     "name": "followDistance",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "followSpeed",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "gravityScale",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "groundAngle",
     "signature": null,
     "kind": "read-only property",
     "doc": ""
    },
    {
     "name": "isGrounded",
     "signature": null,
     "kind": "read-only property",
     "doc": ""
    },
    {
     "name": "isOnCeiling",
     "signature": null,
     "kind": "read-only property",
     "doc": ""
    },
    {
     "name": "isOnSlope",
     "signature": null,
     "kind": "read-only property",
     "doc": ""
    },
    {
     "name": "isOnWall",
     "signature": null,
     "kind": "read-only property",
     "doc": ""
    },
    {
     "name": "jumpForce",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "maxJumps",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "maxSpeed",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "moveSpeed",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "patrolAxis",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "patrolDistance",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "patrolMode",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "simulateDrive",
     "signature": "simulateDrive(throttle, steer)",
     "kind": "method",
     "doc": ""
    },
    {
     "name": "simulateDriveJoystick",
     "signature": "simulateDriveJoystick(x, y)",
     "kind": "method",
     "doc": ""
    },
    {
     "name": "simulateDriveToward",
     "signature": "simulateDriveToward(x, y)",
     "kind": "method",
     "doc": ""
    },
    {
     "name": "simulateJump",
     "signature": "simulateJump()",
     "kind": "method",
     "doc": ""
    },
    {
     "name": "simulateMove",
     "signature": "simulateMove(x, y)",
     "kind": "method",
     "doc": ""
    },
    {
     "name": "targetName",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "turnSpeed",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "useDefaultInput",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "useGravity",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    }
   ]
  },
  "JointAPI": {
   "access": "this.joint",
   "requirement": "Joint2D component",
   "source": "project/runtime/scripting/components/JointAPI.js",
   "members": [
    {
     "name": "anchor1",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "anchor2",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "axis",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.joint` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "breakForce",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "breakable",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.joint` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "collideConnected",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "connectedEntity",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "damping",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "disableConnectedCollision",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "enabled",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.joint` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "flexibility",
     "signature": null,
     "kind": "allow-listed but not implemented",
     "doc": "The proxy allow-list contains this name, but the current JointAPI target has no getter or setter. Reads return undefined and writes do not update Joint2D.flexibility. Set Flexibility (%) in the Inspector instead."
    },
    {
     "name": "jointDrag",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.joint` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "jointType",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "length",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.joint` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "limitMax",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "limitMin",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "limitsEnabled",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.joint` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "motorEnabled",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.joint` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "motorMaxForce",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "motorSpeed",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "restStiffness",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.joint` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "ropeMass",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "segmentCount",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.joint` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "stiffness",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.joint` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "textureFlip",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.joint` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "textureKey",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.joint` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "textureMode",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.joint` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "textureOffset",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.joint` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "textureScale",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.joint` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "textureTiling",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.joint` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "useTexture",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.joint` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "visualColor",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "visualEnabled",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "visualThickness",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    }
   ]
  },
  "JoystickAPI": {
   "access": "this.joystick",
   "requirement": "Joystick component",
   "source": "project/runtime/scripting/components/JoystickAPI.js",
   "members": [
    {
     "name": "active",
     "signature": null,
     "kind": "read-only property",
     "doc": "The `this.joystick` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "angle",
     "signature": null,
     "kind": "read-only property",
     "doc": "The `this.joystick` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "baseColor",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "baseOpacity",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "baseRadius",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "deadZone",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.joystick` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "hideWhenIdle",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.joystick` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "idleOpacityMultiplier",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "knobColor",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "knobOpacity",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "knobRadius",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "magnitude",
     "signature": null,
     "kind": "read-only property",
     "doc": "The `this.joystick` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "outlineColor",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "outlineWidth",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "positionMode",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "regionHeight",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "regionWidth",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "regionX",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.joystick` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "regionY",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "returnToCenter",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.joystick` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "x",
     "signature": null,
     "kind": "read-only property",
     "doc": "The `this.joystick` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "y",
     "signature": null,
     "kind": "read-only property",
     "doc": "The `this.joystick` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    }
   ]
  },
  "LightAPI": {
   "access": "this.light",
   "requirement": "Light component",
   "source": "project/runtime/scripting/components/LightAPI.js",
   "members": [
    {
     "name": "angle",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.light` sub-object exposed to user scripts on any entity that has a Light component."
    },
    {
     "name": "castShadows",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.light` sub-object exposed to user scripts on any entity that has a Light component."
    },
    {
     "name": "castsOnWorld",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.light` sub-object exposed to user scripts on any entity that has a Light component."
    },
    {
     "name": "color",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.light` sub-object exposed to user scripts on any entity that has a Light component."
    },
    {
     "name": "coreSize",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "coreVisible",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "flicker",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "flickerDuration",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "flickerSpeed",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "height",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.light` sub-object exposed to user scripts on any entity that has a Light component."
    },
    {
     "name": "intensity",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.light` sub-object exposed to user scripts on any entity that has a Light component."
    },
    {
     "name": "radius",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.light` sub-object exposed to user scripts on any entity that has a Light component."
    },
    {
     "name": "shadowColor",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.light` sub-object exposed to user scripts on any entity that has a Light component."
    },
    {
     "name": "shadowStrength",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.light` sub-object exposed to user scripts on any entity that has a Light component."
    },
    {
     "name": "type",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.light` sub-object exposed to user scripts on any entity that has a Light component."
    },
    {
     "name": "width",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.light` sub-object exposed to user scripts on any entity that has a Light component."
    }
   ]
  },
  "LightingSettingsAPI": {
   "access": "scene.lighting",
   "requirement": "Scene lighting settings; exposed through the scene global",
   "source": "project/runtime/scripting/components/LightingSettingsAPI.js",
   "members": [
    {
     "name": "ambientDarkness",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `scene.lighting` sub-object exposed to user scripts (see scripting/ScriptAPI.js's getGlobals()) — lets scripts tune scene-wide lighting/shadow realism settings at runtime (see components/LightingSettings.js for the full field guide), e.g."
    },
    {
     "name": "glowStrength",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `scene.lighting` sub-object exposed to user scripts (see scripting/ScriptAPI.js's getGlobals()) — lets scripts tune scene-wide lighting/shadow realism settings at runtime (see components/LightingSettings.js for the full field guide), e.g."
    },
    {
     "name": "raymarchSteps",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `scene.lighting` sub-object exposed to user scripts (see scripting/ScriptAPI.js's getGlobals()) — lets scripts tune scene-wide lighting/shadow realism settings at runtime (see components/LightingSettings.js for the full field guide), e.g."
    },
    {
     "name": "shadowMode",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `scene.lighting` sub-object exposed to user scripts (see scripting/ScriptAPI.js's getGlobals()) — lets scripts tune scene-wide lighting/shadow realism settings at runtime (see components/LightingSettings.js for the full field guide), e.g."
    }
   ]
  },
  "NavAgentAPI": {
   "access": "this.navAgent",
   "requirement": "NavAgent2D component",
   "source": "project/runtime/scripting/components/NavAgentAPI.js",
   "members": [
    {
     "name": "acceleration",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "area",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "areaCosts",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "autoRepath",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "avoidanceEnabled",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "avoidancePriority",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "collabEnabled",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "collabGroupRadius",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "currentPath",
     "signature": null,
     "kind": "read-only property",
     "doc": ""
    },
    {
     "name": "currentPathIndex",
     "signature": null,
     "kind": "read-only property",
     "doc": ""
    },
    {
     "name": "deceleration",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "radius",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "repathDistance",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "repathInterval",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "speed",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "stoppingDistance",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "vehicleCornerLookahead",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "vehicleCornerSlowdown",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "vehicleLookahead",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "vehicleObstacleBrake",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "vehicleObstacleLookahead",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "vehicleObstacleWidth",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "vehicleRecoveryReverseTime",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "vehicleRecoveryTime",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "vehicleSpeedSmoothing",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "vehicleSteerSmoothing",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    }
   ]
  },
  "RigidbodyAPI": {
   "access": "this.rigidbody",
   "requirement": "Rigidbody2D component",
   "source": "project/runtime/scripting/components/RigidbodyAPI.js",
   "members": [
    {
     "name": "addAngularImpulse",
     "signature": "addAngularImpulse(t)",
     "kind": "method",
     "doc": "The `this.rigidbody` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "addForce",
     "signature": "addForce(x, y)",
     "kind": "method",
     "doc": "The `this.rigidbody` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "addForceAtPoint",
     "signature": "addForceAtPoint(x, y, pointX, pointY)",
     "kind": "method",
     "doc": "The `this.rigidbody` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "addImpulse",
     "signature": "addImpulse(x, y)",
     "kind": "method",
     "doc": "The `this.rigidbody` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "addTorque",
     "signature": "addTorque(t)",
     "kind": "method",
     "doc": "The `this.rigidbody` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "angularDamping",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "gravityScale",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "groundAngle",
     "signature": null,
     "kind": "read-only property",
     "doc": "The `this.rigidbody` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "groundAngleLimit",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.rigidbody` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "grounded",
     "signature": null,
     "kind": "read-only property",
     "doc": "The `this.rigidbody` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "isGrounded",
     "signature": null,
     "kind": "read-only property",
     "doc": "The `this.rigidbody` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "isOnCeiling",
     "signature": null,
     "kind": "read-only property",
     "doc": "The `this.rigidbody` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "isOnSlope",
     "signature": null,
     "kind": "read-only property",
     "doc": "The `this.rigidbody` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "isOnWall",
     "signature": null,
     "kind": "read-only property",
     "doc": "The `this.rigidbody` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "linearDamping",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "mass",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "move",
     "signature": "move(dx, dy)",
     "kind": "method",
     "doc": "The `this.rigidbody` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "resolvedVelocity",
     "signature": null,
     "kind": "read-only property",
     "doc": "The `this.rigidbody` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "slopeMinAngle",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.rigidbody` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "type",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "velocity",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "velocityX",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "velocityY",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "wallAngleLimit",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.rigidbody` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    }
   ]
  },
  "SaveAPI": {
   "access": "save",
   "requirement": "Global save store; no entity component required",
   "source": "project/runtime/scripting/components/SaveAPI.js",
   "members": [
    {
     "name": "clear",
     "signature": "clear()",
     "kind": "method",
     "doc": "The `save` global exposed to user scripts (see scripting/ScriptAPI.js getGlobals())."
    },
    {
     "name": "delete",
     "signature": "delete(key)",
     "kind": "method",
     "doc": "The `save` global exposed to user scripts (see scripting/ScriptAPI.js getGlobals())."
    },
    {
     "name": "deleteSlot",
     "signature": "deleteSlot(slotName)",
     "kind": "method",
     "doc": "The `save` global exposed to user scripts (see scripting/ScriptAPI.js getGlobals())."
    },
    {
     "name": "flushNow",
     "signature": "flushNow()",
     "kind": "method",
     "doc": "The `save` global exposed to user scripts (see scripting/ScriptAPI.js getGlobals())."
    },
    {
     "name": "get",
     "signature": "get(key)",
     "kind": "method",
     "doc": "The `save` global exposed to user scripts (see scripting/ScriptAPI.js getGlobals())."
    },
    {
     "name": "has",
     "signature": "has(key)",
     "kind": "method",
     "doc": "The `save` global exposed to user scripts (see scripting/ScriptAPI.js getGlobals())."
    },
    {
     "name": "isReady",
     "signature": null,
     "kind": "read-only property",
     "doc": "The `save` global exposed to user scripts (see scripting/ScriptAPI.js getGlobals())."
    },
    {
     "name": "keys",
     "signature": "keys()",
     "kind": "method",
     "doc": "The `save` global exposed to user scripts (see scripting/ScriptAPI.js getGlobals())."
    },
    {
     "name": "listSlots",
     "signature": "listSlots()",
     "kind": "method",
     "doc": "The `save` global exposed to user scripts (see scripting/ScriptAPI.js getGlobals())."
    },
    {
     "name": "load",
     "signature": "load(slotName)",
     "kind": "method",
     "doc": "The `save` global exposed to user scripts (see scripting/ScriptAPI.js getGlobals())."
    },
    {
     "name": "onError",
     "signature": "onError(callback)",
     "kind": "method",
     "doc": "The `save` global exposed to user scripts (see scripting/ScriptAPI.js getGlobals())."
    },
    {
     "name": "set",
     "signature": "set(key, value)",
     "kind": "method",
     "doc": "The `save` global exposed to user scripts (see scripting/ScriptAPI.js getGlobals())."
    },
    {
     "name": "slot",
     "signature": null,
     "kind": "read-only property",
     "doc": "The `save` global exposed to user scripts (see scripting/ScriptAPI.js getGlobals())."
    }
   ]
  },
  "ShadowCasterAPI": {
   "access": "this.shadowCaster",
   "requirement": "ShadowCaster component",
   "source": "project/runtime/scripting/components/ShadowCasterAPI.js",
   "members": [
    {
     "name": "enabled",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.shadowCaster` sub-object exposed to user scripts on any entity that has a ShadowCaster component (see components/ShadowCaster.js)."
    },
    {
     "name": "height",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.shadowCaster` sub-object exposed to user scripts on any entity that has a ShadowCaster component (see components/ShadowCaster.js)."
    },
    {
     "name": "length",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.shadowCaster` sub-object exposed to user scripts on any entity that has a ShadowCaster component (see components/ShadowCaster.js)."
    },
    {
     "name": "offsetX",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.shadowCaster` sub-object exposed to user scripts on any entity that has a ShadowCaster component (see components/ShadowCaster.js)."
    },
    {
     "name": "offsetY",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.shadowCaster` sub-object exposed to user scripts on any entity that has a ShadowCaster component (see components/ShadowCaster.js)."
    },
    {
     "name": "opacity",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.shadowCaster` sub-object exposed to user scripts on any entity that has a ShadowCaster component (see components/ShadowCaster.js)."
    },
    {
     "name": "softness",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.shadowCaster` sub-object exposed to user scripts on any entity that has a ShadowCaster component (see components/ShadowCaster.js)."
    },
    {
     "name": "width",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.shadowCaster` sub-object exposed to user scripts on any entity that has a ShadowCaster component (see components/ShadowCaster.js)."
    }
   ]
  },
  "ShapeAPI": {
   "access": "this.shape",
   "requirement": "ShapeRenderer component",
   "source": "project/runtime/scripting/components/ShapeAPI.js",
   "members": [
    {
     "name": "capsuleHalfHeight",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.shape` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "capsuleRadius",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.shape` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "fillColor",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.shape` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "height",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.shape` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "opacity",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.shape` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "outlineColor",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.shape` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "outlineEnabled",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.shape` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "outlineWidth",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.shape` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "radius",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.shape` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "shapeType",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.shape` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "visualRotation",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.shape` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "width",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.shape` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    }
   ]
  },
  "SpeechBubbleAPI": {
   "access": "this.speechBubble",
   "requirement": "SpeechBubble component",
   "source": "project/runtime/scripting/components/SpeechBubbleAPI.js",
   "members": [
    {
     "name": "backgroundColor",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "borderColor",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "borderWidth",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "cornerRadius",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "fontFamily",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "fontSize",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "hide",
     "signature": "hide()",
     "kind": "method",
     "doc": "The `this.speechBubble` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "maxWidth",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.speechBubble` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "offsetX",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.speechBubble` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "offsetY",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "padding",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "show",
     "signature": "show(text, duration)",
     "kind": "method",
     "doc": "The `this.speechBubble` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "tailDirection",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.speechBubble` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "tailSize",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "text",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.speechBubble` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "textColor",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "visible",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.speechBubble` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    }
   ]
  },
  "SpriteAPI": {
   "access": "this.sprite",
   "requirement": "SpriteRenderer component",
   "source": "project/runtime/scripting/components/SpriteAPI.js",
   "members": [
    {
     "name": "color",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "flipX",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "flipY",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "opacity",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.sprite` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "texture",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "visualRotation",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.sprite` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    }
   ]
  },
  "StateAPI": {
   "access": "this.state",
   "requirement": "Available on every entity; no component required",
   "source": "project/runtime/scripting/components/StateAPI.js",
   "members": [
    {
     "name": "change",
     "signature": "change(name)",
     "kind": "method",
     "doc": "The `this.state` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "current",
     "signature": null,
     "kind": "read-only property",
     "doc": "The `this.state` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "previous",
     "signature": null,
     "kind": "read-only property",
     "doc": "The `this.state` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    }
   ]
  },
  "StrokePathAPI": {
   "access": "this.strokePath",
   "requirement": "StrokePath component",
   "source": "project/runtime/scripting/components/StrokePathAPI.js",
   "members": [
    {
     "name": "addPoint",
     "signature": "addPoint(x, y)",
     "kind": "method",
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "capMode",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "color",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "firstPoint",
     "signature": null,
     "kind": "read-only property",
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "getLength",
     "signature": "getLength()",
     "kind": "method",
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "getPoint",
     "signature": "getPoint(index)",
     "kind": "method",
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "insertPoint",
     "signature": "insertPoint(index, x, y)",
     "kind": "method",
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "jointMode",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "lastPoint",
     "signature": null,
     "kind": "read-only property",
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "localToWorld",
     "signature": "localToWorld(localX, localY)",
     "kind": "method",
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "opacity",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "pointCount",
     "signature": null,
     "kind": "read-only property",
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "points",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "removePoint",
     "signature": "removePoint(index)",
     "kind": "method",
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "setPoint",
     "signature": "setPoint(index, x, y)",
     "kind": "method",
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "textureFlip",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "textureKey",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "textureMode",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "textureOffset",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "textureRotation",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "textureScale",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "textureTiling",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "thickness",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "useTexture",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "worldToLocal",
     "signature": "worldToLocal(worldX, worldY)",
     "kind": "method",
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    }
   ]
  },
  "TextAPI": {
   "access": "this.text",
   "requirement": "TextRenderer component",
   "source": "project/runtime/scripting/components/TextAPI.js",
   "members": [
    {
     "name": "align",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.text` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "anchorX",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.text` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "anchorY",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "bold",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "color",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "fontFamily",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "fontSize",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "italic",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "opacity",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.text` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "screenSpace",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.text` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "value",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.text` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "wordWrap",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "wrapWidth",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.text` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    }
   ]
  },
  "TextInputAPI": {
   "access": "this.textInput",
   "requirement": "TextInput component",
   "source": "project/runtime/scripting/components/TextInputAPI.js",
   "members": [
    {
     "name": "backgroundColor",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "borderColor",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "borderWidth",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "clear",
     "signature": "clear()",
     "kind": "method",
     "doc": "The `this.textInput` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "clearOnSubmit",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.textInput` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "cornerRadius",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "focused",
     "signature": null,
     "kind": "read-only property",
     "doc": "The `this.textInput` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "fontFamily",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "fontSize",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "height",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "justSubmitted",
     "signature": null,
     "kind": "read-only property",
     "doc": "The `this.textInput` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "maxLength",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "padding",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "placeholder",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "placeholderColor",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "textColor",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "value",
     "signature": null,
     "kind": "read/write property",
     "doc": "The `this.textInput` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "width",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    }
   ]
  },
  "TouchTrackAPI": {
   "access": "this.myTouch",
   "requirement": "Available on every entity; no component required",
   "source": "project/runtime/scripting/components/TouchTrackAPI.js",
   "members": [
    {
     "name": "active",
     "signature": null,
     "kind": "read-only property",
     "doc": "The `this.myTouch` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "disable",
     "signature": "disable()",
     "kind": "method",
     "doc": "The `this.myTouch` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "enable",
     "signature": "enable()",
     "kind": "method",
     "doc": "The `this.myTouch` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "enabled",
     "signature": null,
     "kind": "read-only property",
     "doc": "The `this.myTouch` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "startTracking",
     "signature": "startTracking()",
     "kind": "method",
     "doc": "The `this.myTouch` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "stopTracking",
     "signature": "stopTracking()",
     "kind": "method",
     "doc": "The `this.myTouch` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "x",
     "signature": null,
     "kind": "read-only property",
     "doc": "The `this.myTouch` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "y",
     "signature": null,
     "kind": "read-only property",
     "doc": "The `this.myTouch` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    }
   ]
  },
  "TransformAPI": {
   "access": "this.transform",
   "requirement": "Available on every entity; no component required",
   "source": "project/runtime/scripting/components/TransformAPI.js",
   "members": [
    {
     "name": "lookAt",
     "signature": "lookAt(x, y)",
     "kind": "method",
     "doc": ""
    },
    {
     "name": "position",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "rotation",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "scale",
     "signature": null,
     "kind": "read/write property",
     "doc": ""
    },
    {
     "name": "translate",
     "signature": "translate(dx, dy)",
     "kind": "method",
     "doc": ""
    }
   ]
  }
 },
 "components": {
  "Transform": {
   "summary": "Position, rotation and scale. Every spatial entity uses a Transform.",
   "docs": "docs/api/components/transform.html",
   "source": "project/runtime/components/Transform.js",
   "sceneFields": [
    {
     "name": "x",
     "default": "0",
     "type": "number"
    },
    {
     "name": "y",
     "default": "0",
     "type": "number"
    },
    {
     "name": "z",
     "default": "0",
     "type": "number"
    },
    {
     "name": "rotation",
     "default": "0",
     "type": "number"
    },
    {
     "name": "scaleX",
     "default": "1",
     "type": "number"
    },
    {
     "name": "scaleY",
     "default": "1",
     "type": "number"
    }
   ],
   "scriptModule": "this.transform",
   "scriptMembers": [
    {
     "name": "lookAt",
     "kind": "method",
     "signature": "lookAt(x, y)",
     "doc": ""
    },
    {
     "name": "position",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "rotation",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "scale",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "translate",
     "kind": "method",
     "signature": "translate(dx, dy)",
     "doc": ""
    }
   ]
  },
  "SpriteRenderer": {
   "summary": "Draw a 2D texture sprite for an entity.",
   "docs": "docs/api/components/spriterenderer.html",
   "source": "project/runtime/components/SpriteRenderer.js",
   "sceneFields": [
    {
     "name": "spriteKey",
     "default": "null",
     "type": "null"
    },
    {
     "name": "color",
     "default": "#ffffff",
     "type": "string"
    },
    {
     "name": "opacity",
     "default": "1",
     "type": "number"
    },
    {
     "name": "flipX",
     "default": "false",
     "type": "boolean"
    },
    {
     "name": "flipY",
     "default": "false",
     "type": "boolean"
    },
    {
     "name": "visualRotation",
     "default": "0",
     "type": "number"
    },
    {
     "name": "referenceWidth",
     "default": "null",
     "type": "null"
    },
    {
     "name": "referenceHeight",
     "default": "null",
     "type": "null"
    }
   ],
   "scriptModule": "this.sprite",
   "scriptMembers": [
    {
     "name": "color",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "flipX",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "flipY",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "opacity",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.sprite` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "texture",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "visualRotation",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.sprite` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    }
   ]
  },
  "ShapeRenderer": {
   "summary": "Draw a procedural 2D shape without requiring a sprite asset.",
   "docs": "docs/api/components/shaperenderer.html",
   "source": "project/runtime/components/ShapeRenderer.js",
   "sceneFields": [
    {
     "name": "shapeType",
     "default": "Square",
     "type": "enum:ShapeType"
    },
    {
     "name": "width",
     "default": "100",
     "type": "number"
    },
    {
     "name": "height",
     "default": "100",
     "type": "number"
    },
    {
     "name": "radius",
     "default": "50",
     "type": "number"
    },
    {
     "name": "capsuleHalfHeight",
     "default": "50",
     "type": "number"
    },
    {
     "name": "capsuleRadius",
     "default": "30",
     "type": "number"
    },
    {
     "name": "trianglePoints",
     "default": "[ { x: -50, y: 50 }, { x: 50, y: 50 }, { x: 0, y: -50 }, ]",
     "type": "array"
    },
    {
     "name": "fillColor",
     "default": "#3a8ede",
     "type": "string"
    },
    {
     "name": "visualRotation",
     "default": "0",
     "type": "number"
    },
    {
     "name": "opacity",
     "default": "1",
     "type": "number"
    },
    {
     "name": "outlineEnabled",
     "default": "false",
     "type": "boolean"
    },
    {
     "name": "outlineColor",
     "default": "#ffffff",
     "type": "string"
    },
    {
     "name": "outlineWidth",
     "default": "2",
     "type": "number"
    }
   ],
   "scriptModule": "this.shape",
   "scriptMembers": [
    {
     "name": "capsuleHalfHeight",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.shape` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "capsuleRadius",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.shape` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "fillColor",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.shape` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "height",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.shape` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "opacity",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.shape` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "outlineColor",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.shape` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "outlineEnabled",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.shape` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "outlineWidth",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.shape` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "radius",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.shape` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "shapeType",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.shape` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "visualRotation",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.shape` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "width",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.shape` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    }
   ]
  },
  "TextRenderer": {
   "summary": "Render text either in world space or as screen-space UI.",
   "docs": "docs/api/components/textrenderer.html",
   "source": "project/runtime/components/TextRenderer.js",
   "sceneFields": [
    {
     "name": "value",
     "default": "Text",
     "type": "string"
    },
    {
     "name": "fontSize",
     "default": "32",
     "type": "number"
    },
    {
     "name": "color",
     "default": "#ffffff",
     "type": "string"
    },
    {
     "name": "fontFamily",
     "default": "Arial",
     "type": "string"
    },
    {
     "name": "bold",
     "default": "false",
     "type": "boolean"
    },
    {
     "name": "italic",
     "default": "false",
     "type": "boolean"
    },
    {
     "name": "align",
     "default": "left",
     "type": "string"
    },
    {
     "name": "anchorX",
     "default": "0.5",
     "type": "number"
    },
    {
     "name": "anchorY",
     "default": "0.5",
     "type": "number"
    },
    {
     "name": "opacity",
     "default": "1",
     "type": "number"
    },
    {
     "name": "screenSpace",
     "default": "true",
     "type": "boolean"
    },
    {
     "name": "wordWrap",
     "default": "false",
     "type": "boolean"
    },
    {
     "name": "wrapWidth",
     "default": "300",
     "type": "number"
    }
   ],
   "scriptModule": "this.text",
   "scriptMembers": [
    {
     "name": "align",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.text` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "anchorX",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.text` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "anchorY",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "bold",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "color",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "fontFamily",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "fontSize",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "italic",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "opacity",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.text` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "screenSpace",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.text` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "value",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.text` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "wordWrap",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "wrapWidth",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.text` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    }
   ]
  },
  "StrokePath": {
   "summary": "A variable-thickness strip along placed points — rivers, cables, roads, conveyor belts or walls — with flat color or textured fill.",
   "docs": "docs/api/components/strokepath.html",
   "source": "project/runtime/components/StrokePath.js",
   "sceneFields": [
    {
     "name": "points",
     "default": "[ { x: -100, y: 0 }, { x: 100, y: 0 }, ]",
     "type": "array"
    },
    {
     "name": "thickness",
     "default": "40",
     "type": "number"
    },
    {
     "name": "color",
     "default": "#8a8a8a",
     "type": "string"
    },
    {
     "name": "opacity",
     "default": "1",
     "type": "number"
    },
    {
     "name": "useTexture",
     "default": "false",
     "type": "boolean"
    },
    {
     "name": "textureKey",
     "default": "null",
     "type": "null"
    },
    {
     "name": "textureMode",
     "default": "stretch",
     "type": "enum:StrokePathTextureMode"
    },
    {
     "name": "textureTiling",
     "default": "100",
     "type": "number"
    },
    {
     "name": "textureScale",
     "default": "1",
     "type": "number"
    },
    {
     "name": "textureOffset",
     "default": "0",
     "type": "number"
    },
    {
     "name": "textureFlip",
     "default": "false",
     "type": "boolean"
    },
    {
     "name": "textureRotation",
     "default": "0",
     "type": "number"
    },
    {
     "name": "jointMode",
     "default": "round",
     "type": "enum:StrokePathJointMode"
    },
    {
     "name": "capMode",
     "default": "round",
     "type": "enum:StrokePathCapMode"
    },
    {
     "name": "smoothing",
     "default": "0",
     "type": "number"
    }
   ],
   "scriptModule": "this.strokePath",
   "scriptMembers": [
    {
     "name": "addPoint",
     "kind": "method",
     "signature": "addPoint(x, y)",
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "capMode",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "color",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "firstPoint",
     "kind": "read-only property",
     "signature": null,
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "getLength",
     "kind": "method",
     "signature": "getLength()",
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "getPoint",
     "kind": "method",
     "signature": "getPoint(index)",
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "insertPoint",
     "kind": "method",
     "signature": "insertPoint(index, x, y)",
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "jointMode",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "lastPoint",
     "kind": "read-only property",
     "signature": null,
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "localToWorld",
     "kind": "method",
     "signature": "localToWorld(localX, localY)",
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "opacity",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "pointCount",
     "kind": "read-only property",
     "signature": null,
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "points",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "removePoint",
     "kind": "method",
     "signature": "removePoint(index)",
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "setPoint",
     "kind": "method",
     "signature": "setPoint(index, x, y)",
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "textureFlip",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "textureKey",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "textureMode",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "textureOffset",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "textureRotation",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "textureScale",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "textureTiling",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "thickness",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "useTexture",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    },
    {
     "name": "worldToLocal",
     "kind": "method",
     "signature": "worldToLocal(worldX, worldY)",
     "doc": "The `this.strokePath` sub-object exposed to user scripts on any entity that has a StrokePath component."
    }
   ]
  },
  "SpeechBubble": {
   "summary": "Speech bubble UI attached to an entity, useful for dialogue and NPC callouts.",
   "docs": "docs/api/components/speechbubble.html",
   "source": "project/runtime/components/SpeechBubble.js",
   "sceneFields": [
    {
     "name": "text",
     "default": "Hello!",
     "type": "string"
    },
    {
     "name": "visible",
     "default": "false",
     "type": "boolean"
    },
    {
     "name": "backgroundColor",
     "default": "#ffffff",
     "type": "string"
    },
    {
     "name": "textColor",
     "default": "#111111",
     "type": "string"
    },
    {
     "name": "borderColor",
     "default": "#111111",
     "type": "string"
    },
    {
     "name": "borderWidth",
     "default": "2",
     "type": "number"
    },
    {
     "name": "fontSize",
     "default": "20",
     "type": "number"
    },
    {
     "name": "fontFamily",
     "default": "Arial",
     "type": "string"
    },
    {
     "name": "padding",
     "default": "12",
     "type": "number"
    },
    {
     "name": "cornerRadius",
     "default": "10",
     "type": "number"
    },
    {
     "name": "maxWidth",
     "default": "220",
     "type": "number"
    },
    {
     "name": "offsetX",
     "default": "0",
     "type": "number"
    },
    {
     "name": "offsetY",
     "default": "-60",
     "type": "number"
    },
    {
     "name": "tailDirection",
     "default": "down",
     "type": "string"
    },
    {
     "name": "tailSize",
     "default": "14",
     "type": "number"
    },
    {
     "name": "hideTimer",
     "default": "0",
     "type": "number"
    }
   ],
   "scriptModule": "this.speechBubble",
   "scriptMembers": [
    {
     "name": "backgroundColor",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "borderColor",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "borderWidth",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "cornerRadius",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "fontFamily",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "fontSize",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "hide",
     "kind": "method",
     "signature": "hide()",
     "doc": "The `this.speechBubble` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "maxWidth",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.speechBubble` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "offsetX",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.speechBubble` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "offsetY",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "padding",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "show",
     "kind": "method",
     "signature": "show(text, duration)",
     "doc": "The `this.speechBubble` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "tailDirection",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.speechBubble` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "tailSize",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "text",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.speechBubble` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "textColor",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "visible",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.speechBubble` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    }
   ]
  },
  "ChatLog": {
   "summary": "Scrollable-style conversation log component for UI dialogue.",
   "docs": "docs/api/components/chatlog.html",
   "source": "project/runtime/components/ChatLog.js",
   "sceneFields": [
    {
     "name": "messages",
     "default": "[]",
     "type": "array"
    },
    {
     "name": "maxMessages",
     "default": "50",
     "type": "number"
    },
    {
     "name": "visibleCount",
     "default": "6",
     "type": "number"
    },
    {
     "name": "width",
     "default": "320",
     "type": "number"
    },
    {
     "name": "lineHeight",
     "default": "26",
     "type": "number"
    },
    {
     "name": "fontSize",
     "default": "16",
     "type": "number"
    },
    {
     "name": "fontFamily",
     "default": "Arial",
     "type": "string"
    },
    {
     "name": "messageColor",
     "default": "#ffffff",
     "type": "string"
    },
    {
     "name": "senderColor",
     "default": "#ffd700",
     "type": "string"
    },
    {
     "name": "backgroundColor",
     "default": "#000000",
     "type": "string"
    },
    {
     "name": "backgroundOpacity",
     "default": "0.5",
     "type": "number"
    },
    {
     "name": "padding",
     "default": "10",
     "type": "number"
    },
    {
     "name": "showSender",
     "default": "true",
     "type": "boolean"
    },
    {
     "name": "screenSpace",
     "default": "true",
     "type": "boolean"
    },
    {
     "name": "visible",
     "default": "true",
     "type": "boolean"
    }
   ],
   "scriptModule": "this.chat",
   "scriptMembers": [
    {
     "name": "backgroundColor",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "backgroundOpacity",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "clear",
     "kind": "method",
     "signature": "clear()",
     "doc": "The `this.chat` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "fontFamily",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "fontSize",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "lineHeight",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "maxMessages",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "messageColor",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "messages",
     "kind": "read-only property",
     "signature": null,
     "doc": "The `this.chat` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "padding",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "screenSpace",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "send",
     "kind": "method",
     "signature": "send(sender, text, color)",
     "doc": "The `this.chat` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "senderColor",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.chat` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "showSender",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.chat` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "visible",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "visibleCount",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "width",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    }
   ]
  },
  "TextInput": {
   "summary": "Interactive text input control driven by the runtime UI system.",
   "docs": "docs/api/components/textinput.html",
   "source": "project/runtime/components/TextInput.js",
   "sceneFields": [
    {
     "name": "value",
     "default": "",
     "type": "string"
    },
    {
     "name": "placeholder",
     "default": "Type a message...",
     "type": "string"
    },
    {
     "name": "maxLength",
     "default": "200",
     "type": "number"
    },
    {
     "name": "fontSize",
     "default": "18",
     "type": "number"
    },
    {
     "name": "fontFamily",
     "default": "Arial",
     "type": "string"
    },
    {
     "name": "textColor",
     "default": "#111111",
     "type": "string"
    },
    {
     "name": "placeholderColor",
     "default": "#999999",
     "type": "string"
    },
    {
     "name": "backgroundColor",
     "default": "#ffffff",
     "type": "string"
    },
    {
     "name": "borderColor",
     "default": "#888888",
     "type": "string"
    },
    {
     "name": "borderWidth",
     "default": "2",
     "type": "number"
    },
    {
     "name": "cornerRadius",
     "default": "8",
     "type": "number"
    },
    {
     "name": "width",
     "default": "260",
     "type": "number"
    },
    {
     "name": "height",
     "default": "40",
     "type": "number"
    },
    {
     "name": "padding",
     "default": "10",
     "type": "number"
    },
    {
     "name": "clearOnSubmit",
     "default": "true",
     "type": "boolean"
    },
    {
     "name": "focused",
     "default": "false",
     "type": "boolean"
    },
    {
     "name": "justSubmitted",
     "default": "false",
     "type": "boolean"
    }
   ],
   "scriptModule": "this.textInput",
   "scriptMembers": [
    {
     "name": "backgroundColor",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "borderColor",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "borderWidth",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "clear",
     "kind": "method",
     "signature": "clear()",
     "doc": "The `this.textInput` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "clearOnSubmit",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.textInput` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "cornerRadius",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "focused",
     "kind": "read-only property",
     "signature": null,
     "doc": "The `this.textInput` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "fontFamily",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "fontSize",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "height",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "justSubmitted",
     "kind": "read-only property",
     "signature": null,
     "doc": "The `this.textInput` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "maxLength",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "padding",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "placeholder",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "placeholderColor",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "textColor",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "value",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.textInput` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "width",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    }
   ]
  },
  "Joystick": {
   "summary": "Virtual touch joystick for mobile and pointer-driven control schemes.",
   "docs": "docs/api/components/joystick.html",
   "source": "project/runtime/components/Joystick.js",
   "sceneFields": [
    {
     "name": "positionMode",
     "default": "Fixed",
     "type": "enum:JoystickPositionMode"
    },
    {
     "name": "regionX",
     "default": "0",
     "type": "number"
    },
    {
     "name": "regionY",
     "default": "0",
     "type": "number"
    },
    {
     "name": "regionWidth",
     "default": "640",
     "type": "number"
    },
    {
     "name": "regionHeight",
     "default": "720",
     "type": "number"
    },
    {
     "name": "baseRadius",
     "default": "60",
     "type": "number"
    },
    {
     "name": "knobRadius",
     "default": "28",
     "type": "number"
    },
    {
     "name": "baseColor",
     "default": "#ffffff",
     "type": "string"
    },
    {
     "name": "baseOpacity",
     "default": "0.25",
     "type": "number"
    },
    {
     "name": "knobColor",
     "default": "#ffffff",
     "type": "string"
    },
    {
     "name": "knobOpacity",
     "default": "0.6",
     "type": "number"
    },
    {
     "name": "outlineColor",
     "default": "#ffffff",
     "type": "string"
    },
    {
     "name": "outlineWidth",
     "default": "2",
     "type": "number"
    },
    {
     "name": "deadZone",
     "default": "0.1",
     "type": "number"
    },
    {
     "name": "returnToCenter",
     "default": "true",
     "type": "boolean"
    },
    {
     "name": "hideWhenIdle",
     "default": "false",
     "type": "boolean"
    },
    {
     "name": "idleOpacityMultiplier",
     "default": "0.35",
     "type": "number"
    },
    {
     "name": "x",
     "default": "0",
     "type": "number"
    },
    {
     "name": "y",
     "default": "0",
     "type": "number"
    },
    {
     "name": "magnitude",
     "default": "0",
     "type": "number"
    },
    {
     "name": "angle",
     "default": "0",
     "type": "number"
    },
    {
     "name": "active",
     "default": "false",
     "type": "boolean"
    },
    {
     "name": "baseScreenX",
     "default": "0",
     "type": "number"
    },
    {
     "name": "baseScreenY",
     "default": "0",
     "type": "number"
    }
   ],
   "scriptModule": "this.joystick",
   "scriptMembers": [
    {
     "name": "active",
     "kind": "read-only property",
     "signature": null,
     "doc": "The `this.joystick` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "angle",
     "kind": "read-only property",
     "signature": null,
     "doc": "The `this.joystick` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "baseColor",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "baseOpacity",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "baseRadius",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "deadZone",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.joystick` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "hideWhenIdle",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.joystick` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "idleOpacityMultiplier",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "knobColor",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "knobOpacity",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "knobRadius",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "magnitude",
     "kind": "read-only property",
     "signature": null,
     "doc": "The `this.joystick` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "outlineColor",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "outlineWidth",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "positionMode",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "regionHeight",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "regionWidth",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "regionX",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.joystick` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "regionY",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "returnToCenter",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.joystick` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "x",
     "kind": "read-only property",
     "signature": null,
     "doc": "The `this.joystick` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "y",
     "kind": "read-only property",
     "signature": null,
     "doc": "The `this.joystick` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    }
   ]
  },
  "Rigidbody2D": {
   "summary": "2D physics body backed by the engine physics runtime. Dynamic, Kinematic and Static bodies have different script controls.",
   "docs": "docs/api/components/rigidbody2d.html",
   "source": "project/runtime/components/Rigidbody2D.js",
   "sceneFields": [
    {
     "name": "bodyType",
     "default": "Dynamic",
     "type": "enum:BodyType"
    },
    {
     "name": "simulated",
     "default": "true",
     "type": "boolean"
    },
    {
     "name": "mass",
     "default": "1",
     "type": "number"
    },
    {
     "name": "autoMass",
     "default": "true",
     "type": "boolean"
    },
    {
     "name": "gravityScale",
     "default": "1",
     "type": "number"
    },
    {
     "name": "linearDamping",
     "default": "0",
     "type": "number"
    },
    {
     "name": "angularDamping",
     "default": "0",
     "type": "number"
    },
    {
     "name": "lockRotation",
     "default": "false",
     "type": "boolean"
    },
    {
     "name": "velocityX",
     "default": "0",
     "type": "number"
    },
    {
     "name": "velocityY",
     "default": "0",
     "type": "number"
    },
    {
     "name": "angularVelocity",
     "default": "0",
     "type": "number"
    },
    {
     "name": "driveVelocityX",
     "default": "null",
     "type": "null"
    },
    {
     "name": "driveVelocityY",
     "default": "null",
     "type": "null"
    },
    {
     "name": "driveAngularVelocity",
     "default": "null",
     "type": "null"
    },
    {
     "name": "grounded",
     "default": "false",
     "type": "boolean"
    },
    {
     "name": "resolvedVelocityX",
     "default": "0",
     "type": "number"
    },
    {
     "name": "resolvedVelocityY",
     "default": "0",
     "type": "number"
    },
    {
     "name": "pendingForceX",
     "default": "0",
     "type": "number"
    },
    {
     "name": "pendingForceY",
     "default": "0",
     "type": "number"
    },
    {
     "name": "pendingImpulseX",
     "default": "0",
     "type": "number"
    },
    {
     "name": "pendingImpulseY",
     "default": "0",
     "type": "number"
    },
    {
     "name": "pendingTorque",
     "default": "0",
     "type": "number"
    },
    {
     "name": "pendingAngularImpulse",
     "default": "0",
     "type": "number"
    }
   ],
   "scriptModule": "this.rigidbody",
   "scriptMembers": [
    {
     "name": "addAngularImpulse",
     "kind": "method",
     "signature": "addAngularImpulse(t)",
     "doc": "The `this.rigidbody` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "addForce",
     "kind": "method",
     "signature": "addForce(x, y)",
     "doc": "The `this.rigidbody` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "addForceAtPoint",
     "kind": "method",
     "signature": "addForceAtPoint(x, y, pointX, pointY)",
     "doc": "The `this.rigidbody` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "addImpulse",
     "kind": "method",
     "signature": "addImpulse(x, y)",
     "doc": "The `this.rigidbody` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "addTorque",
     "kind": "method",
     "signature": "addTorque(t)",
     "doc": "The `this.rigidbody` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "angularDamping",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "gravityScale",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "groundAngle",
     "kind": "read-only property",
     "signature": null,
     "doc": "The `this.rigidbody` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "groundAngleLimit",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.rigidbody` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "grounded",
     "kind": "read-only property",
     "signature": null,
     "doc": "The `this.rigidbody` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "isGrounded",
     "kind": "read-only property",
     "signature": null,
     "doc": "The `this.rigidbody` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "isOnCeiling",
     "kind": "read-only property",
     "signature": null,
     "doc": "The `this.rigidbody` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "isOnSlope",
     "kind": "read-only property",
     "signature": null,
     "doc": "The `this.rigidbody` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "isOnWall",
     "kind": "read-only property",
     "signature": null,
     "doc": "The `this.rigidbody` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "linearDamping",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "mass",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "move",
     "kind": "method",
     "signature": "move(dx, dy)",
     "doc": "The `this.rigidbody` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "resolvedVelocity",
     "kind": "read-only property",
     "signature": null,
     "doc": "The `this.rigidbody` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "slopeMinAngle",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.rigidbody` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "type",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "velocity",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "velocityX",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "velocityY",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "wallAngleLimit",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.rigidbody` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    }
   ]
  },
  "Collider2D": {
   "summary": "Physics collision shape and contact filtering. A Collider2D is also required for accurate pointer/touch hit tests.",
   "docs": "docs/api/components/collider2d.html",
   "source": "project/runtime/components/Collider2D.js",
   "sceneFields": [
    {
     "name": "shape",
     "default": "Box",
     "type": "enum:ColliderShape"
    },
    {
     "name": "width",
     "default": "1",
     "type": "number"
    },
    {
     "name": "height",
     "default": "1",
     "type": "number"
    },
    {
     "name": "radius",
     "default": "0.5",
     "type": "number"
    },
    {
     "name": "capsuleHalfHeight",
     "default": "0.5",
     "type": "number"
    },
    {
     "name": "capsuleRadius",
     "default": "0.3",
     "type": "number"
    },
    {
     "name": "trianglePoints",
     "default": "[ { x: -0.5, y: 0.5 }, { x: 0.5, y: 0.5 }, { x: 0, y: -0.5 }, ]",
     "type": "array"
    },
    {
     "name": "offsetX",
     "default": "0",
     "type": "number"
    },
    {
     "name": "offsetY",
     "default": "0",
     "type": "number"
    },
    {
     "name": "rotation",
     "default": "0",
     "type": "number"
    },
    {
     "name": "isTrigger",
     "default": "false",
     "type": "boolean"
    },
    {
     "name": "isOneWayPlatform",
     "default": "false",
     "type": "boolean"
    },
    {
     "name": "oneWayDirection",
     "default": "Up",
     "type": "enum:OneWayDirection"
    },
    {
     "name": "friction",
     "default": "0.5",
     "type": "number"
    },
    {
     "name": "restitution",
     "default": "0",
     "type": "number"
    },
    {
     "name": "density",
     "default": "1",
     "type": "number"
    },
    {
     "name": "layer",
     "default": "0",
     "type": "number"
    },
    {
     "name": "mask",
     "default": "0xFFFF",
     "type": "value"
    }
   ],
   "scriptModule": "this.collider",
   "scriptMembers": [
    {
     "name": "capsuleHalfHeight",
     "kind": "read-only property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "capsuleRadius",
     "kind": "read-only property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "density",
     "kind": "read-only property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "friction",
     "kind": "read-only property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "height",
     "kind": "read-only property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "isColliding",
     "kind": "method",
     "signature": "isColliding(other)",
     "doc": "The `this.collider` sub-object exposed to user scripts."
    },
    {
     "name": "isOneWayPlatform",
     "kind": "read-only property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "isTrigger",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "layer",
     "kind": "read-only property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "mask",
     "kind": "read-only property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "offset",
     "kind": "read-only property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "oneWayDirection",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.collider` sub-object exposed to user scripts."
    },
    {
     "name": "radius",
     "kind": "read-only property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "restitution",
     "kind": "read-only property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "rotation",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.collider` sub-object exposed to user scripts."
    },
    {
     "name": "shape",
     "kind": "read-only property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "width",
     "kind": "read-only property",
     "signature": null,
     "doc": ""
    }
   ]
  },
  "Joint2D": {
   "summary": "Connect physics bodies with Fixed, Revolute, Prismatic, Rope or Spring constraints.",
   "docs": "docs/api/components/joint2d.html",
   "source": "project/runtime/components/Joint2D.js",
   "sceneFields": [
    {
     "name": "jointType",
     "default": "Revolute",
     "type": "enum:JointType2D"
    },
    {
     "name": "connectedEntityId",
     "default": "null",
     "type": "null"
    },
    {
     "name": "anchor1X",
     "default": "0",
     "type": "number"
    },
    {
     "name": "anchor1Y",
     "default": "0",
     "type": "number"
    },
    {
     "name": "anchor2X",
     "default": "0",
     "type": "number"
    },
    {
     "name": "anchor2Y",
     "default": "0",
     "type": "number"
    },
    {
     "name": "axisX",
     "default": "1",
     "type": "number"
    },
    {
     "name": "axisY",
     "default": "0",
     "type": "number"
    },
    {
     "name": "length",
     "default": "100",
     "type": "number"
    },
    {
     "name": "stiffness",
     "default": "6000",
     "type": "number"
    },
    {
     "name": "damping",
     "default": "18",
     "type": "number"
    },
    {
     "name": "flexibility",
     "default": "100",
     "type": "number"
    },
    {
     "name": "segmentCount",
     "default": "18",
     "type": "number"
    },
    {
     "name": "ropeMass",
     "default": "0.5",
     "type": "number"
    },
    {
     "name": "visualEnabled",
     "default": "true",
     "type": "boolean"
    },
    {
     "name": "visualColor",
     "default": "#c8a66a",
     "type": "string"
    },
    {
     "name": "visualThickness",
     "default": "3",
     "type": "number"
    },
    {
     "name": "useTexture",
     "default": "false",
     "type": "boolean"
    },
    {
     "name": "textureKey",
     "default": "null",
     "type": "null"
    },
    {
     "name": "textureMode",
     "default": "stretch",
     "type": "string"
    },
    {
     "name": "textureTiling",
     "default": "32",
     "type": "number"
    },
    {
     "name": "textureScale",
     "default": "1",
     "type": "number"
    },
    {
     "name": "textureOffset",
     "default": "0",
     "type": "number"
    },
    {
     "name": "textureFlip",
     "default": "false",
     "type": "boolean"
    },
    {
     "name": "limitsEnabled",
     "default": "false",
     "type": "boolean"
    },
    {
     "name": "limitMin",
     "default": "-45",
     "type": "number"
    },
    {
     "name": "limitMax",
     "default": "45",
     "type": "number"
    },
    {
     "name": "motorEnabled",
     "default": "false",
     "type": "boolean"
    },
    {
     "name": "motorSpeed",
     "default": "0",
     "type": "number"
    },
    {
     "name": "motorMaxForce",
     "default": "0",
     "type": "number"
    },
    {
     "name": "jointDrag",
     "default": "0",
     "type": "number"
    },
    {
     "name": "restStiffness",
     "default": "0",
     "type": "number"
    },
    {
     "name": "breakable",
     "default": "false",
     "type": "boolean"
    },
    {
     "name": "breakForce",
     "default": "10000",
     "type": "number"
    },
    {
     "name": "disableConnectedCollision",
     "default": "false",
     "type": "boolean"
    },
    {
     "name": "collideConnected",
     "default": "undefined",
     "type": "value"
    },
    {
     "name": "enabled",
     "default": "true",
     "type": "boolean"
    }
   ],
   "scriptModule": "this.joint",
   "scriptMembers": [
    {
     "name": "anchor1",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "anchor2",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "axis",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.joint` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "breakForce",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "breakable",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.joint` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "collideConnected",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "connectedEntity",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "damping",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "disableConnectedCollision",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "enabled",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.joint` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "flexibility",
     "kind": "allow-listed but not implemented",
     "signature": null,
     "doc": "The JointAPI proxy allow-list contains this name, but no getter or setter is implemented. Reads return undefined and writes do not update Joint2D.flexibility. Set Flexibility (%) in the Inspector instead."
    },
    {
     "name": "jointDrag",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.joint` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "jointType",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "length",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.joint` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "limitMax",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "limitMin",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "limitsEnabled",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.joint` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "motorEnabled",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.joint` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "motorMaxForce",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "motorSpeed",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "restStiffness",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.joint` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "ropeMass",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "segmentCount",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.joint` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "stiffness",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.joint` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "textureFlip",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.joint` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "textureKey",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.joint` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "textureMode",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.joint` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "textureOffset",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.joint` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "textureScale",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.joint` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "textureTiling",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.joint` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "useTexture",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.joint` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "visualColor",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "visualEnabled",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "visualThickness",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    }
   ]
  },
  "CharacterController": {
   "summary": "High-level movement modes: Character Controller, Platformer, Top-Down, Car, Follow, Patrol and Free.",
   "docs": "docs/api/components/charactercontroller.html",
   "source": "project/runtime/components/CharacterController.js",
   "sceneFields": [
    {
     "name": "controllerType",
     "default": "Character Controller",
     "type": "enum:ControllerType"
    },
    {
     "name": "moveSpeed",
     "default": "200",
     "type": "number"
    },
    {
     "name": "acceleration",
     "default": "20",
     "type": "number"
    },
    {
     "name": "airControl",
     "default": "0.5",
     "type": "number"
    },
    {
     "name": "canJump",
     "default": "true",
     "type": "boolean"
    },
    {
     "name": "jumpForce",
     "default": "420",
     "type": "number"
    },
    {
     "name": "maxJumps",
     "default": "1",
     "type": "number"
    },
    {
     "name": "useGravity",
     "default": "true",
     "type": "boolean"
    },
    {
     "name": "gravityScale",
     "default": "1",
     "type": "number"
    },
    {
     "name": "useDefaultInput",
     "default": "true",
     "type": "boolean"
    },
    {
     "name": "maxSpeed",
     "default": "350",
     "type": "number"
    },
    {
     "name": "carAcceleration",
     "default": "200",
     "type": "number"
    },
    {
     "name": "brakeForce",
     "default": "400",
     "type": "number"
    },
    {
     "name": "turnSpeed",
     "default": "150",
     "type": "number"
    },
    {
     "name": "driftFactor",
     "default": "0.92",
     "type": "number"
    },
    {
     "name": "driveTowardArriveDistance",
     "default": "12",
     "type": "number"
    },
    {
     "name": "targetName",
     "default": "",
     "type": "string"
    },
    {
     "name": "followSpeed",
     "default": "150",
     "type": "number"
    },
    {
     "name": "followDistance",
     "default": "5",
     "type": "number"
    },
    {
     "name": "patrolDistance",
     "default": "150",
     "type": "number"
    },
    {
     "name": "patrolMode",
     "default": "Platformer",
     "type": "enum:PatrolMode"
    },
    {
     "name": "patrolAxis",
     "default": "Horizontal",
     "type": "enum:PatrolAxis"
    },
    {
     "name": "requestJump",
     "default": "false",
     "type": "boolean"
    },
    {
     "name": "requestMoveX",
     "default": "null",
     "type": "null"
    },
    {
     "name": "requestMoveY",
     "default": "null",
     "type": "null"
    },
    {
     "name": "requestThrottle",
     "default": "null",
     "type": "null"
    },
    {
     "name": "requestSteer",
     "default": "null",
     "type": "null"
    },
    {
     "name": "requestJoystickX",
     "default": "null",
     "type": "null"
    },
    {
     "name": "requestJoystickY",
     "default": "null",
     "type": "null"
    },
    {
     "name": "requestDriveTowardX",
     "default": "null",
     "type": "null"
    },
    {
     "name": "requestDriveTowardY",
     "default": "null",
     "type": "null"
    },
    {
     "name": "requestFlip",
     "default": "false",
     "type": "boolean"
    }
   ],
   "scriptModule": "this.controller",
   "scriptMembers": [
    {
     "name": "acceleration",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "airControl",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "brakeForce",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "canJump",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "controllerType",
     "kind": "read-only property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "driftFactor",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "driveTowardArriveDistance",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "facingDirection",
     "kind": "read-only property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "flipDirection",
     "kind": "method",
     "signature": "flipDirection()",
     "doc": ""
    },
    {
     "name": "followDistance",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "followSpeed",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "gravityScale",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "groundAngle",
     "kind": "read-only property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "isGrounded",
     "kind": "read-only property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "isOnCeiling",
     "kind": "read-only property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "isOnSlope",
     "kind": "read-only property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "isOnWall",
     "kind": "read-only property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "jumpForce",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "maxJumps",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "maxSpeed",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "moveSpeed",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "patrolAxis",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "patrolDistance",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "patrolMode",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "simulateDrive",
     "kind": "method",
     "signature": "simulateDrive(throttle, steer)",
     "doc": ""
    },
    {
     "name": "simulateDriveJoystick",
     "kind": "method",
     "signature": "simulateDriveJoystick(x, y)",
     "doc": ""
    },
    {
     "name": "simulateDriveToward",
     "kind": "method",
     "signature": "simulateDriveToward(x, y)",
     "doc": ""
    },
    {
     "name": "simulateJump",
     "kind": "method",
     "signature": "simulateJump()",
     "doc": ""
    },
    {
     "name": "simulateMove",
     "kind": "method",
     "signature": "simulateMove(x, y)",
     "doc": ""
    },
    {
     "name": "targetName",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "turnSpeed",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "useDefaultInput",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "useGravity",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    }
   ]
  },
  "SpriteAnimation": {
   "summary": "Sprite-sheet/clip animation state on a SpriteRenderer.",
   "docs": "docs/api/components/spriteanimation.html",
   "source": "project/runtime/components/SpriteAnimation.js",
   "sceneFields": [
    {
     "name": "clips",
     "default": "[]",
     "type": "array"
    },
    {
     "name": "currentClipId",
     "default": "null",
     "type": "null"
    },
    {
     "name": "playing",
     "default": "true",
     "type": "boolean"
    },
    {
     "name": "speed",
     "default": "1",
     "type": "number"
    },
    {
     "name": "currentFrameIndex",
     "default": "0",
     "type": "number"
    },
    {
     "name": "frameElapsed",
     "default": "0",
     "type": "number"
    }
   ],
   "scriptModule": "this.animator",
   "scriptMembers": [
    {
     "name": "currentClip",
     "kind": "read-only property",
     "signature": null,
     "doc": "The `this.animator` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "currentFrame",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.animator` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "play",
     "kind": "method",
     "signature": "play(clipName)",
     "doc": "The `this.animator` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "playing",
     "kind": "read-only property",
     "signature": null,
     "doc": "The `this.animator` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "speed",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.animator` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "stop",
     "kind": "method",
     "signature": "stop()",
     "doc": "The `this.animator` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "totalFrames",
     "kind": "read-only property",
     "signature": null,
     "doc": "The `this.animator` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    }
   ]
  },
  "Camera": {
   "summary": "Orthographic 2D camera with reference resolutions, responsive scaling, follow, shake and optional pseudo-3D sprite depth scaling.",
   "docs": "docs/api/components/camera.html",
   "source": "project/runtime/components/Camera.js",
   "sceneFields": [
    {
     "name": "backgroundColor",
     "default": "#314D79",
     "type": "string"
    },
    {
     "name": "projection",
     "default": "Orthographic",
     "type": "string"
    },
    {
     "name": "size",
     "default": "5",
     "type": "number"
    },
    {
     "name": "nearClip",
     "default": "0.3",
     "type": "number"
    },
    {
     "name": "farClip",
     "default": "1000",
     "type": "number"
    },
    {
     "name": "isMain",
     "default": "false",
     "type": "boolean"
    },
    {
     "name": "aspectMode",
     "default": "Landscape",
     "type": "enum:CameraAspectMode"
    },
    {
     "name": "landscapeWidth",
     "default": "960",
     "type": "number"
    },
    {
     "name": "landscapeHeight",
     "default": "540",
     "type": "number"
    },
    {
     "name": "portraitWidth",
     "default": "540",
     "type": "number"
    },
    {
     "name": "portraitHeight",
     "default": "960",
     "type": "number"
    },
    {
     "name": "squareSize",
     "default": "720",
     "type": "number"
    },
    {
     "name": "customWidth",
     "default": "800",
     "type": "number"
    },
    {
     "name": "customHeight",
     "default": "600",
     "type": "number"
    },
    {
     "name": "enablePseudo3D",
     "default": "false",
     "type": "boolean"
    },
    {
     "name": "renderToSpriteEntityId",
     "default": "null",
     "type": "null"
    },
    {
     "name": "scalingMode",
     "default": "Fit",
     "type": "enum:ScalingMode"
    },
    {
     "name": "keepHeight",
     "default": "true",
     "type": "boolean"
    },
    {
     "name": "aspectRatioLock",
     "default": "true",
     "type": "boolean"
    },
    {
     "name": "allowStretching",
     "default": "false",
     "type": "boolean"
    },
    {
     "name": "letterboxing",
     "default": "Auto",
     "type": "string"
    },
    {
     "name": "pillarboxing",
     "default": "Auto",
     "type": "string"
    },
    {
     "name": "barColor",
     "default": "#000000",
     "type": "string"
    },
    {
     "name": "integerScaling",
     "default": "false",
     "type": "boolean"
    }
   ],
   "scriptModule": "this.camera",
   "scriptMembers": [
    {
     "name": "allowStretching",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "aspectMode",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "aspectRatioLock",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "backgroundColor",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "barColor",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "customHeight",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "customWidth",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "enablePseudo3D",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "follow",
     "kind": "method",
     "signature": "follow(entityTarget, opts)",
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "integerScaling",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "keepHeight",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "landscapeHeight",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "landscapeWidth",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "letterboxing",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "offsetX",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "offsetY",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "pillarboxing",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "portraitHeight",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "portraitWidth",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "renderToSprite",
     "kind": "method",
     "signature": "renderToSprite(spriteEntity)",
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "scalingMode",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "shake",
     "kind": "method",
     "signature": "shake(intensity, duration)",
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "squareSize",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "stopFollow",
     "kind": "method",
     "signature": "stopFollow()",
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "x",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "y",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "zoom",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.camera` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    }
   ]
  },
  "AudioSource": {
   "summary": "Play a local audio asset, optionally with distance-based 3D attenuation.",
   "docs": "docs/api/components/audiosource.html",
   "source": "project/runtime/components/AudioSource.js",
   "sceneFields": [
    {
     "name": "audioKey",
     "default": "null",
     "type": "null"
    },
    {
     "name": "is3D",
     "default": "false",
     "type": "boolean"
    },
    {
     "name": "volume",
     "default": "1",
     "type": "number"
    },
    {
     "name": "pitch",
     "default": "1",
     "type": "number"
    },
    {
     "name": "loop",
     "default": "true",
     "type": "boolean"
    },
    {
     "name": "autoplay",
     "default": "true",
     "type": "boolean"
    },
    {
     "name": "minDistance",
     "default": "100",
     "type": "number"
    },
    {
     "name": "maxDistance",
     "default": "600",
     "type": "number"
    }
   ],
   "scriptModule": "this.audio",
   "scriptMembers": [
    {
     "name": "pitch",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.audio` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "play",
     "kind": "method",
     "signature": "play()",
     "doc": "The `this.audio` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "playOnce",
     "kind": "method",
     "signature": "playOnce()",
     "doc": "The `this.audio` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "playing",
     "kind": "read-only property",
     "signature": null,
     "doc": "The `this.audio` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "stop",
     "kind": "method",
     "signature": "stop()",
     "doc": "The `this.audio` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    },
    {
     "name": "volume",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.audio` sub-object exposed to user scripts (see scripting/ScriptAPI.js)."
    }
   ]
  },
  "AudioListener": {
   "summary": "Defines the hearing area for 3D audio and drives audio enter/leave callbacks.",
   "docs": "docs/api/components/audiolistener.html",
   "source": "project/runtime/components/AudioListener.js",
   "sceneFields": [
    {
     "name": "radius",
     "default": "300",
     "type": "number"
    },
    {
     "name": "enabled",
     "default": "true",
     "type": "boolean"
    }
   ],
   "scriptModule": "this.ear",
   "scriptMembers": [
    {
     "name": "canHear",
     "kind": "method",
     "signature": "canHear(nameOrTag, opts)",
     "doc": "The `this.ear` sub-object exposed to user scripts (see scripting/ScriptAPI.js) — the query surface for the AudioListener component (see components/AudioListener.js)."
    },
    {
     "name": "enabled",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.ear` sub-object exposed to user scripts (see scripting/ScriptAPI.js) — the query surface for the AudioListener component (see components/AudioListener.js)."
    },
    {
     "name": "radius",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.ear` sub-object exposed to user scripts (see scripting/ScriptAPI.js) — the query surface for the AudioListener component (see components/AudioListener.js)."
    },
    {
     "name": "sourcesInRange",
     "kind": "read-only property",
     "signature": null,
     "doc": "The `this.ear` sub-object exposed to user scripts (see scripting/ScriptAPI.js) — the query surface for the AudioListener component (see components/AudioListener.js)."
    }
   ]
  },
  "Light": {
   "summary": "2D light source supporting Directional, Point, Spot, Area, GodRays and Freeform light shapes.",
   "docs": "docs/api/components/light.html",
   "source": "project/runtime/components/Light.js",
   "sceneFields": [
    {
     "name": "type",
     "default": "Point",
     "type": "enum:LightType"
    },
    {
     "name": "color",
     "default": "#ffffff",
     "type": "string"
    },
    {
     "name": "intensity",
     "default": "1",
     "type": "number"
    },
    {
     "name": "radius",
     "default": "200",
     "type": "number"
    },
    {
     "name": "angle",
     "default": "45",
     "type": "number"
    },
    {
     "name": "width",
     "default": "200",
     "type": "number"
    },
    {
     "name": "height",
     "default": "200",
     "type": "number"
    },
    {
     "name": "castsOnWorld",
     "default": "true",
     "type": "boolean"
    },
    {
     "name": "castShadows",
     "default": "false",
     "type": "boolean"
    },
    {
     "name": "shadowColor",
     "default": "#000000",
     "type": "string"
    },
    {
     "name": "shadowStrength",
     "default": "1",
     "type": "number"
    },
    {
     "name": "flicker",
     "default": "false",
     "type": "boolean"
    },
    {
     "name": "flickerSpeed",
     "default": "8",
     "type": "number"
    },
    {
     "name": "flickerDuration",
     "default": "0",
     "type": "number"
    },
    {
     "name": "coreSize",
     "default": "0.22",
     "type": "number"
    },
    {
     "name": "coreVisible",
     "default": "true",
     "type": "boolean"
    },
    {
     "name": "points",
     "default": "null",
     "type": "null"
    }
   ],
   "scriptModule": "this.light",
   "scriptMembers": [
    {
     "name": "angle",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.light` sub-object exposed to user scripts on any entity that has a Light component."
    },
    {
     "name": "castShadows",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.light` sub-object exposed to user scripts on any entity that has a Light component."
    },
    {
     "name": "castsOnWorld",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.light` sub-object exposed to user scripts on any entity that has a Light component."
    },
    {
     "name": "color",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.light` sub-object exposed to user scripts on any entity that has a Light component."
    },
    {
     "name": "coreSize",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "coreVisible",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "flicker",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "flickerDuration",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "flickerSpeed",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "height",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.light` sub-object exposed to user scripts on any entity that has a Light component."
    },
    {
     "name": "intensity",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.light` sub-object exposed to user scripts on any entity that has a Light component."
    },
    {
     "name": "radius",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.light` sub-object exposed to user scripts on any entity that has a Light component."
    },
    {
     "name": "shadowColor",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.light` sub-object exposed to user scripts on any entity that has a Light component."
    },
    {
     "name": "shadowStrength",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.light` sub-object exposed to user scripts on any entity that has a Light component."
    },
    {
     "name": "type",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.light` sub-object exposed to user scripts on any entity that has a Light component."
    },
    {
     "name": "width",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.light` sub-object exposed to user scripts on any entity that has a Light component."
    }
   ]
  },
  "ShadowCaster": {
   "summary": "Marks an entity as a shadow occluder for the lighting system.",
   "docs": "docs/api/components/shadowcaster.html",
   "source": "project/runtime/components/ShadowCaster.js",
   "sceneFields": [
    {
     "name": "enabled",
     "default": "true",
     "type": "boolean"
    },
    {
     "name": "width",
     "default": "null",
     "type": "null"
    },
    {
     "name": "height",
     "default": "null",
     "type": "null"
    },
    {
     "name": "offsetX",
     "default": "0",
     "type": "number"
    },
    {
     "name": "offsetY",
     "default": "0",
     "type": "number"
    },
    {
     "name": "opacity",
     "default": "1",
     "type": "number"
    },
    {
     "name": "length",
     "default": "1",
     "type": "number"
    },
    {
     "name": "softness",
     "default": "0",
     "type": "number"
    }
   ],
   "scriptModule": "this.shadowCaster",
   "scriptMembers": [
    {
     "name": "enabled",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.shadowCaster` sub-object exposed to user scripts on any entity that has a ShadowCaster component (see components/ShadowCaster.js)."
    },
    {
     "name": "height",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.shadowCaster` sub-object exposed to user scripts on any entity that has a ShadowCaster component (see components/ShadowCaster.js)."
    },
    {
     "name": "length",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.shadowCaster` sub-object exposed to user scripts on any entity that has a ShadowCaster component (see components/ShadowCaster.js)."
    },
    {
     "name": "offsetX",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.shadowCaster` sub-object exposed to user scripts on any entity that has a ShadowCaster component (see components/ShadowCaster.js)."
    },
    {
     "name": "offsetY",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.shadowCaster` sub-object exposed to user scripts on any entity that has a ShadowCaster component (see components/ShadowCaster.js)."
    },
    {
     "name": "opacity",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.shadowCaster` sub-object exposed to user scripts on any entity that has a ShadowCaster component (see components/ShadowCaster.js)."
    },
    {
     "name": "softness",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.shadowCaster` sub-object exposed to user scripts on any entity that has a ShadowCaster component (see components/ShadowCaster.js)."
    },
    {
     "name": "width",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `this.shadowCaster` sub-object exposed to user scripts on any entity that has a ShadowCaster component (see components/ShadowCaster.js)."
    }
   ]
  },
  "LightingSettings": {
   "summary": "Scene-wide lighting quality and mood controls. Attach to one entity; the lighting system reads it scene-wide.",
   "docs": "docs/api/components/lightingsettings.html",
   "source": "project/runtime/components/LightingSettings.js",
   "sceneFields": [
    {
     "name": "shadowMode",
     "default": "quad",
     "type": "enum:ShadowMode"
    },
    {
     "name": "raymarchSteps",
     "default": "24",
     "type": "number"
    },
    {
     "name": "ambientDarkness",
     "default": "0.65",
     "type": "number"
    },
    {
     "name": "glowStrength",
     "default": "1",
     "type": "number"
    }
   ],
   "scriptModule": "this.(scene.lighting)",
   "scriptMembers": [
    {
     "name": "ambientDarkness",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `scene.lighting` sub-object exposed to user scripts (see scripting/ScriptAPI.js's getGlobals()) — lets scripts tune scene-wide lighting/shadow realism settings at runtime (see…"
    },
    {
     "name": "glowStrength",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `scene.lighting` sub-object exposed to user scripts (see scripting/ScriptAPI.js's getGlobals()) — lets scripts tune scene-wide lighting/shadow realism settings at runtime (see…"
    },
    {
     "name": "raymarchSteps",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `scene.lighting` sub-object exposed to user scripts (see scripting/ScriptAPI.js's getGlobals()) — lets scripts tune scene-wide lighting/shadow realism settings at runtime (see…"
    },
    {
     "name": "shadowMode",
     "kind": "read/write property",
     "signature": null,
     "doc": "The `scene.lighting` sub-object exposed to user scripts (see scripting/ScriptAPI.js's getGlobals()) — lets scripts tune scene-wide lighting/shadow realism settings at runtime (see…"
    }
   ]
  },
  "NavAgent2D": {
   "summary": "Per-agent navigation settings and current path state for NavWorld2D pathfinding.",
   "docs": "docs/api/components/navagent2d.html",
   "source": "project/runtime/components/NavAgent2D.js",
   "sceneFields": [
    {
     "name": "radius",
     "default": "16",
     "type": "number"
    },
    {
     "name": "speed",
     "default": "120",
     "type": "number"
    },
    {
     "name": "acceleration",
     "default": "800",
     "type": "number"
    },
    {
     "name": "deceleration",
     "default": "1000",
     "type": "number"
    },
    {
     "name": "stoppingDistance",
     "default": "1",
     "type": "number"
    },
    {
     "name": "autoRepath",
     "default": "true",
     "type": "boolean"
    },
    {
     "name": "repathInterval",
     "default": "0.35",
     "type": "number"
    },
    {
     "name": "repathDistance",
     "default": "4",
     "type": "number"
    },
    {
     "name": "avoidanceEnabled",
     "default": "true",
     "type": "boolean"
    },
    {
     "name": "avoidancePriority",
     "default": "50",
     "type": "number"
    },
    {
     "name": "collabEnabled",
     "default": "false",
     "type": "boolean"
    },
    {
     "name": "collabGroupRadius",
     "default": "96",
     "type": "number"
    },
    {
     "name": "vehicleLookahead",
     "default": "72",
     "type": "number"
    },
    {
     "name": "vehicleCornerLookahead",
     "default": "110",
     "type": "number"
    },
    {
     "name": "vehicleObstacleLookahead",
     "default": "120",
     "type": "number"
    },
    {
     "name": "vehicleObstacleWidth",
     "default": "28",
     "type": "number"
    },
    {
     "name": "vehicleSteerSmoothing",
     "default": "7",
     "type": "number"
    },
    {
     "name": "vehicleSpeedSmoothing",
     "default": "5",
     "type": "number"
    },
    {
     "name": "vehicleCornerSlowdown",
     "default": "0.72",
     "type": "number"
    },
    {
     "name": "vehicleObstacleBrake",
     "default": "0.9",
     "type": "number"
    },
    {
     "name": "vehicleRecoveryTime",
     "default": "1.35",
     "type": "number"
    },
    {
     "name": "vehicleRecoveryReverseTime",
     "default": "0.9",
     "type": "number"
    },
    {
     "name": "area",
     "default": "0xffff",
     "type": "value"
    },
    {
     "name": "areaCosts",
     "default": "null",
     "type": "null"
    },
    {
     "name": "currentPath",
     "default": "null",
     "type": "null"
    },
    {
     "name": "currentPathIndex",
     "default": "0",
     "type": "number"
    }
   ],
   "scriptModule": "this.navAgent",
   "scriptMembers": [
    {
     "name": "acceleration",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "area",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "areaCosts",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "autoRepath",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "avoidanceEnabled",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "avoidancePriority",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "collabEnabled",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "collabGroupRadius",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "currentPath",
     "kind": "read-only property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "currentPathIndex",
     "kind": "read-only property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "deceleration",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "radius",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "repathDistance",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "repathInterval",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "speed",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "stoppingDistance",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "vehicleCornerLookahead",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "vehicleCornerSlowdown",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "vehicleLookahead",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "vehicleObstacleBrake",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "vehicleObstacleLookahead",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "vehicleObstacleWidth",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "vehicleRecoveryReverseTime",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "vehicleRecoveryTime",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "vehicleSpeedSmoothing",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    },
    {
     "name": "vehicleSteerSmoothing",
     "kind": "read/write property",
     "signature": null,
     "doc": ""
    }
   ]
  },
  "NavWorld2D": {
   "summary": "Shared navigation world for baked or dynamic 2D pathfinding, with 16 navigation areas.",
   "docs": "docs/api/components/navworld2d.html",
   "source": "project/runtime/components/NavWorld2D.js",
   "sceneFields": [
    {
     "name": "boundsX",
     "default": "-400",
     "type": "number"
    },
    {
     "name": "boundsY",
     "default": "-400",
     "type": "number"
    },
    {
     "name": "boundsWidth",
     "default": "800",
     "type": "number"
    },
    {
     "name": "boundsHeight",
     "default": "800",
     "type": "number"
    },
    {
     "name": "cellSize",
     "default": "32",
     "type": "number"
    },
    {
     "name": "cells",
     "default": "{}",
     "type": "object"
    },
    {
     "name": "bakedCells",
     "default": "null",
     "type": "null"
    },
    {
     "name": "paintOverrides",
     "default": "{}",
     "type": "object"
    },
    {
     "name": "cellAreas",
     "default": "{}",
     "type": "object"
    },
    {
     "name": "areaCosts",
     "default": "null",
     "type": "null"
    },
    {
     "name": "allowDiagonal",
     "default": "false",
     "type": "boolean"
    },
    {
     "name": "dynamic",
     "default": "false",
     "type": "boolean"
    },
    {
     "name": "minObstacleFootprint",
     "default": "0",
     "type": "number"
    }
   ],
   "scriptModule": null,
   "scriptMembers": []
  },
  "Tileset": {
   "summary": "Defines a reusable 16-role autotile set. The editor can auto-slice one image or accept separate role images.",
   "docs": "docs/api/components/tileset.html",
   "source": "project/runtime/components/Tileset.js",
   "sceneFields": [
    {
     "name": "name",
     "default": "New Tileset",
     "type": "string"
    },
    {
     "name": "tileWidth",
     "default": "32",
     "type": "number"
    },
    {
     "name": "tileHeight",
     "default": "32",
     "type": "number"
    },
    {
     "name": "slots",
     "default": "{}",
     "type": "object"
    }
   ],
   "scriptModule": null,
   "scriptMembers": []
  },
  "Tilemap": {
   "summary": "Sparse painted tile grid that references a Tileset entity by ID.",
   "docs": "docs/api/components/tilemap.html",
   "source": "project/runtime/components/Tilemap.js",
   "sceneFields": [
    {
     "name": "tilesetEntityId",
     "default": "null",
     "type": "null"
    },
    {
     "name": "cells",
     "default": "{}",
     "type": "object"
    }
   ],
   "scriptModule": null,
   "scriptMembers": []
  },
  "Script": {
   "summary": "Script component holding a script name, source and enabled state.",
   "docs": "docs/api/components/script.html",
   "source": "project/runtime/components/Script.js",
   "sceneFields": [
    {
     "name": "scriptName",
     "default": "NewScript",
     "type": "string"
    },
    {
     "name": "source",
     "default": "",
     "type": "string"
    },
    {
     "name": "enabled",
     "default": "true",
     "type": "boolean"
    },
    {
     "name": "inspectValues",
     "default": "{}",
     "type": "object"
    }
   ],
   "scriptModule": null,
   "scriptMembers": []
  }
 }
}