{
  "schema_version": 1,
  "generated_by": "BuildTools/docs_description_translations.py",
  "source_catalog": "Docs/description-translations.ru.json",
  "source_locale": "en",
  "target_locale": "ru",
  "enforcement": "complete",
  "summary": {
    "domain_count": 19,
    "entry_count": 4821,
    "current_count": 4821,
    "missing_count": 0,
    "complete": true
  },
  "domains": {
    "ai-control-protocol": {
      "source_model": "Docs/generated/ai-control-protocol.json",
      "entry_count": 134,
      "current_count": 134,
      "missing_count": 0,
      "complete": true,
      "entries": [
        {
          "locator": "/command_fields/@id=ai-control-protocol.command.append/rationale",
          "source": "Queue semantics are advisory until the project action handler defines them.",
          "source_sha256": "fd01cb45a50df9ba5a700b7ac58c4eb0980a1e1ffe2567e05032eaa9467a6421",
          "status": "current"
        },
        {
          "locator": "/command_fields/@id=ai-control-protocol.command.append/requirement",
          "source": "Optional request for project-defined append rather than replace semantics.",
          "source_sha256": "e243a0cbe5f1a3ea59c841ab1bbee0d1211464dbc6a5585d31d58fe30a5c202e",
          "status": "current"
        },
        {
          "locator": "/command_fields/@id=ai-control-protocol.command.aux-id/rationale",
          "source": "Common convenience field; interpretation remains project-owned.",
          "source_sha256": "08a5074214c83f4ea31aafa1dd8a0a3c8cc5cf523438d2c0ba893016f4c2ab01",
          "status": "current"
        },
        {
          "locator": "/command_fields/@id=ai-control-protocol.command.aux-id/requirement",
          "source": "Optional auxiliary identifier.",
          "source_sha256": "e829af64dc924517abb1d540767f5faebddc70ba3aaec447793c8a1851322b9f",
          "status": "current"
        },
        {
          "locator": "/command_fields/@id=ai-control-protocol.command.int-arg/rationale",
          "source": "A generic slot avoids transport changes for narrow scalar arguments.",
          "source_sha256": "17717590d487f4e4326b64895cc6e4789bd21fb66c33fd221beab4227213a33f",
          "status": "current"
        },
        {
          "locator": "/command_fields/@id=ai-control-protocol.command.int-arg/requirement",
          "source": "Optional project-defined integer payload.",
          "source_sha256": "95b03b6925cb1de35da2d9125bcda32897fac75da4b6e4cd9919f3bf62d1199e",
          "status": "current"
        },
        {
          "locator": "/command_fields/@id=ai-control-protocol.command.item-id/rationale",
          "source": "Common convenience field; interpretation remains project-owned.",
          "source_sha256": "08a5074214c83f4ea31aafa1dd8a0a3c8cc5cf523438d2c0ba893016f4c2ab01",
          "status": "current"
        },
        {
          "locator": "/command_fields/@id=ai-control-protocol.command.item-id/requirement",
          "source": "Optional item identifier.",
          "source_sha256": "6f466604330aa164ffc981924918cfbad4e5691de972b7e7c12c7921ba9d24c2",
          "status": "current"
        },
        {
          "locator": "/command_fields/@id=ai-control-protocol.command.screen-x/rationale",
          "source": "Pixel origin and UI semantics remain project-owned.",
          "source_sha256": "3b3e750857092ddc23b8b81362e3b4f4cca512f0e9ed7afa543164a9bbde8d36",
          "status": "current"
        },
        {
          "locator": "/command_fields/@id=ai-control-protocol.command.screen-x/requirement",
          "source": "Optional screen-space X coordinate.",
          "source_sha256": "41edd7b4e03d1d8127d1443565ae87bf75848ce150477ed1074af95d82609885",
          "status": "current"
        },
        {
          "locator": "/command_fields/@id=ai-control-protocol.command.screen-y/rationale",
          "source": "Pixel origin and UI semantics remain project-owned.",
          "source_sha256": "3b3e750857092ddc23b8b81362e3b4f4cca512f0e9ed7afa543164a9bbde8d36",
          "status": "current"
        },
        {
          "locator": "/command_fields/@id=ai-control-protocol.command.screen-y/requirement",
          "source": "Optional screen-space Y coordinate.",
          "source_sha256": "5267c851403b7639476ff28d289ebe271f301c864daab458017103cd7cc88906",
          "status": "current"
        },
        {
          "locator": "/command_fields/@id=ai-control-protocol.command.string-arg/rationale",
          "source": "A generic slot avoids transport changes for narrow text arguments.",
          "source_sha256": "cc89e625818c60b1e227c3587b96d18b053975f1985674c89f96fb92de52ed9b",
          "status": "current"
        },
        {
          "locator": "/command_fields/@id=ai-control-protocol.command.string-arg/requirement",
          "source": "Optional project-defined string payload.",
          "source_sha256": "95bd9d730a56d431a7ddba067aba74753ff2c4220ad894444961b89e4d1304ad",
          "status": "current"
        },
        {
          "locator": "/command_fields/@id=ai-control-protocol.command.target-id/rationale",
          "source": "Common convenience field; interpretation remains project-owned.",
          "source_sha256": "08a5074214c83f4ea31aafa1dd8a0a3c8cc5cf523438d2c0ba893016f4c2ab01",
          "status": "current"
        },
        {
          "locator": "/command_fields/@id=ai-control-protocol.command.target-id/requirement",
          "source": "Optional primary target identifier.",
          "source_sha256": "c3027ca5043fc912e99906128f52359a576d4783071ed95fc9e43d1eaba0dbd1",
          "status": "current"
        },
        {
          "locator": "/command_fields/@id=ai-control-protocol.command.type/rationale",
          "source": "The transport routes commands without owning their names.",
          "source_sha256": "8781cd980f67eb8c994f144ebaca824d80a7cb53d9dcec58593622c45ebe2a94",
          "status": "current"
        },
        {
          "locator": "/command_fields/@id=ai-control-protocol.command.type/requirement",
          "source": "Required non-empty project command discriminator.",
          "source_sha256": "75e2b6b30a86ef9a3ae39788cae9aab865d2caece300b8af3d440b44b624710a",
          "status": "current"
        },
        {
          "locator": "/command_fields/@id=ai-control-protocol.command.x/rationale",
          "source": "Coordinate system and units remain project-owned.",
          "source_sha256": "52edc70cc16c3408a805b155d1213bb0b943456fa2aa1453432dcf5776fc64e7",
          "status": "current"
        },
        {
          "locator": "/command_fields/@id=ai-control-protocol.command.x/requirement",
          "source": "Optional project world or grid X coordinate.",
          "source_sha256": "71c9fdf4d14bd36612e6eb5c28a7da95dc83fb965f0b7df166ba3b30895374b6",
          "status": "current"
        },
        {
          "locator": "/command_fields/@id=ai-control-protocol.command.y/rationale",
          "source": "Coordinate system and units remain project-owned.",
          "source_sha256": "52edc70cc16c3408a805b155d1213bb0b943456fa2aa1453432dcf5776fc64e7",
          "status": "current"
        },
        {
          "locator": "/command_fields/@id=ai-control-protocol.command.y/requirement",
          "source": "Optional project world or grid Y coordinate.",
          "source_sha256": "ae86991c4a637642fc9e2dd23aee981ed14ab3644a486853532f2ce516c53adb",
          "status": "current"
        },
        {
          "locator": "/description",
          "source": "Project-neutral transport, envelope, command lifecycle, and safety boundary for opt-in AI control bridges.",
          "source_sha256": "a0d55021c2ae9df82f15897c49490141e7437f1e3c509aea44531ea1adb6724c",
          "status": "current"
        },
        {
          "locator": "/error_codes/@id=ai-control-protocol.error.invalid-params/name",
          "source": "Invalid params",
          "source_sha256": "7a57cdae960dbe660269d9d3fa3c03c4ef58f73c314a75626d3561377cd4fce2",
          "status": "current"
        },
        {
          "locator": "/error_codes/@id=ai-control-protocol.error.invalid-params/rationale",
          "source": "Malformed calls must not enter the project command queue.",
          "source_sha256": "be083ee0635fb9cec69dcc2be36b2db1bf2c1688abdc6e03976b74480433f0d0",
          "status": "current"
        },
        {
          "locator": "/error_codes/@id=ai-control-protocol.error.invalid-params/requirement",
          "source": "Reject missing command type or structurally invalid method parameters.",
          "source_sha256": "c32444ba82c3c3ca76f11379334f2a850ab35a193ece5fd58886e617dc2425b0",
          "status": "current"
        },
        {
          "locator": "/error_codes/@id=ai-control-protocol.error.invalid-request/name",
          "source": "Invalid request",
          "source_sha256": "330509caa0f2887db626f7c8e31732090558da1931406299ed6632b20c8ab66b",
          "status": "current"
        },
        {
          "locator": "/error_codes/@id=ai-control-protocol.error.invalid-request/rationale",
          "source": "Envelope failures are distinct from project command validation.",
          "source_sha256": "05df7242aebba4f5edd0c9477a273ab793148736099cf19197df7e3d964c4f53",
          "status": "current"
        },
        {
          "locator": "/error_codes/@id=ai-control-protocol.error.invalid-request/requirement",
          "source": "Reject a non-object, invalid envelope, missing method, or oversized request.",
          "source_sha256": "a7426fdca407cd13d66e8b4dd21887b907169d4cc3d2789bf3e278d4bc5a25f7",
          "status": "current"
        },
        {
          "locator": "/error_codes/@id=ai-control-protocol.error.method-not-found/name",
          "source": "Method not found",
          "source_sha256": "a362d1ab7712da5f028ea69102bf8846c191ec6292c58675967675e9790ea10a",
          "status": "current"
        },
        {
          "locator": "/error_codes/@id=ai-control-protocol.error.method-not-found/rationale",
          "source": "Project action names belong inside act and are not transport methods.",
          "source_sha256": "1abde5154b21b081d38792375e7f3b870a0daced1e1c69e24769bde60c2397c1",
          "status": "current"
        },
        {
          "locator": "/error_codes/@id=ai-control-protocol.error.method-not-found/requirement",
          "source": "Reject an unknown protocol method.",
          "source_sha256": "403f9742ff68e57ea01bd69f33a8a634f105183e3ab8e3fd53798e8975e262b8",
          "status": "current"
        },
        {
          "locator": "/error_codes/@id=ai-control-protocol.error.parse/name",
          "source": "Parse error",
          "source_sha256": "65837ce7a4bea5d7d8b9a250bed9b2f4eee46eb268afaae135be5a835b7b6e38",
          "status": "current"
        },
        {
          "locator": "/error_codes/@id=ai-control-protocol.error.parse/rationale",
          "source": "The request cannot be interpreted safely.",
          "source_sha256": "a38ed7dc96b85d857ffe6dceb41817d6f4864b4bed830858ccdfdffdad0c8560",
          "status": "current"
        },
        {
          "locator": "/error_codes/@id=ai-control-protocol.error.parse/requirement",
          "source": "Reject malformed UTF-8 JSON.",
          "source_sha256": "b158d8848790f702c688c84e3dca3dc63df9ebcae8d7bed30f78f43021809e06",
          "status": "current"
        },
        {
          "locator": "/error_codes/@id=ai-control-protocol.error.queue-full/name",
          "source": "Command queue full",
          "source_sha256": "8a3717650e2563545ff52a9af1b2b28444b0b7b0b9ebf6c9cb314434d29ff2ce",
          "status": "current"
        },
        {
          "locator": "/error_codes/@id=ai-control-protocol.error.queue-full/rationale",
          "source": "Back-pressure is explicit and cannot silently discard commands.",
          "source_sha256": "14cd974e8d2a68e97b3d4e74c33b241f91929c01448eb732b4fc102a48085951",
          "status": "current"
        },
        {
          "locator": "/error_codes/@id=ai-control-protocol.error.queue-full/requirement",
          "source": "Reject act when the bounded project command queue has no capacity.",
          "source_sha256": "ba3a767c261f67ba6eb70af9b03ebf901613b3ddf176a32292d3f089b5881c8c",
          "status": "current"
        },
        {
          "locator": "/error_codes/@id=ai-control-protocol.error.unauthorized/name",
          "source": "Unauthorized",
          "source_sha256": "d089c8a9fc28e4e50223eb38c9409e362521be9380a37341304fbac7a4cd9e5f",
          "status": "current"
        },
        {
          "locator": "/error_codes/@id=ai-control-protocol.error.unauthorized/rationale",
          "source": "A connection must never inherit authorization from another socket.",
          "source_sha256": "09d0c4049330cf1778b251073178b0ce1deaac07194b7c071d33c3da3ce58802",
          "status": "current"
        },
        {
          "locator": "/error_codes/@id=ai-control-protocol.error.unauthorized/requirement",
          "source": "Reject every method except auth until the connection is authorized when a token is configured.",
          "source_sha256": "31caf0b2b0043db0aee075c6d61db44299c561bc701d2de5e0ed945537b8f836",
          "status": "current"
        },
        {
          "locator": "/integration_rules/@id=ai-control-protocol.integration.bounded-state/name",
          "source": "Bounded queues and history",
          "source_sha256": "617e02e2b433eb6895a15c19064cc1b1981f12f090ee4156d4f5746656c00f64",
          "status": "current"
        },
        {
          "locator": "/integration_rules/@id=ai-control-protocol.integration.bounded-state/rationale",
          "source": "A stalled client loop must not create unbounded memory growth or silent command loss.",
          "source_sha256": "db35273924056437e4c62fa679ee282067aaf3dff1f4f43b3f2b49f586c14d30",
          "status": "current"
        },
        {
          "locator": "/integration_rules/@id=ai-control-protocol.integration.bounded-state/requirement",
          "source": "Command queues and retained event history have positive configured limits exposed through status; full queues reject rather than overwrite commands.",
          "source_sha256": "e3a68f975ce723f98c1fa3fb645b7e7c8564e4357d3de42eb99039da55d3adcf",
          "status": "current"
        },
        {
          "locator": "/integration_rules/@id=ai-control-protocol.integration.command-completion/name",
          "source": "Completion event",
          "source_sha256": "e8999b5daf1e361c753be2bcff9aace8db750fa7df7b599836d23eb642cd4547",
          "status": "current"
        },
        {
          "locator": "/integration_rules/@id=ai-control-protocol.integration.command-completion/rationale",
          "source": "Acceptance only proves queue insertion; agents need a correlated terminal result.",
          "source_sha256": "affa6e7b6ae4872a4fe6c0a637f1101358acc7dd81dd3d6eab41bf4a07a0630d",
          "status": "current"
        },
        {
          "locator": "/integration_rules/@id=ai-control-protocol.integration.command-completion/requirement",
          "source": "Every accepted command eventually emits command_completed with commandSeq, success, and message, including unsupported or failed project actions.",
          "source_sha256": "5e3a8ed95c7813f3b9e4e96f9500c44b051a09eadf98c1d69232494bc6b04273",
          "status": "current"
        },
        {
          "locator": "/integration_rules/@id=ai-control-protocol.integration.loop-ownership/name",
          "source": "Game-loop command drain",
          "source_sha256": "91fbef61ec28b9d2a99db118229285b40fc7932a438d220fcd55e2199346f025",
          "status": "current"
        },
        {
          "locator": "/integration_rules/@id=ai-control-protocol.integration.loop-ownership/rationale",
          "source": "Game objects and script runtime state are not socket-thread safe.",
          "source_sha256": "e2efaa31d42ede1408b567933d21939de18ea2abca41d6a8827b325182724fcd",
          "status": "current"
        },
        {
          "locator": "/integration_rules/@id=ai-control-protocol.integration.loop-ownership/requirement",
          "source": "The network thread only validates and queues act requests; the owning project client loop drains commands and mutates client state.",
          "source_sha256": "db9084fdc8a504ab3125b16181131265e7dd6acaaf59ca44a94785c1793c5f4e",
          "status": "current"
        },
        {
          "locator": "/integration_rules/@id=ai-control-protocol.integration.mcp-boundary/name",
          "source": "MCP adapter boundary",
          "source_sha256": "f95250ddc9657143e206a0c451a355851e8e6d5bb671451c537e613d29d35100",
          "status": "current"
        },
        {
          "locator": "/integration_rules/@id=ai-control-protocol.integration.mcp-boundary/rationale",
          "source": "Transport compatibility must not falsely standardize one game's QA surface.",
          "source_sha256": "622116c9a6cc9c681d4c55f5cd5f250940f8d251ce387f85be5c392443d14790",
          "status": "current"
        },
        {
          "locator": "/integration_rules/@id=ai-control-protocol.integration.mcp-boundary/requirement",
          "source": "An MCP adapter may map project observations/actions into semantic tools, but its tool namespace, launch orchestration, memory, prompts, and gameplay policies are project-owned.",
          "source_sha256": "906d3c861842f68de197308529049939ee2b9ad84dd0bf8d1e434b72f707b736",
          "status": "current"
        },
        {
          "locator": "/integration_rules/@id=ai-control-protocol.integration.native-extension/name",
          "source": "Project-owned listener",
          "source_sha256": "0f90a8dee989cbf4e4efd6ce18102678c35b74e52ce68d62524f701ab067b0ff",
          "status": "current"
        },
        {
          "locator": "/integration_rules/@id=ai-control-protocol.integration.native-extension/rationale",
          "source": "The current protocol is reusable, but listener policy and shipping risk remain project responsibilities.",
          "source_sha256": "b132fde3497dacaed3fee3ba0850878f8ac3e2d907f9df9c1dbae9a6324088c1",
          "status": "current"
        },
        {
          "locator": "/integration_rules/@id=ai-control-protocol.integration.native-extension/requirement",
          "source": "Implement the listener as an opt-in embedding-project native extension unless and until a reviewed Engine runtime owner is introduced.",
          "source_sha256": "aeecf72f5fa9f57228952a715bdb7c4f31cec112ba955509c7a42202a9e01648",
          "status": "current"
        },
        {
          "locator": "/integration_rules/@id=ai-control-protocol.integration.observation-schema/name",
          "source": "Version project observations",
          "source_sha256": "824ae231f4fd42aa619887d746f6344baad3e8fd71addde4e692c2437277ec86",
          "status": "current"
        },
        {
          "locator": "/integration_rules/@id=ai-control-protocol.integration.observation-schema/rationale",
          "source": "Last Frontier and TLA legitimately expose different game models.",
          "source_sha256": "0013b04ecb650274e8806cd7a44be37016e4c5176bc197eecdd39236ad49b8a0",
          "status": "current"
        },
        {
          "locator": "/integration_rules/@id=ai-control-protocol.integration.observation-schema/requirement",
          "source": "The observation object carries a project-owned schema version and enough readiness/action metadata for its adapter; the Engine protocol does not define game fields.",
          "source_sha256": "4b9d396c98cb47b0dbafc430ee3f9927c876f8afc24ac859559c98fc558faf1f",
          "status": "current"
        },
        {
          "locator": "/methods/@id=ai-control-protocol.method.act/rationale",
          "source": "The project client loop, not the socket thread, owns game state mutation.",
          "source_sha256": "745dfc9891a26b8ca5e2182c8818a8146a1e1157d83c77b74e820259a5dc58b9",
          "status": "current"
        },
        {
          "locator": "/methods/@id=ai-control-protocol.method.act/requirement",
          "source": "Enqueue one project-defined command and return its sequence; acceptance is not completion or gameplay success.",
          "source_sha256": "e3ace9ab24cea760e765b82743866852ae87bf872a1c24ed419836064575a73e",
          "status": "current"
        },
        {
          "locator": "/methods/@id=ai-control-protocol.method.auth/rationale",
          "source": "Authorization state is connection-local and never inferred from a prior connection.",
          "source_sha256": "27a9a20d03c0168c7257da637253245c316b1b960c37eb5724c50ded4564d1ae",
          "status": "current"
        },
        {
          "locator": "/methods/@id=ai-control-protocol.method.auth/requirement",
          "source": "Authenticate the current connection with the configured shared token; a failed attempt leaves it unauthorized and a later attempt may succeed.",
          "source_sha256": "bbaaaccff763e0e9ab9b7839f740095342abb6e783c058601ba3d5a0d62f3306",
          "status": "current"
        },
        {
          "locator": "/methods/@id=ai-control-protocol.method.events/rationale",
          "source": "A cursor permits resumable polling without forcing observations to retain transient outcomes.",
          "source_sha256": "dcb4a2e4285dbd84df8f1b7c828a1ea6a880b358e239e7fb48fed37bb9696bce",
          "status": "current"
        },
        {
          "locator": "/methods/@id=ai-control-protocol.method.events/requirement",
          "source": "Return retained events with seq greater than afterSeq in ascending order; clamp limit to 1..500.",
          "source_sha256": "37b087fdc2b4ecb85a1e27d5c0531d4341768466c48cf9209c0dfbbb4b54e516",
          "status": "current"
        },
        {
          "locator": "/methods/@id=ai-control-protocol.method.observe/rationale",
          "source": "The envelope can be stable while every game owns its state schema.",
          "source_sha256": "6f2d2b35e7092a5919d4b5f9178ee4728a4a11086f5b4528502f6d1c46829725",
          "status": "current"
        },
        {
          "locator": "/methods/@id=ai-control-protocol.method.observe/requirement",
          "source": "Return the latest complete project-owned observation snapshot and its monotonically increasing replacement sequence.",
          "source_sha256": "4d329928aa397241ede54d4e76567c757b43eb98b6efbc07e28dfb7e0c384507",
          "status": "current"
        },
        {
          "locator": "/methods/@id=ai-control-protocol.method.ping/rationale",
          "source": "Transport health must be distinguishable from project readiness.",
          "source_sha256": "77ff5bfbd4aec845c2276168cfdd5651827f3d237431451d3f8d0455d38f45b6",
          "status": "current"
        },
        {
          "locator": "/methods/@id=ai-control-protocol.method.ping/requirement",
          "source": "Report bridge liveness after authorization.",
          "source_sha256": "0cd756e1d2732f9784d8e5f7621b834387e9d4bff609fb7b6471ddd860edb8c2",
          "status": "current"
        },
        {
          "locator": "/methods/@id=ai-control-protocol.method.status/rationale",
          "source": "Operators need bounded health information without parsing a game observation.",
          "source_sha256": "daa0ac434e46ff87ca76ecd49b3f0487dec0bbffe50f98889d9d7f553b07d586",
          "status": "current"
        },
        {
          "locator": "/methods/@id=ai-control-protocol.method.status/requirement",
          "source": "Return transport state, queue/event occupancy and limits, latest observation sequence, and the last bridge error.",
          "source_sha256": "46d566e988808236a84583715dc25b5a5bf1d4cbb84c1f3782199a999e458255",
          "status": "current"
        },
        {
          "locator": "/scope/excluded",
          "source": [
            "a listener compiled into the FOnline core runtime",
            "project observation fields, game action names, entity semantics, and readiness gates",
            "MCP tool names, orchestration recipes, game-playing policies, and model prompts",
            "server authority bypasses, administrator commands, TLS, discovery, and internet exposure"
          ],
          "source_sha256": "0e3f12e09774b447895bf3eaf18ae5ffbad3cf1e0385ca5968c47309664d4841",
          "status": "current"
        },
        {
          "locator": "/scope/included",
          "source": [
            "UTF-8 newline-delimited JSON over a TCP byte stream",
            "JSON-RPC-shaped request, result, and error envelopes",
            "authorization, liveness, status, observation, event, and action methods",
            "bounded transport, command queue, and event history behavior",
            "accepted-command and asynchronous completion lifecycle",
            "loopback-first threat boundary and reference validation"
          ],
          "source_sha256": "8c898e18805be0eec05e0a92e715eaeb6c3cec2f71a8dab818dbe65f759c73aa",
          "status": "current"
        },
        {
          "locator": "/scope/support_note",
          "source": "The envelope is versioned but experimental; embedding projects must pin an Engine revision and own their observation and action schemas.",
          "source_sha256": "1b143d7753446420fd89b304dccb0ebc5bb658be7ee396be0dbac4a3e1fd3a3e",
          "status": "current"
        },
        {
          "locator": "/security_rules/@id=ai-control-protocol.security.disabled-default/name",
          "source": "Disabled by default",
          "source_sha256": "beed7b79dbbafc1e51fca1460de7aa2533d5f1efd97b521c0485dabc79e8a699",
          "status": "current"
        },
        {
          "locator": "/security_rules/@id=ai-control-protocol.security.disabled-default/rationale",
          "source": "A control listener is a security-sensitive development feature.",
          "source_sha256": "8ddc5beec632eee74066cea322e903cccbfd2393c7e8b415cc2d9b5d820dcd07",
          "status": "current"
        },
        {
          "locator": "/security_rules/@id=ai-control-protocol.security.disabled-default/requirement",
          "source": "An embedding project must require explicit configuration to start a listener.",
          "source_sha256": "a01831d5ea79cc786f8f6087a548183ef1dc65dac9f6eb9bff369fa773eb815e",
          "status": "current"
        },
        {
          "locator": "/security_rules/@id=ai-control-protocol.security.loopback-default/name",
          "source": "Loopback first",
          "source_sha256": "559dc421550d314135b3305d2f60e67ee2a6d41ae5fa5eeda41b605bab17cfec",
          "status": "current"
        },
        {
          "locator": "/security_rules/@id=ai-control-protocol.security.loopback-default/rationale",
          "source": "The protocol has no transport encryption or peer identity beyond a shared token.",
          "source_sha256": "39d229f84e5836f201b451d9c7448316b6369b46f8a314113a9f11acccb7987e",
          "status": "current"
        },
        {
          "locator": "/security_rules/@id=ai-control-protocol.security.loopback-default/requirement",
          "source": "Listeners and clients default to 127.0.0.1 and refuse non-loopback operation without explicit operator opt-in.",
          "source_sha256": "3bbe1640875717dad9d2caaf740a2e5024913f146379fac3a45e391173d8cd2b",
          "status": "current"
        },
        {
          "locator": "/security_rules/@id=ai-control-protocol.security.plaintext/name",
          "source": "No TLS",
          "source_sha256": "759cc8e9b5a56d97bc4c61962b8e9eb85cf5547ce328420a8cd20976bc92f81a",
          "status": "current"
        },
        {
          "locator": "/security_rules/@id=ai-control-protocol.security.plaintext/rationale",
          "source": "Token authentication is not confidentiality or replay protection.",
          "source_sha256": "e0cc39e6df5db390d7c1958b8d11fd2663de46b95de72dc245154d3b79023a63",
          "status": "current"
        },
        {
          "locator": "/security_rules/@id=ai-control-protocol.security.plaintext/requirement",
          "source": "Treat the shared token and all payloads as plaintext on the TCP path; use an authenticated encrypted tunnel if non-loopback transport is unavoidable.",
          "source_sha256": "829d45cd8aa529d3cdb556818b5fb5f66f0dc642c196dc3042c0b276c5889840",
          "status": "current"
        },
        {
          "locator": "/security_rules/@id=ai-control-protocol.security.remote-token/name",
          "source": "Remote token required",
          "source_sha256": "eda775475a57f93aa36e5374fcdd206547f04485563eb5ea29a6b38dc256f763",
          "status": "current"
        },
        {
          "locator": "/security_rules/@id=ai-control-protocol.security.remote-token/rationale",
          "source": "An empty-token remote listener is an unauthenticated process-control channel.",
          "source_sha256": "5a61a35e2de12943af622eec29845917df9ab4a62b81e7de46a4d0f4eafc6f40",
          "status": "current"
        },
        {
          "locator": "/security_rules/@id=ai-control-protocol.security.remote-token/requirement",
          "source": "A sample or project listener exposed beyond loopback requires a non-empty token in addition to explicit remote opt-in.",
          "source_sha256": "3e32da21412a352793939b11e6cc18e9394b4bd90315d2188645319215bd3cf3",
          "status": "current"
        },
        {
          "locator": "/security_rules/@id=ai-control-protocol.security.secret-input/name",
          "source": "Environment-backed token",
          "source_sha256": "5b8eefeee583b30e07c148c2cd7d45a49ed35f9ccf0a6337cacac184ff5340f5",
          "status": "current"
        },
        {
          "locator": "/security_rules/@id=ai-control-protocol.security.secret-input/rationale",
          "source": "Command lines, process listings, shell history, and reports are common secret leak paths.",
          "source_sha256": "0ff62aa3b391387416924722dc023d2ceadcef56026f0a22befc4e9da1124f38",
          "status": "current"
        },
        {
          "locator": "/security_rules/@id=ai-control-protocol.security.secret-input/requirement",
          "source": "Reference tools read tokens from a named environment variable and do not accept or print raw token arguments.",
          "source_sha256": "b84e062a90df503c350a7e581df3c1fdf205c817db0308c6f1ccf4c16f0fa4a4",
          "status": "current"
        },
        {
          "locator": "/security_rules/@id=ai-control-protocol.security.server-authority/name",
          "source": "Preserve server authority",
          "source_sha256": "1f6bf3d57672f5a670cbd580e71eaa85e4b501edfba42dbd13f4a7e98403cc62",
          "status": "current"
        },
        {
          "locator": "/security_rules/@id=ai-control-protocol.security.server-authority/rationale",
          "source": "AI QA should exercise the same validation boundary as a player.",
          "source_sha256": "175329b26d680a06ce1977f4be142e43b1f2c25f9eef11f95e6e54d6a4f9c406",
          "status": "current"
        },
        {
          "locator": "/security_rules/@id=ai-control-protocol.security.server-authority/requirement",
          "source": "Project actions use normal client input or authenticated gameplay RPC paths; the bridge does not grant server authority or administrator capability by default.",
          "source_sha256": "94546a639ea77991cdd2af1cf3ad2d5e79508d108386c2433436e0803a6a7e68",
          "status": "current"
        },
        {
          "locator": "/security_rules/@id=ai-control-protocol.security.shipping-build/name",
          "source": "Compile out shipping surface",
          "source_sha256": "34c702ae92b14cc1654c04366872228402d86c9e209c10d24b90ce491b57239f",
          "status": "current"
        },
        {
          "locator": "/security_rules/@id=ai-control-protocol.security.shipping-build/rationale",
          "source": "Removing the socket and command path reduces attack and antivirus heuristic surface.",
          "source_sha256": "9569811d193f381549a638854b2c8a18691c5b285701b05195981b02f9665b49",
          "status": "current"
        },
        {
          "locator": "/security_rules/@id=ai-control-protocol.security.shipping-build/requirement",
          "source": "Projects should compile the listener and remote-command path out of production clients, not merely disable them in a runtime config.",
          "source_sha256": "c4c0a7e64217d19cad9f65a0291860caacd73395d33ed41c3ad67c4aaae5dbfc",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=ai-control-protocol.validation.gameplay-authority/name",
          "source": "Normal gameplay path",
          "source_sha256": "ce52d1913f1e5de0a81214a678b26f70c09567c4ad5f5cc5e76928166fa28e12",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=ai-control-protocol.validation.gameplay-authority/rationale",
          "source": "A successful protocol smoke cannot prove game authorization or anti-cheat boundaries.",
          "source_sha256": "5cad66f9e78ac91de38448ec8311d591ba25970534766e1464f6cd4061bd0a3b",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=ai-control-protocol.validation.gameplay-authority/requirement",
          "source": "Project tests show representative actions pass through ordinary server validation and that rejected gameplay actions complete as failures.",
          "source_sha256": "3c00e2bda8dd2870f594b75aa978ad35365aa3de3ccac294b27069ac5b6176e6",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=ai-control-protocol.validation.malformed-peer/name",
          "source": "Malformed peer responses",
          "source_sha256": "94309a03e2a7fcbe6c6302b7419ef0ca6f8b07cf4d977b8f5ece67a94e0891e0",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=ai-control-protocol.validation.malformed-peer/rationale",
          "source": "Automation must fail closed instead of consuming ambiguous data.",
          "source_sha256": "345cc8c95952acafe486fd0efcd6ce6f1ceb169953c5c13b6ce1fb416b9bcf71",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=ai-control-protocol.validation.malformed-peer/requirement",
          "source": "Client tests reject malformed JSON, unsupported envelopes, mismatched ids, dual result/error responses, and oversized lines.",
          "source_sha256": "3dc825e3b0adbf9911b03aa6a6efcae88783c2d93504402a60cd1a57288c842f",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=ai-control-protocol.validation.project-native/name",
          "source": "Project native integration",
          "source_sha256": "ba89b2092820512c8d2cda262fa6e182dc57fe0bc0ef93c05d40053ebb404b09",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=ai-control-protocol.validation.project-native/rationale",
          "source": "The Python sample is protocol proof, not FOnline native runtime proof.",
          "source_sha256": "d2ce0a0a604edbf42222f32f0ef5aa8acabb53fbef55427738de67c49e591dee",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=ai-control-protocol.validation.project-native/requirement",
          "source": "A real project separately builds its native bridge, starts an actual client, verifies queue draining on the client loop, and checks clean shutdown/reconnect behavior.",
          "source_sha256": "9ac0456b7b7fd6618b0eeaef0715cbc132af0f263ce16da57b3db81d0e90145f",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=ai-control-protocol.validation.protocol-smoke/name",
          "source": "Protocol smoke",
          "source_sha256": "a3d77802ac21fd0eab6536075384293bce1c0b2f9e47d344836380ad8072951f",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=ai-control-protocol.validation.protocol-smoke/rationale",
          "source": "A rendered schema alone cannot prove connection state and asynchronous lifecycle behavior.",
          "source_sha256": "e75b014a34ce6cec0a7f2c3fce9378f0846058fe5a00e5b5579fc95ffd79d3ce",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=ai-control-protocol.validation.protocol-smoke/requirement",
          "source": "Run the reference client against the sample server and prove auth, liveness, status, observation, invalid input, action acceptance, completion, state update, and event cursor behavior.",
          "source_sha256": "3bfd7c867449a575dd9ca5e1dffb2c371e10d646291924a213c311d0f0ff6197",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=ai-control-protocol.validation.security/name",
          "source": "Security boundary tests",
          "source_sha256": "54b619f768522782ec364b3deb187ae16cd5f63537426d0d6002051012036ec2",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=ai-control-protocol.validation.security/rationale",
          "source": "Security prose must remain executable as the helper evolves.",
          "source_sha256": "9406bd1974da574c5f7f80e66e2bfb1425163a780d7c712cd489b004d0f4740f",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=ai-control-protocol.validation.security/requirement",
          "source": "Tests prove non-loopback refusal, per-connection authorization, wrong-token rejection, and absence of token command-line arguments.",
          "source_sha256": "2310b90df72246f907f73bc6b4685cd67a89bb0e2dcc024a268d0df4348f6cdf",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=ai-control-protocol.validation.shipping-artifact/name",
          "source": "Shipping artifact inspection",
          "source_sha256": "cd1f8a3aa8bd6c1202556f4d9a054085de50c2cba39a6b73b02ba86ee4bf70ce",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=ai-control-protocol.validation.shipping-artifact/rationale",
          "source": "A disabled default is weaker than absence from the shipped binary.",
          "source_sha256": "75b2601ab3138ed03e8d3e57b87010717725407cdd84f00f8d773997bd73b474",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=ai-control-protocol.validation.shipping-artifact/requirement",
          "source": "Release validation confirms production clients cannot open the AiControl listener and do not contain the project remote-command implementation.",
          "source_sha256": "f7760b78c63218feae41d921f9976fa773076eb40e44784f746e4777163ad850",
          "status": "current"
        },
        {
          "locator": "/wire_rules/@id=ai-control-protocol.wire.line-limit/name",
          "source": "Bounded line size",
          "source_sha256": "eb050aa0d8a63ca44771453d9f315a27a49ee861b1ec87a741682ebed6c4586c",
          "status": "current"
        },
        {
          "locator": "/wire_rules/@id=ai-control-protocol.wire.line-limit/rationale",
          "source": "A local automation channel still needs deterministic memory bounds.",
          "source_sha256": "eb0f6f50e7cba969be2d958fddd0a0b43a2309849efe0fe5c9d52dfae3a6be7e",
          "status": "current"
        },
        {
          "locator": "/wire_rules/@id=ai-control-protocol.wire.line-limit/requirement",
          "source": "A request or response JSON payload is at most 1 MiB before the LF terminator; oversized input is rejected and the connection may close.",
          "source_sha256": "aa932ff3cb6e218952ff4d46e52c089f49c606ef8e0129d2559364acecafc326",
          "status": "current"
        },
        {
          "locator": "/wire_rules/@id=ai-control-protocol.wire.ndjson/name",
          "source": "One JSON object per line",
          "source_sha256": "10445f36fe62694f8c7914963aeb4de0ca2766a649ff1d4d7fa2ead8b573b9ec",
          "status": "current"
        },
        {
          "locator": "/wire_rules/@id=ai-control-protocol.wire.ndjson/rationale",
          "source": "Line framing is streamable, inspectable, and shared by both audited project bridges.",
          "source_sha256": "105d71913a97e1a1b1a9e5dc904e620f9a78d56cce514ec4f2e2c03b90b4a39e",
          "status": "current"
        },
        {
          "locator": "/wire_rules/@id=ai-control-protocol.wire.ndjson/requirement",
          "source": "Each request and response is one JSON object terminated by LF; peers process lines in connection order.",
          "source_sha256": "69401bcfc0233c03bd928964886ebae5b6e190aeb47d4870c9b0172adf6e4d59",
          "status": "current"
        },
        {
          "locator": "/wire_rules/@id=ai-control-protocol.wire.request-envelope/name",
          "source": "Request envelope",
          "source_sha256": "e8977fce752983e0339fe88cfbdb941241fefb2dbe13d5dfb03aa5d41601cc8f",
          "status": "current"
        },
        {
          "locator": "/wire_rules/@id=ai-control-protocol.wire.request-envelope/rationale",
          "source": "A small JSON-RPC-shaped envelope gives correlation without claiming the full JSON-RPC specification.",
          "source_sha256": "8b0aca1f85ea4e05792128c3c6d62e3e8f1feb3afa8115c40e53c14e5f8f1baf",
          "status": "current"
        },
        {
          "locator": "/wire_rules/@id=ai-control-protocol.wire.request-envelope/requirement",
          "source": "A request object carries jsonrpc=2.0, a caller-chosen id, a non-empty method string, and an object-valued params member.",
          "source_sha256": "a9592522760ede6040b13ed1c4b3021e28130b08f9260f5a62c7e26b93605532",
          "status": "current"
        },
        {
          "locator": "/wire_rules/@id=ai-control-protocol.wire.response-envelope/name",
          "source": "Response envelope",
          "source_sha256": "322e2a2be6a84e7981517231c6aa540cd1cea051b882142254fba0b8d5b5bb1d",
          "status": "current"
        },
        {
          "locator": "/wire_rules/@id=ai-control-protocol.wire.response-envelope/rationale",
          "source": "Strict correlation prevents one automation step from consuming another step's result.",
          "source_sha256": "8d0e2d4fa281a1c2522bd8f5e55a234e110b625cbaaf957f912489417af3fa7f",
          "status": "current"
        },
        {
          "locator": "/wire_rules/@id=ai-control-protocol.wire.response-envelope/requirement",
          "source": "A response echoes jsonrpc=2.0 and the request id, then contains exactly one of result or error; error contains an integer code and string message.",
          "source_sha256": "ebe39e8136e973db6322e2bfa337922df9cdcf150d8b8f6c6dceee466c618911",
          "status": "current"
        },
        {
          "locator": "/wire_rules/@id=ai-control-protocol.wire.sequential-connection/name",
          "source": "Sequential request processing",
          "source_sha256": "7598c90446f694586ea19203cd02cfa30b2beee7e58717b5a94cd461460f716d",
          "status": "current"
        },
        {
          "locator": "/wire_rules/@id=ai-control-protocol.wire.sequential-connection/rationale",
          "source": "The contract remains implementable by a single project-owned listener and avoids hidden ordering races.",
          "source_sha256": "49d0ddbcc45a4816f56f3c2e0cd9fa31053e056c178530560803231dd278948e",
          "status": "current"
        },
        {
          "locator": "/wire_rules/@id=ai-control-protocol.wire.sequential-connection/requirement",
          "source": "A client sends a request and consumes its matching response before reusing that connection; clients must not require multiplexing or concurrent in-flight requests.",
          "source_sha256": "539e5166fc259e1005c9944ca263891f61a4042fc58d7185f330c495746394b9",
          "status": "current"
        },
        {
          "locator": "/wire_rules/@id=ai-control-protocol.wire.tcp-stream/name",
          "source": "TCP byte stream",
          "source_sha256": "c71d3d8f1ada6fb9b71273e1e2eee861fea3c13347147aefb1f99c98d8490bc6",
          "status": "current"
        },
        {
          "locator": "/wire_rules/@id=ai-control-protocol.wire.tcp-stream/rationale",
          "source": "The common project implementations are local tooling channels, not an internet service protocol.",
          "source_sha256": "62218e4a4392f0009b97f211d94360923c2e46d8eca26a0d547a06aa76704773",
          "status": "current"
        },
        {
          "locator": "/wire_rules/@id=ai-control-protocol.wire.tcp-stream/requirement",
          "source": "A bridge accepts an explicitly configured TCP endpoint; clients must not assume service discovery, TLS, HTTP, or WebSocket framing.",
          "source_sha256": "13e1baab21a4b3e28b8336e71721d0beb6b9da1cefad5cae000413230af4e8c0",
          "status": "current"
        },
        {
          "locator": "/wire_rules/@id=ai-control-protocol.wire.utf8/name",
          "source": "UTF-8 encoding",
          "source_sha256": "d0d4e1dd383da71638d28070b3c40b3318810093f20472c8d5139650581083cc",
          "status": "current"
        },
        {
          "locator": "/wire_rules/@id=ai-control-protocol.wire.utf8/rationale",
          "source": "Project observations and action payloads may contain localized text.",
          "source_sha256": "aff0ee222473b242a34c3203c2551ebdd6bea45a20f62b535499d4f463f0ed28",
          "status": "current"
        },
        {
          "locator": "/wire_rules/@id=ai-control-protocol.wire.utf8/requirement",
          "source": "JSON lines are encoded and decoded as strict UTF-8; malformed input receives a parse error or closes the connection.",
          "source_sha256": "0175d09e10554f1431a3b5bcaf323e2be655b0ea138b2d61b0d8b76c0b61bbb4",
          "status": "current"
        }
      ]
    },
    "api": {
      "source_model": "Docs/generated/api.json",
      "entry_count": 2558,
      "current_count": 2558,
      "missing_count": 0,
      "complete": true,
      "entries": [
        {
          "locator": "/scope/contract/notes",
          "source": "The native-codegen surface is offered for evaluation only, and stays revision-pinned until supported release lines exist.\nSymbolCount and InventorySha256 force owner review of every addition, removal or stable-ID change",
          "source_sha256": "0a5837615db1ac52964f25bff754d87473c2533c0ae678b8914e21b1f7c5e5b3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=migration.Property.Critter.Cond/description",
          "source": "Maps the legacy Critter property name Cond to Condition during Engine migration lookup",
          "source_sha256": "a0725b1491c3936ba71164cc44987e1c4469b72a522b8b77afdcb2d6190b1890",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=migration.Property.Critter.IsControlledByPlayer/description",
          "source": "Maps the legacy Critter property name IsControlledByPlayer to ControlledByPlayer during Engine migration lookup",
          "source_sha256": "9d90725abb538f2b9625a7d62ad75882261ebb986df8fafb5cca7a8ef823ad7b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=migration.Property.Critter.IsNoFlatten/description",
          "source": "Maps the legacy Critter property name IsNoFlatten to DeadDrawNoFlatten during Engine migration lookup",
          "source_sha256": "2d6fa9e283d0ab250e4c29f0f2dba09147e87d2ab3313fd2f934acdaa0b6c01a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=migration.Property.Critter.ScriptId/description",
          "source": "Maps the legacy Critter property name ScriptId to InitScript during Engine migration lookup",
          "source_sha256": "2b6dd1daa3cd0c7072a4ee3dcfcdae6ad7d36c5a693b2248e4d95f75a79ac706",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=migration.Property.Item.Accessory/description",
          "source": "Maps the legacy Item property name Accessory to Ownership during Engine migration lookup",
          "source_sha256": "cd6aef03da9f9022645140c2e4416519e20aa6f6693683f376287941b19ed47b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=migration.Property.Item.BlockLines/description",
          "source": "Maps the legacy Item property name BlockLines to MultihexLines during Engine migration lookup",
          "source_sha256": "ae9bb88aa6e867d9040ced802852b46d166af86e645aa8addbc8adad3c751b0b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=migration.Property.Item.CritId/description",
          "source": "Maps the legacy Item property name CritId to CritterId during Engine migration lookup",
          "source_sha256": "79481cd90d0cceee6f801417908ffd72c410047b7715585ab21fe38765235504",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=migration.Property.Item.CritSlot/description",
          "source": "Maps the legacy Item property name CritSlot to CritterSlot during Engine migration lookup",
          "source_sha256": "f70ab0aac4f4228d0650dd84347f0e0decf2d36a4a805599fb91edbcbdf25166",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=migration.Property.Item.IsColorize/description",
          "source": "Maps the legacy Item property name IsColorize to Colorize during Engine migration lookup",
          "source_sha256": "3dd5e866bb9c3553c1ba260c5a5fb131dfdb3f3592130ce7e9ba6d93dc417a22",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=migration.Property.Item.IsFlat/description",
          "source": "Maps the legacy Item property name IsFlat to DrawFlatten during Engine migration lookup",
          "source_sha256": "fa3b0b4a4fcbc1e6d821c4de7423b85c2469d3179998de1c41f9b80ce8d104f8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=migration.Property.Item.IsHidden/description",
          "source": "Maps the legacy Item property name IsHidden to Hidden during Engine migration lookup",
          "source_sha256": "bfa2d2d7dcd3ea8149b95d1d62b6f66ad300ceb70c2d0facd58cbeed8205de98",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=migration.Property.Item.IsHiddenPicture/description",
          "source": "Maps the legacy Item property name IsHiddenPicture to AlwaysHideSprite during Engine migration lookup",
          "source_sha256": "e722d963a7e5d0d23bb36d58ca6b7428ae6027c22085fed59a92361b4ff728d1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=migration.Property.Item.IsLight/description",
          "source": "Maps the legacy Item property name IsLight to LightSource during Engine migration lookup",
          "source_sha256": "c39f2ea299c321ec0e889e583cd71dd1799033541c620cd30f0dd94dc30cd85e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=migration.Property.Item.IsLightThru/description",
          "source": "Maps the legacy Item property name IsLightThru to LightThru during Engine migration lookup",
          "source_sha256": "cb8d73c18d589d18449a701fb1049338e83b7c629c6810fe0dd474d68025d9fb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=migration.Property.Item.IsNoBlock/description",
          "source": "Maps the legacy Item property name IsNoBlock to NoBlock during Engine migration lookup",
          "source_sha256": "c89763d9f8d9e9f2bfc5ebf59e39ea5e595b44d1b83f28f5caca9321d2b36889",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=migration.Property.Item.IsNoHighlight/description",
          "source": "Maps the legacy Item property name IsNoHighlight to NoHighlight during Engine migration lookup",
          "source_sha256": "f3ed116a4f831fb724de36b31ecd662c101bd70e931a312e1b63534a1c29509f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=migration.Property.Item.IsNoLightInfluence/description",
          "source": "Maps the legacy Item property name IsNoLightInfluence to NoLightInfluence during Engine migration lookup",
          "source_sha256": "703fa572dc9e657718226671dc2ee59780348a854f5a9c711239938071400fb5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=migration.Property.Item.IsShootThru/description",
          "source": "Maps the legacy Item property name IsShootThru to ShootThru during Engine migration lookup",
          "source_sha256": "6cfcc8db25d8c515f05aa7adfb41445266cce5c791b407cfba9f866893317135",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=migration.Property.Item.IsStatic/description",
          "source": "Maps the legacy Item property name IsStatic to Static during Engine migration lookup",
          "source_sha256": "fcb5cfc1eb3d7c1d90b6b9b08e1faf4620fa0e04d200544b406e693ba524a55b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=migration.Property.Item.SceneryScript/description",
          "source": "Maps the legacy Item property name SceneryScript to StaticScript during Engine migration lookup",
          "source_sha256": "cd0e0a16505552e18f9e51badb34f149c9884983fe5403015a58b73b0c3088ff",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=migration.Property.Item.ScriptId/description",
          "source": "Maps the legacy Item property name ScriptId to InitScript during Engine migration lookup",
          "source_sha256": "5545087d8ca800be6b88f20ad5eaa430ab7a618a2ea4887c0405eb954767442a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=migration.Property.Item.Slot/description",
          "source": "Maps the legacy Item property name Slot to CritterSlot during Engine migration lookup",
          "source_sha256": "aa7b2d93d259f8c595f45ca6c35328f75abff0695b22ce3bdc53503692f4d032",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=migration.Property.Item.SubItemIds/description",
          "source": "Maps the legacy Item property name SubItemIds to InnerItemIds during Engine migration lookup",
          "source_sha256": "ea3fc3461b85b45ded7e478636444e5c7033b27ed9f1c7a590a345fea5c507af",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=migration.Property.Location.ScriptId/description",
          "source": "Maps the legacy Location property name ScriptId to InitScript during Engine migration lookup",
          "source_sha256": "6b9e6cf546397a87af5172f020045b42012d39080781065f4cd6782c01411f3d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=migration.Property.Map.CurDayTime/description",
          "source": "Maps the legacy Map property name CurDayTime to FixedDayTime during Engine migration lookup",
          "source_sha256": "79124b4f9966b56331182be3b0a34f3c2564f62fe6949cf09edc867bb2fade1c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=migration.Property.Map.DayTime/description",
          "source": "Maps the legacy Map property name DayTime to DayColorTime during Engine migration lookup",
          "source_sha256": "733f571ddb488285bff84b8f8f3731d1cf4c30f9d0841e3a4f4d675e435a8463",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=migration.Property.Map.ScriptId/description",
          "source": "Maps the legacy Map property name ScriptId to InitScript during Engine migration lookup",
          "source_sha256": "6f0831e110215f5aed547f193cb1c311a9fe75609feaa5e193c68f9f4e3c2ec6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=migration.Version.0.0/description",
          "source": "Force change of compatability version",
          "source_sha256": "ba4f7c11defbf43d74cf397d5e07b0c9ce678507ca43e2a3fca80ac4228a5588",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.entity.Critter/description",
          "source": "Prototype-backed character entity used for player bodies and NPCs, with inventory, movement, and map or global-map state.",
          "source_sha256": "bc1913ee2b18446e0f110a199ca81f96a741eb4d0ca009732c06667550c1d49a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.entity.Game/description",
          "source": "Global singleton script receiver for the current server, client, or Mapper engine; it exposes engine services, events, and game properties rather than a persistent world object.",
          "source_sha256": "ba07b198cca626ec7269b10131c282a03878d14b85048c76d7137b0f90ea7040",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.entity.ImGui/description",
          "source": "Global script receiver bound to the current engine's Dear ImGui context; individual methods define their active-frame and balanced-scope requirements.",
          "source_sha256": "6927080bed387b41c880f8cbbc35ff49d6344cea3c4958327202515bb4fdcb35",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.entity.Item/description",
          "source": "Prototype-backed item entity that can belong to a map, critter inventory, container, or custom holder and also exposes static and abstract variants.",
          "source_sha256": "7c86f38f3320b4bbf1701c8631a4e4845b0680ae084d3cc99f0da3cad158f808",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.entity.Location/description",
          "source": "Prototype-backed world-location entity that owns instantiated maps on the server and is represented by LocationView on clients.",
          "source_sha256": "c927e8e07ddb4758c8385b1f4d32e9cf5e93365f9c0c7c73ec161b2b3d23e830",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.entity.Map/description",
          "source": "Prototype-backed instantiated map entity containing runtime critters and items; clients operate on its replicated MapView.",
          "source_sha256": "69b5bb6eba44be0eb214039a577c0c3db45c7338fe576effdae0269ee2ed5917",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.entity.Player/description",
          "source": "Player account and connection-session entity, distinct from the Critter it may control; clients receive its replicated PlayerView.",
          "source_sha256": "aec350e8e89734765aa13bbfa920e2b5c4fc27bca3394663d3a84599261f7125",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CornerType.East/description",
          "source": "Selects the east-facing wall-corner orientation",
          "source_sha256": "23871ce2be9c49b6616578bab94ba1797c77607184cad65e3c60ad45764e0f21",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CornerType.EastWest/description",
          "source": "Selects the combined east-west wall-corner orientation",
          "source_sha256": "58fc12b5baad43bf7421fda2e40cfe53f3f9bc7117b54124cc11cc4e8fdd2d9f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CornerType.North/description",
          "source": "Selects the north-facing wall-corner orientation",
          "source_sha256": "21a4ab9a65af2554a7e40d086e25fa3f784f218df0d93144178e6162def1821d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CornerType.NorthSouth/description",
          "source": "Selects the combined north-south wall-corner orientation",
          "source_sha256": "3c40a4fc993bb498bfd931668a54f2418144e59f9f1b69ab482c8091eaaf361d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CornerType.South/description",
          "source": "Selects the south-facing wall-corner orientation",
          "source_sha256": "1d1de747a385daa24827e85b6e613021806fcaaf97c9f4cbf7c05be069757c9b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CornerType.West/description",
          "source": "Selects the west-facing wall-corner orientation",
          "source_sha256": "ca252e97fc89f734be9fe650ec2e8886668d806e14d64a0c27b4f832de6779ae",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterAction.Connect/description",
          "source": "Notifies observers that the player-controlled critter connected",
          "source_sha256": "eca72e6cbae65ce22416fd6ffdb18595c1eddaa91915685be56d9c2457829532",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterAction.Dead/description",
          "source": "Notifies observers that the critter entered the dead condition",
          "source_sha256": "927e079fa644a0f280a40eac6282d1956ea74414456896b4a3a851ed6f356c96",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterAction.Disconnect/description",
          "source": "Notifies observers that the player-controlled critter disconnected",
          "source_sha256": "20edd4bafa66cd2b41b40c6d854be0490560f1e820f4ebe48ad6b7de670acbd9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterAction.DropItem/description",
          "source": "Notifies observers that the critter dropped an item from a slot",
          "source_sha256": "980f7aaf7388d7ec4b0c0f63718e22737a405773d6cfe68d3a1e6e9c55587fbe",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterAction.Knockout/description",
          "source": "Notifies observers that the critter entered the knockout condition",
          "source_sha256": "ab521e7578c280ac2aee93ae755d9cd72ee9a0003a68239c6c78f8bfc9668e86",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterAction.MoveItem/description",
          "source": "Notifies observers that an item moved between critter slots",
          "source_sha256": "6b5e02fb6855f06fba07d241833d13a7d0433e1e3e9df4b0e6adfb5d70ee72b6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterAction.None/description",
          "source": "No critter action notification is selected",
          "source_sha256": "5803e754fa72d055e84e8be0b3696afd051cace355393112a5c762c91a3aa3af",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterAction.Refresh/description",
          "source": "Requests observers to refresh the critter's visual action state",
          "source_sha256": "d9a644333b5d8cef29c869d033584cdcba89cf69cfe49ea17fd29aba6c4cb2fe",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterAction.Respawn/description",
          "source": "Notifies observers that the critter returned to the alive condition outside knockout recovery",
          "source_sha256": "b8d498bccebea033df7372788cedc16ff55426934175ba4d75eb1ce7b05616b8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterAction.StandUp/description",
          "source": "Notifies observers that the critter recovered from knockout and stood up",
          "source_sha256": "bb8a0efb2afdca82d9be3507828c3b3392760b173f56ec097f802feb7c6f1de7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterAction.SwapItems/description",
          "source": "Notifies observers about the second item participating in a slot swap",
          "source_sha256": "0c735c0a88d93f7f94e5085227cb52390023e457f830efb01411c390f8a90369",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterActionAnim.DeadFront/description",
          "source": "Requests the front-facing death animation",
          "source_sha256": "4082fe09fbd60cb387e63aa43317c0876d8994c43f9ae48ceccf6fc78caef6aa",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterActionAnim.Idle/description",
          "source": "Requests the standing idle animation",
          "source_sha256": "169ed3e11bf079fac111071fa9b380b48616e37c4eb880eac8844933dda008e1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterActionAnim.IdleProneFront/description",
          "source": "Requests the front-facing prone idle animation",
          "source_sha256": "85f43644fb028c5823083002a95250a4330e94b872702d15a2228b92821ed9ef",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterActionAnim.Limp/description",
          "source": "Requests the limping movement animation",
          "source_sha256": "657716073c33294e97f4c9e6d1990e92b651cc37b4419451eca8bc68911f52c3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterActionAnim.None/description",
          "source": "No action animation is requested",
          "source_sha256": "91910a5c2dc605816747da99ce6acba6f2be1cf496a656fe39cea714686f1c64",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterActionAnim.PanicRun/description",
          "source": "Requests the panic-running animation",
          "source_sha256": "c0df09781d42290bb78cccce7da5892ff699ff144946974d5e2f0601d7daa962",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterActionAnim.Run/description",
          "source": "Requests forward running",
          "source_sha256": "73c9b483babea250e295c9f8237c525c1792ec1ed9d05345fc8c4fd3a35c8a04",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterActionAnim.RunBack/description",
          "source": "Requests backward running",
          "source_sha256": "d6018c597b71630788f4d7a467526af83afc2f29eec3522a6921ce57b2b0f566",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterActionAnim.SneakRun/description",
          "source": "Requests running in the sneaking posture",
          "source_sha256": "fa35693c121833cfff4e630fd5c37391101fff847f38ccdacb89c3243a5e9220",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterActionAnim.SneakWalk/description",
          "source": "Requests walking in the sneaking posture",
          "source_sha256": "933176d920d5661d33e3efeb7fa19dda208892e71c3dd68ec91ce8f8de3b6974",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterActionAnim.TurnLeft/description",
          "source": "Requests an in-place left turn",
          "source_sha256": "5126c17bc6ee2f92332f00693d31d79dc74226a041c7660de88a79a29da72b76",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterActionAnim.TurnRight/description",
          "source": "Requests an in-place right turn",
          "source_sha256": "67e3dde1f5dfebd7d9edd46fb7ce0e2bd8fd82457b57e79edf4f97ce19778ef8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterActionAnim.Walk/description",
          "source": "Requests forward walking",
          "source_sha256": "5d8c617868af65baf6c05962bc0df4d25fea802d1c093c38a5bb95c18cf64596",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterActionAnim.WalkBack/description",
          "source": "Requests backward walking",
          "source_sha256": "fbd03c7b7625e6923da9a1d6fd8dcde2286b074c5cd9baae92bbb02d0cbe0c3c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterCondition.Alive/description",
          "source": "Critter is alive and may perform normal gameplay actions",
          "source_sha256": "2c1a32828e06a34f43e0a500f03f06d6d7930b07f1211e7f1f579c37e4754407",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterCondition.Dead/description",
          "source": "Critter is dead and uses death-state handling and animation",
          "source_sha256": "2171a4dd2100b66616945412b1cc3ce49ff96e57d1e806ad9cb6afb5e76add43",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterCondition.Knockout/description",
          "source": "Critter is alive but incapacitated until it stands up or changes condition",
          "source_sha256": "2c6aea1aa29dbbf5bde42d8da6dcd332d6cae9fb4556180715e45c965bce69de",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterFindType.Any/description",
          "source": "Selects critters without filtering life state or player ownership",
          "source_sha256": "dec829a0dde3de257214c13ed05f53b56fced5a87b05f2b8909f2cc9aeaaa382",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterFindType.Dead/description",
          "source": "Selects dead critters regardless of player ownership",
          "source_sha256": "542ff0b2b04948bd38b9bda51d5277525fa40da7510c6aaafa91afbbc4f1f667",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterFindType.DeadNpc/description",
          "source": "Selects dead non-player critters",
          "source_sha256": "c76f9e15f5788bb1fb841803579d4f8b4f177972f533a4c1fc7769a35f61a1f0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterFindType.DeadPlayers/description",
          "source": "Selects dead player-controlled critters",
          "source_sha256": "bd94649c8adc574d35893cb10b9e6303b5c2b25a5efaa1180f24ed3217071484",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterFindType.NonDead/description",
          "source": "Selects alive and knocked-out critters while excluding dead critters",
          "source_sha256": "a708420d02ec50c6eff0738a43ce7dc59f9db468bd97bb07a723bf442a8857ec",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterFindType.NonDeadNpc/description",
          "source": "Selects non-player critters that are not dead",
          "source_sha256": "42cbf3d6468dbd157a8f88d39263bb6086c1612e72224043e49cbfaad1ff90b4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterFindType.NonDeadPlayers/description",
          "source": "Selects player-controlled critters that are not dead",
          "source_sha256": "f22fa2131e8d4a96ec4dace3e1b23866a6e6582929324b0f27a3beffb82edb34",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterFindType.Npc/description",
          "source": "Selects non-player critters regardless of life state",
          "source_sha256": "1c2ac0b4039d23ca32b6e68125606a51e2da8051f8d4a5f93f23c9391726cc1e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterFindType.Players/description",
          "source": "Selects player-controlled critters regardless of life state",
          "source_sha256": "10cb5eb930b375f7def9ba121813c75865530696580dd0aa9cb548af1651551f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterItemSlot.Inventory/description",
          "source": "Places the item in the critter's unequipped inventory",
          "source_sha256": "fbeaac27c1961ccb925aa9d64e78556633a908856d18012d16daa3644901d79f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterItemSlot.Main/description",
          "source": "Places the item in the critter's main equipped slot",
          "source_sha256": "7e4f3008f63f5f20ba7d8efb4aa46022225a679e81f292e85f41f8fc8e9c35ad",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterItemSlot.Outside/description",
          "source": "Marks the item as outside the critter's owned inventory slots",
          "source_sha256": "1522c8b5e577b92d1ee8fbd3426521a0973ac8ccd5851442d04a663058533987",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterProperty.AttachMaster/description",
          "source": "Identifier of the attachment master; zero when the critter is not attached",
          "source_sha256": "7322c3094e8eed388df1fba240578d7855801138f86b0c715e6941ef08babbe4",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.AttachMaster/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterProperty.Condition/description",
          "source": "Current life-state condition used by animation, filtering, and gameplay queries",
          "source_sha256": "2afcc291a8b5a505cd1930649d35673632251f86ff1ce75de5e9b6ec964f3e33",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.Condition/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterProperty.ControlledByPlayer/description",
          "source": "Classifies the critter as player-controllable independently of its current online state",
          "source_sha256": "6fe4912752db582cec69d3de354ada545935ac26ed477846853ab955c2b5c3c0",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.ControlledByPlayer/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterProperty.CustomHolderEntry/description",
          "source": "For a custom entity, names the holder entry through which it is attached",
          "source_sha256": "1050e666d84a94010a810b27fa9d7f3ad171a30f9a7d8d759bfb66b9dc73a348",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.CustomHolderEntry/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterProperty.CustomHolderId/description",
          "source": "For a custom entity, stores the persistent identifier of its owning holder; zero when the holder has no persistent identifier",
          "source_sha256": "f84e0928a758c5e497d28a042fd88d98879212b1ac2f6931f329526772f507b3",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.CustomHolderId/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterProperty.DeadDrawNoFlatten/description",
          "source": "Keeps a dead critter in the normal critter draw order instead of the flattened dead-critter order",
          "source_sha256": "891621e672774d5264b2ffb1613683cb9ab83fad4f2f877721d48851f40bd601",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.DeadDrawNoFlatten/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterProperty.Dir/description",
          "source": "Current facing direction on the map grid",
          "source_sha256": "ec2df791dfe2567ef28726bdb6eb1631477d238ed40d57f9cfcffaaa445ddede",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.Dir/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterProperty.Elevation/description",
          "source": "Vertical rendering elevation of the critter",
          "source_sha256": "0d356e2b8b3c58596328c573c25bb438a96615db22c714bd5c0e23932af67cba",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.Elevation/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterProperty.ExplicitlyPersistent/description",
          "source": "Marks an entity as independently persistent rather than persistent only through containment by another entity",
          "source_sha256": "909a82b41efa2f84a7e1fd273e8267c3b69fc21f3390ff505defbb973cf11e51",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.ExplicitlyPersistent/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterProperty.GlobalMapTripId/description",
          "source": "Server-assigned identifier shared by members of the same current global-map trip",
          "source_sha256": "150133a813a0a180910efe456a696c997b1e7e0f9e443affb685091d90f2b678",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.GlobalMapTripId/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterProperty.Hex/description",
          "source": "Origin hex currently occupied by the critter on its map",
          "source_sha256": "4673dc90632e2343fafd7d22411b309cb8670c1153963561fbbbf3bf76c08227",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.Hex/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterProperty.HexOffset/description",
          "source": "Sub-hex map-space offset used by movement interpolation and rendering",
          "source_sha256": "d5b05576494249b7957e87938fb0c13671789b2fe9b5b252914a906a3fedc9bc",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.HexOffset/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterProperty.HideSprite/description",
          "source": "Hides the current client map sprite without removing the critter's map presence",
          "source_sha256": "f65ac8e86db89b74cfbdc7b4435eecb83865fb9f2f5c899a1fa9208e9b141445",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.HideSprite/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterProperty.InitScript/description",
          "source": "Server initialization function called after the critter-init event for a newly created or restored critter",
          "source_sha256": "b4b717c3f31356bff2f72d8197f7658746d0b2af05f9fb966c335c9f074412de",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.InitScript/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterProperty.IsAttached/description",
          "source": "Reports that this critter currently follows another critter as an attachment",
          "source_sha256": "b8587bbd99ce1fc420a5c32a110491c986d513981939362dacd32bf490be8d36",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.IsAttached/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterProperty.IsChosen/description",
          "source": "Reports that this critter is the locally chosen critter on the current client",
          "source_sha256": "381e130d01d4c815747cf6091918b078756c0360817a237010518e9b5b3aee79",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.IsChosen/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterProperty.IsPlayerOffline/description",
          "source": "Client-side connection state reported for a player-controlled critter",
          "source_sha256": "f153b3cf89aebef940af174bddc8a7f977265dfc401cd362959b2fc3a9246e71",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.IsPlayerOffline/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterProperty.ItemIds/description",
          "source": "Persistent identifiers of the items directly held in the critter's inventory",
          "source_sha256": "b36a3cf283ea2690381cf7a72659b34381f660c9436d905a97d00694169ed90d",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.ItemIds/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterProperty.LightColor/description",
          "source": "RGBA color emitted by the critter's client-side light source",
          "source_sha256": "88d328cc2723924031ded0647f20671259a644ea8b912439ab1560bf25e463cd",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.LightColor/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterProperty.LightDistance/description",
          "source": "Radius in hexes reached by the critter's client-side light source",
          "source_sha256": "f25441db4ccf37f9477696ec349a9229623d2e1b5d2d1a2a12e1d2f1cb062573",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.LightDistance/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterProperty.LightFlags/description",
          "source": "Bit mask controlling global, inverse, and direction-blocking behavior of the light source",
          "source_sha256": "8046c6aff9fc965d52aa6f346beacf6560ff28bdb8b15e8346f029d6fd0ddbc4",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.LightFlags/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterProperty.LightIntensity/description",
          "source": "Signed percentage intensity of the critter's client-side light source",
          "source_sha256": "f14dfed224d2691eccdc99cd59b5d17080fa909760b4424f94a30b2c9a361c0e",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.LightIntensity/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterProperty.LightSource/description",
          "source": "Enables a client-side map light source centered on this critter",
          "source_sha256": "81799139e0e90b3da0d8ff6cc9c815d3b7c033f5507e7a9d1eaa6e4673557b8c",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.LightSource/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterProperty.LookDistance/description",
          "source": "Maximum map-view distance in hexes used by server visibility processing",
          "source_sha256": "c8034068f82917328834377f3d8b396d9ce4402ba0b433b81cadfbd44f8c031f",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.LookDistance/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterProperty.MapId/description",
          "source": "Identifier of the map currently containing the critter; zero while it is on the global map",
          "source_sha256": "59c6b611b4325b1c6c16dc0993104036c13ddaf388c8b2c22a948c745f285633",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.MapId/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterProperty.ModelLayers/description",
          "source": "Fixed-size client values passed to the 3D model layer and animation resolver",
          "source_sha256": "1d2a56becb527cfd62f862977b11e16a1c119a556c7eec6702746d191b605974",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.ModelLayers/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterProperty.ModelName/description",
          "source": "Sprite or 3D model resource used to present the critter",
          "source_sha256": "69d124a0012e5742bdf62f5aee5c124f95d439b041e250f0006d87511f5ad63d",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.ModelName/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterProperty.MovingSpeed/description",
          "source": "Current server movement speed published for active movement",
          "source_sha256": "f473809fb05663ef513259a86b455e883426981039533dd06e89483977da8c01",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.MovingSpeed/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterProperty.Multihex/description",
          "source": "Radius in hexes occupied by the critter in movement, pathfinding, and distance checks",
          "source_sha256": "8243c8fafcd3fb39b49333e131ef30daff5ed37b5a7dd63c229c8facd67aaf19",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.Multihex/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterProperty.NameOffset/description",
          "source": "Vertical pixel adjustment applied to the critter name label",
          "source_sha256": "c1808ffa3b13587c823c7eef6cab1adc0e5d2d2987c2bc4ef07687ea887f74d2",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.NameOffset/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterProperty.None/description",
          "source": "Sentinel indicating that no Critter property identifier is selected.",
          "source_sha256": "4b56eb71e21f78a70adf66e12cd1c4a95cbc0441226fd986530b8c4d42eb8d7d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterProperty.ScaleFactor/description",
          "source": "3D model scale in thousandths; zero selects the default scale of 1000",
          "source_sha256": "de043ac920f0dcf58b124093ede046063447afb7ad4d69db37585cbf6b868152",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.ScaleFactor/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterProperty.ShowCritterDist1/description",
          "source": "Optional first visibility-event distance in hexes; zero disables this distance group",
          "source_sha256": "f0fa76d680d51b3ca727d663ae6456c87525ae6da02daf967bce05532f3388b4",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.ShowCritterDist1/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterProperty.ShowCritterDist2/description",
          "source": "Optional second visibility-event distance in hexes; zero disables this distance group",
          "source_sha256": "b12e13e50471425a135e4e9f12be606edc4fcf3ae917ba5a6ff5d8d2573b7548",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.ShowCritterDist2/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterProperty.ShowCritterDist3/description",
          "source": "Optional third visibility-event distance in hexes; zero disables this distance group",
          "source_sha256": "3c063f897d07ccd7dc2d66e41a791e0e37c5d6793fa356076deaaade0b0adcfe",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.ShowCritterDist3/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterProperty.VisibilityMode/description",
          "source": "Visibility detail mode assigned to this critter from the current client's viewpoint",
          "source_sha256": "ba9e8d77f08fbaee8cd10f84866c21c5d60edd7a4f0c31ff9af07d0fe57c77fa",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.VisibilityMode/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterSeeType.Any/description",
          "source": "Returns the union of incoming and outgoing critter visibility relations",
          "source_sha256": "b6a79fdabe4c1001b9e574da82c095924259539c3440d3205f2cc23d9c707def",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterSeeType.WhoISee/description",
          "source": "Selects critters currently visible to this critter",
          "source_sha256": "fb489f7937a2c002c7d5061f929a8584374d4b35b5fcce5ba9e79ea56dfc5609",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterSeeType.WhoSeeMe/description",
          "source": "Selects critters whose visibility relation currently includes this critter",
          "source_sha256": "279a033da259bdb84f5e70779b052d81a48e82941f0e85730924cb3bf1763752",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterStateAnim.None/description",
          "source": "No persistent critter animation posture is selected",
          "source_sha256": "3f3de3f7c648e0a869b491075db3d8610d87d361e7283fa236909e168e7ed088",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterStateAnim.Unarmed/description",
          "source": "Selects the unarmed persistent animation posture",
          "source_sha256": "61e8349b4fd0aca8c55657b44a2b4a4b6b147df934aea94bf588a300cf0428e1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterVisibilityMode.Full/description",
          "source": "Forces the target into full visibility for the selected relation",
          "source_sha256": "bcd79a19f2d2192204d82020d48484e286559d76b79b86b5dc2d1413c1d71641",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.CritterVisibilityMode.None/description",
          "source": "Applies no full-visibility override and uses normal perception rules",
          "source_sha256": "adfb7f2f14e6d14ba4734f98e2ea2feb581eab37b642193079555f172d0611ec",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.DisconnectReason.ClientClosed/description",
          "source": "Indicates that the transport reported the peer disappearing; voluntary quit and network loss are indistinguishable",
          "source_sha256": "83865f24c991402559f2c1fae25e51fe38937ab26ba1f76e974eac476a88c005",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.DisconnectReason.InactivityTimeout/description",
          "source": "Indicates that no inbound message arrived before the configured inactivity deadline",
          "source_sha256": "4591d5f2daf43d9d7865770c4c541de58ee8a715331c2123b0580069be0f0fac",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.DisconnectReason.LoginFailed/description",
          "source": "Indicates that login was rolled back after a server-side failure",
          "source_sha256": "509553e637cf3c6204dbf0f67d5695ae5845f2072aef4952fb1678cb9c62af1f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.DisconnectReason.LoginTimeout/description",
          "source": "Indicates that a pre-login connection made no progress before the configured login deadline",
          "source_sha256": "3d8aa070dceee9b2e70958e8c791569fc9d6541335d94a0e41d0a7fa301adcd8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.DisconnectReason.None/description",
          "source": "Indicates that the connection has not recorded a close cause",
          "source_sha256": "3e69cdc59a58ca9a42e771e761bb1a070fabcacb83d764ff10eddfa71598f3c0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.DisconnectReason.PingTimeout/description",
          "source": "Indicates that the peer did not answer the previous server ping",
          "source_sha256": "28379bc8e1de43e5e6abd6977d8efe8cdd7b3e177fae4a88966d99f40b88754f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.DisconnectReason.ProtocolError/description",
          "source": "Indicates malformed or unexpected protocol data or failed connection publication",
          "source_sha256": "d1fb8805edbc1dc95bcef9b2bb51602118734c01a3434f866041abb2f0e175e0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.DisconnectReason.ReplacedByReconnect/description",
          "source": "Indicates that a new login for the same account replaced this session",
          "source_sha256": "ebd419983111f7906eff2205cb0db3ef0b2229bcfefbde6d510b415dc1d2fb1f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.DisconnectReason.ScriptRequest/description",
          "source": "Indicates that server script called Player.HardDisconnect()",
          "source_sha256": "9d53323ab89205ed876645b867fd9475a609890bf0b8ed501beddea97d595e53",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.DisconnectReason.ServerShutdown/description",
          "source": "Indicates an orderly server shutdown",
          "source_sha256": "9b97c9ca040971e958c74273b3352411ccb747eade8441ec54d6aa099db2e89d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.DisconnectReason.UpdaterError/description",
          "source": "Indicates that the client requested an invalid updater file or range",
          "source_sha256": "343962a38db9bfc240e4476a974c632bf38515fa980b29e2655458ab568a1128",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.DrawOrderType.AfterLight/description",
          "source": "Primitive layer rendered immediately after map light accumulation",
          "source_sha256": "52e4ba608d9289eed440a221d1c2acc68d32e316d02a207a0542e5c005d88ab2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.DrawOrderType.Critter/description",
          "source": "Depth-sorted critter layer",
          "source_sha256": "c5f8f68567049d3ddbd89cf46ac00fc782b3522cbb934fbb085813a614508296",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.DrawOrderType.DeadCritter/description",
          "source": "Flat dead-critter layer rendered after lighting",
          "source_sha256": "618bbcb95079a6ccf181f1bdfb195c370324e3591eb84bdf49ab98a66bfd55cf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.DrawOrderType.FlatEnd/description",
          "source": "Upper ordering boundary for flat post-light sprites",
          "source_sha256": "98dcc422bb2998250a885ee13a00c00e62ddf5a55715518ef94fcea7d73359bc",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.DrawOrderType.FlatItemAfterLight/description",
          "source": "Flat item layer rendered after map lighting",
          "source_sha256": "d135a431cb99710a32a91de2df6486d99d9f602a70a02a628e3e921ea7d46cb4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.DrawOrderType.FlatItemPreLight/description",
          "source": "Flat item layer rendered before map lighting",
          "source_sha256": "5a75dfa86873bd757345670b23a616c4e248ec4cc93a6e591af44543caa03fbe",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.DrawOrderType.HexGrid/description",
          "source": "Hex-grid overlay layer rendered before lighting primitives",
          "source_sha256": "953c10fce3597b25e4a17b5406ecccce6f2033b8ca8e6f978ef40c1810366848",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.DrawOrderType.Item/description",
          "source": "Depth-sorted normal item layer",
          "source_sha256": "0bfa19c6c71c8e4372110d3c3322ffaea2378e31182161c735cd2e6623119862",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.DrawOrderType.Last/description",
          "source": "Highest valid draw-order marker reserved by the map-sprite sorter",
          "source_sha256": "5ea300647d06dd38e2316395a22302188c3a72e0e0e7c438ff2e9411ce463576",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.DrawOrderType.Light/description",
          "source": "Map light accumulation layer",
          "source_sha256": "e3ba890aa6076eca1d7dffe58343bcd25b754316073f3799f878e10b3631b6a8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.DrawOrderType.NormalBegin/description",
          "source": "Lower ordering boundary for depth-sorted normal sprites",
          "source_sha256": "a70992a63512d055225576632d19f512e73d04925a1d98d3154e6dab5ccf28a1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.DrawOrderType.NormalEnd/description",
          "source": "Upper ordering boundary for depth-sorted normal sprites",
          "source_sha256": "997314c35b9b6be2aa58c7dde5e02a2377c59b4d6edbbe56845bcf7ffbbc1df3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.DrawOrderType.Particles/description",
          "source": "Depth-sorted map-particle layer",
          "source_sha256": "4982424aae571316d68772c6041d5b7eb7d6ab87dbe4cfb543a7beda785fc4d6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.DrawOrderType.PreLight/description",
          "source": "Primitive layer rendered immediately before map light accumulation",
          "source_sha256": "25568c62a19961851f9cf024e97d736a23c6f014d9739f04421ed219c3b18b50",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.DrawOrderType.Roof/description",
          "source": "Base roof-sprite layer",
          "source_sha256": "c20d9fa470fdc1242a6078998ece26dd8cc13a84351eba4ea0db96589af49fc5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.DrawOrderType.Roof1/description",
          "source": "First additional roof-sprite layer",
          "source_sha256": "74d38e82321c69a26bea162f3294d2a0ae9b42bf4f297faeb5e3bcb129dfeed1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.DrawOrderType.Roof2/description",
          "source": "Second additional roof-sprite layer",
          "source_sha256": "cee5b1396daec8107db260629641912be837447cbbe91de1a79d12336bc4583b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.DrawOrderType.Roof3/description",
          "source": "Third additional roof-sprite layer",
          "source_sha256": "663532cf110a1e2acb7484e700c679c946aad480a93d24fce43a5f0e505a4055",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.DrawOrderType.Roof4/description",
          "source": "Fourth additional roof-sprite layer",
          "source_sha256": "bacbaa8d03903b2448fef49e052dbde6181ec113946d46561a37fb04d18f9a58",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.DrawOrderType.RoofParticles/description",
          "source": "Particle layer rendered with roof sprites",
          "source_sha256": "658093a715c206f880fb55d1e512abcf1565431ccca7891bd8a7c8200f32ffff",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.DrawOrderType.Tile/description",
          "source": "Base flat tile layer rendered before map lighting",
          "source_sha256": "1b044f84d09d4bd276a824a25529cab6ded51f43982720ccefe4574efc7a06cd",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.DrawOrderType.Tile1/description",
          "source": "First additional flat tile layer rendered before map lighting",
          "source_sha256": "efc49f19287c4839e0dee3e095034a42563a0bc48ac35eabb0f6b5abc02af5e4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.DrawOrderType.Tile2/description",
          "source": "Second additional flat tile layer rendered before map lighting",
          "source_sha256": "cc0656a9c90f46b0fcc5445350bca3c9670596ff39290ed68981dc3f0aff695a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.DrawOrderType.Tile3/description",
          "source": "Third additional flat tile layer rendered before map lighting",
          "source_sha256": "9d064b188bd16459b2dca8b23bcee1a787120740470b9a1ea7f11191bb94622d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.DrawOrderType.Tile4/description",
          "source": "Fourth additional flat tile layer rendered before map lighting",
          "source_sha256": "3b375c4ee12a86fecc8587f6998ba90cca215e0ddb619e5e71faea6affbcf707",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EffectType.CritterSprite/description",
          "source": "Replaces the default critter-sprite effect or one map critter's draw effect",
          "source_sha256": "308b366faf86ecfef278499d7c76e9c119b200c12316024045de27ed34fe6d17",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EffectType.FlushFog/description",
          "source": "Replaces the effect used to composite the fog buffer",
          "source_sha256": "55f8c92c3032df82d70e045cab2b775b25ff7dc7a4446a01416fdf49e508a872",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EffectType.FlushLight/description",
          "source": "Replaces the effect used to composite the light buffer",
          "source_sha256": "bfca97982763cc8e6d933cd27026c91f5c1e07f563921b8efb2985073c63e834",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EffectType.FlushMap/description",
          "source": "Replaces the effect used to composite the rendered map",
          "source_sha256": "8f45f8d8e2dbcfe4bef5aa453bfbd19d930be7bcad373f2ce8f61daeb2184cea",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EffectType.FlushPrimitive/description",
          "source": "Replaces the effect used to flush primitive rendering",
          "source_sha256": "fb350e7acb04985c64d86e73a659ad3750498e3ea9f7087d372995b91143aab1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EffectType.FlushRenderTarget/description",
          "source": "Replaces the effect used to flush a render-target texture",
          "source_sha256": "406801fdf39f2a2d97a50397708a016af1410e76e9b086dcaab14458932f401e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EffectType.Fog/description",
          "source": "Replaces the primitive effect used for map fog rendering",
          "source_sha256": "a3e899c15001b7a81eca01f5a8aafdf3abced72dc7eb3b4e91d5f8b6450b8a31",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EffectType.Font/description",
          "source": "Replaces the default font effect or the effect of one font slot selected by subtype",
          "source_sha256": "3c321dfc321a0f7553374d3ec402c4253d7f9bee1e81015f93385623707e6dea",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EffectType.GenericSprite/description",
          "source": "Replaces the default generic-sprite effect or one map item's draw effect",
          "source_sha256": "7d64b3e121a5af5e838691f471de273b835e395ac09eaab6d1b1e818342e8e86",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EffectType.Interface/description",
          "source": "Replaces the default interface-sprite effect",
          "source_sha256": "5227b893c6753d457c7b587ca3e03d66623d19a1e2312e1c5a883f6832633914",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EffectType.Light/description",
          "source": "Replaces the primitive effect used for map light accumulation",
          "source_sha256": "c0caeb146a30061950cd2a0b31d7923e95e4b727f4ad618cbc210b8450885ed3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EffectType.None/description",
          "source": "Selects no effect category",
          "source_sha256": "6a843d69f37b27abefda344b11716fbcd678af0770c8a2e528da1e8fa84cd8bf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EffectType.Offscreen/description",
          "source": "Registers the effect in an indexed offscreen-effect subtype slot",
          "source_sha256": "0e08b083a12b471ad8c239ec0bd337a3b289a366ba824f23ce410dc34b849900",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EffectType.Primitive/description",
          "source": "Replaces the default generic primitive effect",
          "source_sha256": "d0bd44668007c09b4e3116bd40d05bf88c86ff6b01f1df32548531e10cc8d5c6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EffectType.RainSprite/description",
          "source": "Replaces the default rain-sprite effect",
          "source_sha256": "341dfb4997da499135264dddbedc571c55fdc82bf52013d3850865dde4e3525f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EffectType.RoofSprite/description",
          "source": "Replaces the default roof-sprite effect",
          "source_sha256": "11d1d35f3d00ca19dbec72ab31f225de65d1fac69cb3c7d7e208340f05a80977",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EffectType.SkinnedMesh/description",
          "source": "Replaces the default skinned-model effect when 3D rendering is enabled",
          "source_sha256": "48a706e5d6efd3beae87cb6a3d2bd16c7f0671d1d8d5ed9e72093850c3353ca6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EffectType.TileSprite/description",
          "source": "Replaces the default flat tile-sprite effect",
          "source_sha256": "90f6825666bec00c949c04c9cc7c55388db1d1f527cb2ef843b42959fdf5f9cf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EggAppearenceType.Always/description",
          "source": "Applies a valid transparency-egg mask regardless of relative map hex",
          "source_sha256": "0531945f80ac5d3d3a2c0fad7105500b9b25b57fc8abef10cb1244806429fe0d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EggAppearenceType.ByX/description",
          "source": "Applies the mask when the sprite hex X is at or beyond the egg hex X",
          "source_sha256": "9ecfdc915f41fecb4878fc4780cf9a873ad50fb5b17e73696800d3de9eb786a4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EggAppearenceType.ByXAndY/description",
          "source": "Applies the mask when either adjusted X or Y is at or beyond the corresponding egg coordinate",
          "source_sha256": "2f0c92386009d442572a55e1f4a782fcfa0bdda7757d8fd81e04dca5712d47a2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EggAppearenceType.ByXOrY/description",
          "source": "Applies the mask only when both adjusted X and Y are at or beyond the corresponding egg coordinates",
          "source_sha256": "72452fc0194b9676ee4bd65092beafdd1cb15d5f6574228049fb898d00fd6ba2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EggAppearenceType.ByY/description",
          "source": "Applies the mask when the sprite hex Y is at or beyond the egg hex Y",
          "source_sha256": "9cc6ac5b71bcb76adcd44b164e0229d145b6226b0e1935d49fedac00796bfd96",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EggAppearenceType.None/description",
          "source": "Never applies a transparency-egg mask to this sprite",
          "source_sha256": "09f0b5d515ec98285f34972915333c1c0a4c0d6b5b94112022ea52a8cc2cae6e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.KickedFromGame/description",
          "source": "Identifies forced removal of the player from the active game session",
          "source_sha256": "406317fa3b3e8785386eca5e748039f7cb66ea2ab42d45b72a6f6cdf074552a2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.NetBan/description",
          "source": "Identifies the primary notification that the player or account has been banned",
          "source_sha256": "cdbf0e5bc6fd1ad66ebc67f0ccd439c363dd072b1f30624d89da446a6d10377d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.NetBanReason/description",
          "source": "Identifies detailed ban metadata such as issuer, duration, and reason supplied by the project",
          "source_sha256": "ce44c7b4c6c20da34b545afe0ff3238797245b6c1b4e9d68e19da6f5e43066d1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.NetBanned/description",
          "source": "Identifies an account that is blocked from logging in",
          "source_sha256": "c379508c75e189132b3a048b4c0d8cb4ab3e67f92a120487f24d512ed95305e5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.NetBannedIp/description",
          "source": "Identifies a connection rejected because its source IP address is blocked",
          "source_sha256": "8c1542ac66f62043ece60cc21170c6cb1a47f2b7905ee2126b3f3bef64e6edbd",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.NetBdError/description",
          "source": "Identifies a backend database failure while processing the requested account or game operation",
          "source_sha256": "bb3aba5856526335746a49ff79e07dc70afd6ac7ffd603270b99ce6854753164",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.NetBeginEndSpaces/description",
          "source": "Identifies a name rejected because it begins or ends with whitespace",
          "source_sha256": "0eee5840299bc045b003b1606f76a6bc78ee5454097c0b1d3e00bd7320d1d329",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.NetConnError/description",
          "source": "Identifies a generic connection error after a connection attempt or active session failure",
          "source_sha256": "91b72819cfc46d098870cd01da698c38861bbf4ea34100dd26a6b7b252b30c4a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.NetConnFail/description",
          "source": "Identifies failure to establish a connection to the game server",
          "source_sha256": "a51b16eccc1b67dfec8826315482a179fe3fcace76fc4299041859458254cded",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.NetConnSuccess/description",
          "source": "Identifies successful transport connection before or during authentication",
          "source_sha256": "f6d0c65cdd56a42fdc7e45e0ad2a2a99a8adcebff11f8065f5f91c4d9807c3ad",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.NetConnection/description",
          "source": "Identifies the client status while it is initiating a server connection",
          "source_sha256": "265deb91504a587b902920044ec9f8233d4f09be04650a50d4e06a6e2a559540",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.NetDataTransErr/description",
          "source": "Identifies an error while transferring or decoding connection data",
          "source_sha256": "12859a3e45215aba0967c1de9c1f43c6a5ce78bffce6254930eab174041b930e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.NetDifferentLang/description",
          "source": "Identifies a name rejected for mixing characters from different language alphabets",
          "source_sha256": "29d20422c296574c15f038d3e8215442b878a3d634529b479184992fca24382f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.NetDisconnByDemand/description",
          "source": "Identifies a disconnect requested explicitly by the player or client",
          "source_sha256": "375b010d69ad80753f8d7f216280772b4ac8bb0dffe7230f6df867b1c750f834",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.NetFailRunStartScript/description",
          "source": "Identifies client startup failure while executing the project's start script",
          "source_sha256": "8d5dac1827bc31bfe743e0c68143c57e23c94e09708aa6f066761f9dd6cb7089",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.NetFailToLoadIface/description",
          "source": "Identifies client startup failure while loading the user interface",
          "source_sha256": "60b585dd1f1b5bbad81aad0b615bd0996eb88e1c23b8abfb879dc4e03b820c34",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.NetHexesBusy/description",
          "source": "Identifies entry or spawning rejected because the required destination hexes are occupied",
          "source_sha256": "1963bc2568864668033ea71c9f4439f633aee883d5051ad7a4b9a5c749defa4b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.NetKnockKnock/description",
          "source": "Reserves the legacy knock-knock informational slot; embedding scripts define its concrete liveness or status use",
          "source_sha256": "45bf8646045ee94f5c9124ba856ba07afec2f5c2a583fc2140131c99a8a27a7d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.NetLanguageNotSupported/description",
          "source": "Identifies an unsupported selected language and the need to use a project-defined fallback",
          "source_sha256": "facf027e3a6576b2a19791727e2a55895af78ff6314ad6453466d6b3bc44e1b8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.NetLoginOk/description",
          "source": "Identifies successful authentication and transition to game-state or map loading",
          "source_sha256": "f75c83e3147bc17541cedf11e3e66f2e026f12e8d88bcdb778684e42aab95506",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.NetLoginScriptFail/description",
          "source": "Identifies authentication rejected because a project login script failed",
          "source_sha256": "f927d6606f11a61d1cc682ba43169cae8d4d19646a3dd4ac73dd3fb5a9da62af",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.NetManySymbols/description",
          "source": "Identifies a name rejected because too much of it consists of non-letter symbols",
          "source_sha256": "2e61d26e79e1670bdd5c67eaf03e006efc733b76bf1b995831066b598da8b66c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.NetNameWrongChars/description",
          "source": "Identifies a name containing characters forbidden by the project's account policy",
          "source_sha256": "eaf37ab3774f46129f9615dffeecd1490a4974275082fd77fd37624148c4c1fb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.NetNetMsgErr/description",
          "source": "Identifies a malformed, invalid, or otherwise unacceptable network message",
          "source_sha256": "4effe640ee91ba23770af5aa9c531a1172f5d20215c5ba4b2aeca1fee639f814",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.NetPassWrongChars/description",
          "source": "Identifies a password containing characters forbidden by the project's account policy",
          "source_sha256": "e9e9ed3b33d82adb6770650d821957d12a3f6b5a2a9244d8bbf5b6a0703b8763",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.NetPermanentDeath/description",
          "source": "Identifies a project-defined permanent-death state that prevents continuing with the affected character or account",
          "source_sha256": "f694b17f68cd25e085c66e5d08ba0fcbd1dc228c6d6b159544c051a99bfb63ec",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.NetPlayerAlready/description",
          "source": "Identifies account creation rejected because the requested login already exists",
          "source_sha256": "23c7c421e3b472daf2a54a883eed7cb8888c52a6eb89ea21568b964ddc380876",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.NetPlayerInGame/description",
          "source": "Identifies login rejected because the account already has an active game session",
          "source_sha256": "17e47a0bb055c499a0887c3771c7c1a84bdf9b9d9010486b13902b4fb3d156af",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.NetSetProtoErr/description",
          "source": "Identifies an internal server failure while assigning or initializing required prototype state",
          "source_sha256": "144e6d86eac5db865417020e84007d18ba6a33aa2efd04dd502c0a714023fc38",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.NetStartCoordFail/description",
          "source": "Identifies failure to resolve starting map coordinates during player entry or creation",
          "source_sha256": "9160718c42a92570408097286a66bccf6d9352a1427e1d3f91f216d13136b730",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.NetStartLocFail/description",
          "source": "Identifies failure to resolve the starting location during player entry or creation",
          "source_sha256": "c8bdd3f8abef88d8f563dc78275d814d247ad37478acf89ed383aa9150303efd",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.NetStartMapFail/description",
          "source": "Identifies failure to resolve the starting map during player entry or creation",
          "source_sha256": "cccbf7165681d73dca8aa147b37ffa340aa346ea9040027f04189f57202d27a6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.NetTimeLeft/description",
          "source": "Identifies a temporary restriction or session timer whose remaining duration is supplied by project text or extra data",
          "source_sha256": "ec06ea5fee438b9893c9231ef59a92a0c2e9a04b14943cee564d7539e49bd887",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.NetTwoSpace/description",
          "source": "Identifies a name rejected because it contains consecutive spaces",
          "source_sha256": "9921992775c2e2fa54d02c5b16edb4a4ff462a3f32f9a24f52da007e28a1592d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.NetWrongLogin/description",
          "source": "Identifies a login rejection caused by an invalid account or login identifier",
          "source_sha256": "9accd009c64135fab0bd362f5010ab8262af89fbdb5d63886544deb55856ca5a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.NetWrongNetProto/description",
          "source": "Identifies a client/server network-protocol version mismatch",
          "source_sha256": "3ac085e5a374aa308192997dcc7705b9859d426f9c35fe8aa9c34856920612de",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.NetWrongPass/description",
          "source": "Identifies a login rejection caused by an invalid password or equivalent authentication secret",
          "source_sha256": "b212b5d0189060924c3c03931ab78095de7e0024b05c0d4250f5b7bb031d0fb5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.NetWrongTagSkill/description",
          "source": "Identifies character creation rejected because the required tagged-skill selection is invalid",
          "source_sha256": "c1125e2a85249573f64e6d4a38ecf3923f187fa3a4a2cb54f5a9ff80e54677d9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.None/description",
          "source": "Selects no conventional engine information-message slot",
          "source_sha256": "217bcd08c3da2b86cf409d83064dad576d81a9ccb04971dfa3197b746fcd8166",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EngineInfoMessage.ServerLog/description",
          "source": "Identifies a server-log message whose reader-facing payload is carried in extraText",
          "source_sha256": "c6a51cb9c6d8a67cf3d3a8250ad6ca69e5a1259a19cc0ede9bcc04d0d9a17f61",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EventPriority.High/description",
          "source": "Runs after the highest callback and before normal-priority callbacks",
          "source_sha256": "e2a58642b258c377d35f95123c0000afb4cf2e2503fabb4a253bacaa3a361ff2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EventPriority.Highest/description",
          "source": "Runs before callbacks with lower numeric priority; only one callback may occupy the highest band",
          "source_sha256": "55b66c613a6f78b210c0e7ba1fb7d63715a9965fa25e3d4663fb0709e3b54876",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EventPriority.Low/description",
          "source": "Runs after normal-priority callbacks and before the lowest callback",
          "source_sha256": "ceeb82caeb1eb2419fc776c87a8a42cef874136bc4d94788a214df15961bae73",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EventPriority.Lowest/description",
          "source": "Runs after callbacks with higher numeric priority; only one callback may occupy the lowest band",
          "source_sha256": "48f1a38d75c08d77d25a7ec3aefb1cbd2c724548c8d4e40f7e94eb427cf6a4db",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EventPriority.Normal/description",
          "source": "Default callback priority between the low and high bands",
          "source_sha256": "64cf5b12b3a164e08634bd7d62b2ab9eac65b3c4fee01f552a0f9a793bf751f2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EventResult.ContinueChain/description",
          "source": "Continues dispatching callbacks with lower priority",
          "source_sha256": "b9f31bda976bc625d018785e2cb763bbfad01c20c0949e5c7eaba1a4af595a00",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.EventResult.StopChain/description",
          "source": "Stops the current event callback chain immediately",
          "source_sha256": "8037b1ee3ed4e04b6baec6d7a074023b9de69385278c51aa509aeb457e8f6d2e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.FontFlag.AlignBottom/description",
          "source": "Aligns the text block to the bottom and makes SkipLines count from the trailing lines",
          "source_sha256": "513d7201eea78346ce4030103c06ca2991b9d080d8ce025946d1c148f39d42b9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.FontFlag.AlignRight/description",
          "source": "Right-aligns each rendered line within the target rectangle",
          "source_sha256": "74880511cbb07441c8cf9481f73561a82ce031b4072488daa49ae801bd92a4d0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.FontFlag.Bordered/description",
          "source": "Uses the bordered or outlined font-texture variant for glyph rendering",
          "source_sha256": "94d7f3ce88ec56bf93cdc0c74cde5b9ffc87daf67a281068e619a0adb3375c8c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.FontFlag.CenterX/description",
          "source": "Horizontally centers each rendered line within the target rectangle",
          "source_sha256": "be5a016a0b1884ae287fd0d0eaf02ed1905cbe743a9d89de5b0bbc555e91bc94",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.FontFlag.CenterY/description",
          "source": "Vertically centers the complete text block within the target rectangle",
          "source_sha256": "2aecbbbfd0a49701a67a08b8ff5f7551491ec40aa41c06d055c299553ea61bf8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.FontFlag.Justify/description",
          "source": "Distributes extra spacing between words to fill each line's target width",
          "source_sha256": "3049ebc7d74dbd529492e1c3f45d5a94a95482bccd8acb9fbcfb10ba8a881104",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.FontFlag.KeepTail/description",
          "source": "Renders the tail of a text block that is taller than the target rectangle",
          "source_sha256": "ff65b0059e9d2448bf57bdccf1e3a7275efaa218fd1d2d4fd33a8635a9ddb6e8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.FontFlag.NoColorize/description",
          "source": "Removes inline color tags while retaining the supplied base text color",
          "source_sha256": "d0f8573e60475155327a341aa2a04301162aa5376889afee63865a7fc7d52c18",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.FontFlag.NoWrap/description",
          "source": "Truncates the remaining text at rectangle-width overflow instead of wrapping it",
          "source_sha256": "3db8d394413fd609166b9247a9843990220fac89d125529b7ca6528ffcb8f4be",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.FontFlag.None/description",
          "source": "Applies no optional text-layout or glyph-rendering flags",
          "source_sha256": "11355563da99f242b04c37a32ac97244bc567c0f80e51bb170defad333369aff",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.FontFlag.TruncateLine/description",
          "source": "Skips overflowing glyphs through the next newline instead of wrapping the current line",
          "source_sha256": "b02ef1429a24fd98dd060e4892f5ce16d02f829be5a2c8496bd25895ec7140e8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.FontType.Default/description",
          "source": "Built-in default font slot used when no project-defined slot is selected",
          "source_sha256": "1540de2e20060c310daa1e3f4faa6abf72dbce39df7189d3394189193d69420b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.GameProperty.CustomHolderEntry/description",
          "source": "For a custom entity, names the holder entry through which it is attached",
          "source_sha256": "1050e666d84a94010a810b27fa9d7f3ad171a30f9a7d8d759bfb66b9dc73a348",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.CustomHolderEntry/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.GameProperty.CustomHolderId/description",
          "source": "For a custom entity, stores the persistent identifier of its owning holder; zero when the holder has no persistent identifier",
          "source_sha256": "f84e0928a758c5e497d28a042fd88d98879212b1ac2f6931f329526772f507b3",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.CustomHolderId/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.GameProperty.ExplicitlyPersistent/description",
          "source": "Marks an entity as independently persistent rather than persistent only through containment by another entity",
          "source_sha256": "909a82b41efa2f84a7e1fd273e8267c3b69fc21f3390ff505defbb973cf11e51",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.ExplicitlyPersistent/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.GameProperty.FrameDeltaTime/description",
          "source": "Elapsed monotonic time between the current and previous frame advances",
          "source_sha256": "80b962a4dafcdc037c383b89a00f41a366509487ff4d8dc9a55c1e33185d1b60",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Game.FrameDeltaTime/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.GameProperty.FrameTime/description",
          "source": "Monotonic engine time captured for the current frame",
          "source_sha256": "4ac1adaf0ecb932d611fde730016a70376e7106562925745fdb1d61cc4b8df33",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Game.FrameTime/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.GameProperty.FramesPerSecond/description",
          "source": "Frame count measured during the most recently completed one-second sampling interval",
          "source_sha256": "af7bcd808b483f6ba7ba99c5cb433354ca787d0805e517296552e9d66a7b18f1",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Game.FramesPerSecond/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.GameProperty.GlobalDayTime/description",
          "source": "Current position of the global day-light cycle, measured in minutes and controlled by game scripts",
          "source_sha256": "48b727c407fd07178ba3edb0eb1b8cb786cd993ac01eacc11393f49db28fbb7a",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Game.GlobalDayTime/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.GameProperty.HistoryRecordsId/description",
          "source": "Persistent high-water mark used to allocate server history-record identifiers",
          "source_sha256": "04fcda552bf4bc32e4565732e5d7f56670f4592df70a4d7217559518c448d04e",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Game.HistoryRecordsId/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.GameProperty.LastEntityId/description",
          "source": "Persistent high-water mark used to allocate durable entity identifiers",
          "source_sha256": "33c99a5565bd0372c65279444d594e7009d4d7c0b5c56975b92e55d9ef098157",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Game.LastEntityId/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.GameProperty.LastGlobalMapTripId/description",
          "source": "Last server-assigned identifier for a global-map trip",
          "source_sha256": "f4713b13d34c539e17b09f7c87720671fa595feb006f13739d920c4bfed419e2",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Game.LastGlobalMapTripId/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.GameProperty.None/description",
          "source": "Sentinel indicating that no Game property identifier is selected.",
          "source_sha256": "364b5adb2e1b04cb54a8d5b8ad9b38a20b18129bdd01a1c5f972564ea434db31",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.GameProperty.SynchronizedTime/description",
          "source": "Current synchronized game time shared by the server and clients and persisted by the server",
          "source_sha256": "b3b19825ecbf47932380edbc656ddb32ec464f78f78095ebbce4d777410e3dd9",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Game.SynchronizedTime/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGuiProperty.CustomHolderEntry/description",
          "source": "For a custom entity, names the holder entry through which it is attached",
          "source_sha256": "1050e666d84a94010a810b27fa9d7f3ad171a30f9a7d8d759bfb66b9dc73a348",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.CustomHolderEntry/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGuiProperty.CustomHolderId/description",
          "source": "For a custom entity, stores the persistent identifier of its owning holder; zero when the holder has no persistent identifier",
          "source_sha256": "f84e0928a758c5e497d28a042fd88d98879212b1ac2f6931f329526772f507b3",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.CustomHolderId/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGuiProperty.ExplicitlyPersistent/description",
          "source": "Marks an entity as independently persistent rather than persistent only through containment by another entity",
          "source_sha256": "909a82b41efa2f84a7e1fd273e8267c3b69fc21f3390ff505defbb973cf11e51",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.ExplicitlyPersistent/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGuiProperty.None/description",
          "source": "Sentinel indicating that no ImGui property identifier is selected.",
          "source_sha256": "67d9fe7e4ff4aa66cd1e2a89978d0ff5d564f9861afb8828a5331126b0faca3e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ButtonFlags.EnableNav/description",
          "source": "InvisibleButton(): do not disable navigation/tabbing. Otherwise disabled by default",
          "source_sha256": "3f9634633ea54bda5bd97a714252d86e940d551f3d43fd862c3c75c937c46ca9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ButtonFlags.MouseButtonLeft/description",
          "source": "React on left mouse button (default)",
          "source_sha256": "a7c2d8f71bdcfabeb8d1adea347507415e7d2c2b067f4b6d8977f4e3ff76598a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ButtonFlags.MouseButtonMiddle/description",
          "source": "React on center mouse button",
          "source_sha256": "be7476c52a888170f5da7a3d10810425fddb6e408792e6e164b217151e61a42e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ButtonFlags.MouseButtonRight/description",
          "source": "React on right mouse button",
          "source_sha256": "dca63ef01bd56be2bd8d7692ef6b98ef618ce8c775809a825a2186510c83882b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ButtonFlags.None/description",
          "source": "Applies no optional low-level button behavior flags",
          "source_sha256": "19ba357072bb2f5be4a93a1125c37c6e75b6bd42221181e3521dcfeed2c5b188",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ChildFlags.AlwaysAutoResize/description",
          "source": "With automatic sizing enabled, measures hidden content, always reports the child as visible, and disables clipping optimization; this expensive mode is not recommended for routine use",
          "source_sha256": "26a78d652f408ec4a6f5c5eca3eda05209d65572e367c0158f3304264856e728",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ChildFlags.AlwaysUseWindowPadding/description",
          "source": "Uses style.WindowPadding even when the child window has no border",
          "source_sha256": "865c15cc76099feb5df58dcd7f46da867847a02692baa9a8c8f18a46f8ee231c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ChildFlags.AutoResizeX/description",
          "source": "Derives the child-window width from its measured content",
          "source_sha256": "657cb7dbfe654bb892d085e45d66f6b87730363291136d8840cf60ad4a3b9603",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ChildFlags.AutoResizeY/description",
          "source": "Derives the child-window height from its measured content",
          "source_sha256": "960b198dc85aa89307e3e229ee9660418cad7e8ff00baeb5ec69e1722406a6ea",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ChildFlags.Border/description",
          "source": "Draws an outer border and enables the child window's standard window padding",
          "source_sha256": "2152cb324e45b421eef718f7d14f427e3e81eadd54cfcb04dc5d19eafa476ec5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ChildFlags.FrameStyle/description",
          "source": "Styles the child window as a framed item by using frame colors, rounding, border size, and padding",
          "source_sha256": "3d47cd192d36ced34cd15768e62e687bde388f2ad18a3541368c2e74ff862274",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ChildFlags.NavFlattened/description",
          "source": "Beta behavior that shares focus scope and allows keyboard or gamepad navigation across the parent border and sibling child windows",
          "source_sha256": "71c1bb9a490193236fe5fa6e5b09ff7ea0c27e78ea5151cae78fdb5bdb0175df",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ChildFlags.None/description",
          "source": "Applies no optional child-window behavior flags",
          "source_sha256": "1e590ec5c06752b9211e5f37af70a0978a61955d6a83faa896ef5542bafe0c0a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ChildFlags.ResizeX/description",
          "source": "Allows resizing from the right layout border and persists the width unless window settings are disabled",
          "source_sha256": "164a9c39f36d886c2f186cec51c3da5f2543340d4bf15d85447089ec76b232a3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ChildFlags.ResizeY/description",
          "source": "Allows resizing from the bottom layout border and persists the height unless window settings are disabled",
          "source_sha256": "681fdb8ecf6fb3b68b4f3629f396dfcbffcb2956f9d575f4389ba3dbb0f9321d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Col.Border/description",
          "source": "Selects the border color slot for windows, child windows, popups, and framed widgets",
          "source_sha256": "65bc8cb20315a6cecaa495928a520eb4161ea2df7659389dfe4fedffba8f8e66",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Col.Button/description",
          "source": "Selects the normal button color slot",
          "source_sha256": "a7cc68b98aab6fd6063ced5fadd5fcc8aa4e4ccfe201ca91aae26b631c233c27",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Col.ButtonActive/description",
          "source": "Selects the active button color slot",
          "source_sha256": "156c6b5e7f9ac70973011b0a1d0ea3872dbb498f78d432c3964198d8d5b3b40a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Col.ButtonHovered/description",
          "source": "Selects the hovered button color slot",
          "source_sha256": "e4e913db4d95362701f3a2b78c9839bc54e3db27937dca2fbf915d96f5b2706d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Col.CheckMark/description",
          "source": "Checkbox tick and RadioButton circle",
          "source_sha256": "fdf6d15ef4e100fc0e0cabb3d70ebd220f5fb77cb651db78ffd8720a0dcc9abf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Col.ChildBg/description",
          "source": "Background of child windows",
          "source_sha256": "6159ed3b86695292c6ec7919df5a3706397c4529f54aac49f7071828e30b438f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Col.FrameBg/description",
          "source": "Background of checkbox, radio button, plot, slider, text input",
          "source_sha256": "d1b04006d146e8d37ca51a6ee31f42f4e8b5984179a8b3165ba1509f5a47c03d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Col.FrameBgActive/description",
          "source": "Selects the frame background color slot while the frame is active",
          "source_sha256": "6dbab7092e2963353c30002097706aa9924cc7d787d565994abcc652cc58262f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Col.FrameBgHovered/description",
          "source": "Selects the frame background color slot while the frame is hovered",
          "source_sha256": "5f7ea97942ca21d02eea8566aaf1abfb924b1d55ac5f80f663ba2196a0334b1f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Col.Header/description",
          "source": "Header* colors are used for CollapsingHeader, TreeNode, Selectable, MenuItem",
          "source_sha256": "47926df2d73c0dda7ffad2759ffb60e7c0fb20f77e8b5a4cba8772ffff443a14",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Col.HeaderActive/description",
          "source": "Selects the active header color slot used by headers, tree nodes, and selectables",
          "source_sha256": "9d9d3676904a30ea7f5cc9380b298babb7ffea4fb1bf4f5f27ea4f27de99340b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Col.HeaderHovered/description",
          "source": "Selects the hovered header color slot used by headers, tree nodes, and selectables",
          "source_sha256": "d2a551d048fa70b7c96cbfd1db1bebe05466890eec24b0c693b46b03c5679e2c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Col.MenuBarBg/description",
          "source": "Selects the menu-bar background color slot",
          "source_sha256": "a6b72eb105a0e9ae74e4834a46eccf7ef3d345bf78e6bfaa9962f2ecfa3b2f44",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Col.PopupBg/description",
          "source": "Background of popups, menus, tooltips windows",
          "source_sha256": "4cb222db67bdf6228ceb497cb25b09f426af9d4b2d1384474cebd73cb8929340",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Col.ResizeGrip/description",
          "source": "Resize grip in lower-right and lower-left corners of windows",
          "source_sha256": "c347473002c43da758e8779f389353ff5ad6412ea43fc5e6856d9d19693291e1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Col.ResizeGripActive/description",
          "source": "Selects the active resize-grip color slot",
          "source_sha256": "5232c4618ff5009e680716cebaebe305887c39f2130a9a3e92afb736c69820a3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Col.ResizeGripHovered/description",
          "source": "Selects the hovered resize-grip color slot",
          "source_sha256": "11cad3efa8b34051a91a13a6f10df08f110748828ef6490a6ddce5e97736d53e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Col.ScrollbarBg/description",
          "source": "Selects the scrollbar-track background color slot",
          "source_sha256": "8c1160664a97170a5b4a5f0d3cceb60e3bed5dc7f85364bc24edcb2f8785faa5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Col.ScrollbarGrab/description",
          "source": "Selects the normal scrollbar-grab color slot",
          "source_sha256": "0b751a6eb31581031e9026571cd1c45c25743869f6d5536f7cadc5bbed6c7499",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Col.Separator/description",
          "source": "Selects the normal separator color slot",
          "source_sha256": "7677875d15acd25acfc5f781e77fa83a821bc100a6fa5e5967e73a6750d4063e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Col.SeparatorActive/description",
          "source": "Selects the active separator color slot",
          "source_sha256": "f6466b4414da1b874025cbb104de13a6dc9808343e6ae46556b2b84ed12c40da",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Col.SeparatorHovered/description",
          "source": "Selects the hovered separator color slot",
          "source_sha256": "06e00dc8144e008b0f5efa10e7ac3523d3a4a856edb374de1e45983d44287e93",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Col.SliderGrab/description",
          "source": "Selects the normal slider-grab color slot",
          "source_sha256": "445fe4718415bad8479ca68bf16ba1f3952144efa518008d4232993264222c10",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Col.SliderGrabActive/description",
          "source": "Selects the active slider-grab color slot",
          "source_sha256": "8328dca9e0ada799d78a74421b522d9853bf0f57cd4a595bfd5f71cb3f9319c7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Col.Tab/description",
          "source": "Tab background, when tab-bar is focused & tab is unselected",
          "source_sha256": "82d25cbf4229c383e822669d95c19ed42981c755fb38d5ebc5b8bc79cad48e49",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Col.TabDimmed/description",
          "source": "Tab background, when tab-bar is unfocused & tab is unselected",
          "source_sha256": "9a840e431f74356e4ede29dde328500201ff029d96c97f18e38f944bde65d58f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Col.TabDimmedSelected/description",
          "source": "Tab background, when tab-bar is unfocused & tab is selected",
          "source_sha256": "2d351af74ced07b80566d61c6892fa14d593adf83b9afc4c7ebf97532b539df6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Col.TabHovered/description",
          "source": "Tab background, when hovered",
          "source_sha256": "58df13a45f62cdcc99f1487265ca4b0796caaa72daf78b74b3aba58a8b73672d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Col.TabSelected/description",
          "source": "Tab background, when tab-bar is focused & tab is selected",
          "source_sha256": "40459a6cf123702a8c43ff6ccd0571d82cee4ed75ffe5fabb904cec6001a5db5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Col.TableHeaderBg/description",
          "source": "Table header background",
          "source_sha256": "d5319cebb48b58e1540b798f72ebf2fbcc014879593ad9e6a6380b1f6ab7af0d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Col.TableRowBg/description",
          "source": "Table row background (even rows)",
          "source_sha256": "96bf97c86908aed14ac3fde2e71f9fc86f9fda23deebb3dfa686edc1190027ca",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Col.TableRowBgAlt/description",
          "source": "Table row background (odd rows)",
          "source_sha256": "883865522cc61bfaa91627740762c0a4a746cf6ecffc8d4779e394bfbed2d61c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Col.Text/description",
          "source": "Selects the primary text color slot",
          "source_sha256": "778ce81ae4f30f4435213a2ebc2610f20cf357d5f2c1add250dff14cede9ba3f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Col.TextDisabled/description",
          "source": "Selects the disabled-text color slot",
          "source_sha256": "785f771853788a743a2bddef60ac64206af09897e96f6a5ca95ea5680a1bd80a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Col.TitleBg/description",
          "source": "Title bar",
          "source_sha256": "11bca4ac3017172a7039971a9ce343f7b567715ba3fac7ceb4073fd872b644b7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Col.TitleBgActive/description",
          "source": "Title bar when focused",
          "source_sha256": "e1ffc8262d9c274ded6b4f5c98682810e152dd35b8f94bad4614959524b4e4b4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Col.WindowBg/description",
          "source": "Background of normal windows",
          "source_sha256": "66a7c935ea32da09675187727b123726e1ea1dc14783cd8a289dfc22b147f664",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ColorEditFlags.AlphaBar/description",
          "source": "ColorEdit, ColorPicker: show vertical alpha bar/gradient in picker",
          "source_sha256": "d966feb0cfbc9b4c8249bc80304dd1edaade6962746e9b0c0623819183040495",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ColorEditFlags.AlphaNoBg/description",
          "source": "ColorEdit, ColorPicker, ColorButton: disable rendering a checkerboard background behind transparent color",
          "source_sha256": "c61cabf784ddcb24843ccde652e1813cb4d5457591dc5ac876a397b4584eb029",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ColorEditFlags.AlphaOpaque/description",
          "source": "Hides alpha in the preview while still allowing ColorEdit4 and ColorPicker4 to edit it; for ColorButton this is equivalent to NoAlpha",
          "source_sha256": "db18ce96354fbbf8c61671b6d8e75eff7aa7a3bb2e1b5dcff4711f373d380ed0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ColorEditFlags.AlphaPreviewHalf/description",
          "source": "ColorEdit, ColorPicker, ColorButton: display half opaque / half transparent preview",
          "source_sha256": "ee9aabc98e80b8247bee45c87ba125486e11744e115e0cffcabcec8480b7faec",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ColorEditFlags.DefaultOptions/description",
          "source": "Selects 8-bit RGB display and input with the hue-bar picker as the default color-editor options",
          "source_sha256": "eb0c5c6ff096e53d8a2be2b0a4c74b09603f3c0db124f6a4533cfec6bd7aa626",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ColorEditFlags.DisplayHSV/description",
          "source": "Displays and edits color components in HSV form",
          "source_sha256": "35d658fbfc4dfcca16e4f2566332bb97311191a5a395782f4885333e304db337",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ColorEditFlags.DisplayHex/description",
          "source": "Displays and edits the color as a hexadecimal value",
          "source_sha256": "bde1057b15dde1738abde37bf87e482fff6f6ad754910fb4d55832220d560208",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ColorEditFlags.DisplayRGB/description",
          "source": "ColorEdit: override _display_ type among RGB/HSV/Hex. ColorPicker: select any combination using one or more of RGB/HSV/Hex",
          "source_sha256": "173357ed45614b07facaf624919b2dcf103795b5bb173d331f60d40ea92d2359",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ColorEditFlags.Float/description",
          "source": "ColorEdit, ColorPicker, ColorButton: _display_ values formatted as 0.0f..1.0f floats instead of 0..255 integers. No round-trip of value via integers",
          "source_sha256": "aa9899495306607859637ccef8cfcc1184a145a9d8307cc3b1dea7303617e4f9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ColorEditFlags.HDR/description",
          "source": "(WIP) ColorEdit: Currently only disable 0.0f..1.0f limits in RGBA edition (note: you probably want to use ImGuiColorEditFlags_Float flag as well)",
          "source_sha256": "897d272db5c160260bf127cbfe56ca2d16ad5b26f7b51ba436aedf1c579d7e51",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ColorEditFlags.InputHSV/description",
          "source": "ColorEdit, ColorPicker: input and output data in HSV format",
          "source_sha256": "b667deb3590a5ad37b2e0e0789ba19f9bc76da102a72259990fe59a5374c5837",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ColorEditFlags.InputRGB/description",
          "source": "ColorEdit, ColorPicker: input and output data in RGB format",
          "source_sha256": "f05e60a4595ef2e9311e1bce658ba03cef194686844eee5c299c214b2b470265",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ColorEditFlags.NoAlpha/description",
          "source": "ColorEdit, ColorPicker, ColorButton: ignore Alpha component (will only read 3 components from the input pointer)",
          "source_sha256": "25947b746895da875a7cb79f6c9c93b17a03419e0750776cc4e7af365981451d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ColorEditFlags.NoBorder/description",
          "source": "ColorButton: disable border (which is enforced by default)",
          "source_sha256": "b026e9fef204a42b5437ebe6dce979af022ea2398eb8cfedc140544e28fc9a5b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ColorEditFlags.NoDragDrop/description",
          "source": "ColorEdit: disable drag and drop target/source. ColorButton: disable drag and drop source",
          "source_sha256": "bd619c655c7317ef4a751f6c689a223ca4228ece46a3573ac7a3fb9593b20de3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ColorEditFlags.NoInputs/description",
          "source": "ColorEdit, ColorPicker: disable inputs sliders/text widgets (e.g. to show only the small preview color square)",
          "source_sha256": "e916ec4aee433fd60255be67ec85a4db822bf6ec548b7f89e25ff87429bb0dc6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ColorEditFlags.NoLabel/description",
          "source": "ColorEdit, ColorPicker: disable display of inline text label (the label is still forwarded to the tooltip and picker)",
          "source_sha256": "6cf2fa28871bbb91846a4a42ee0a726b87a3c0c6c09acfb0f9df035dfd12cd61",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ColorEditFlags.NoOptions/description",
          "source": "ColorEdit: disable toggling options menu when right-clicking on inputs/small preview",
          "source_sha256": "e6aee0ec7e7d0d614ecf445e992dbf649d097172d38ed2165b2b98ac086ab25f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ColorEditFlags.NoPicker/description",
          "source": "ColorEdit: disable picker when clicking on color square",
          "source_sha256": "04237c34cd963d94d5395068103e1ec6d895cad1eaedd8524c6877ee19b2b460",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ColorEditFlags.NoSidePreview/description",
          "source": "ColorPicker: disable bigger color preview on right side of the picker, use small color square preview instead",
          "source_sha256": "cd45e25be3713916dfd49da2259c1384cffa0e15c33250604f8e98cdd38a7822",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ColorEditFlags.NoSmallPreview/description",
          "source": "ColorEdit, ColorPicker: disable color square preview next to the inputs. (e.g. to show only the inputs)",
          "source_sha256": "f768910cd6fa82a6b6a260af6b7175fad69b0dc4859ddb6e9706c797cb9de6a6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ColorEditFlags.NoTooltip/description",
          "source": "ColorEdit, ColorPicker, ColorButton: disable tooltip when hovering the preview",
          "source_sha256": "32a67c72326037c0442a64e714a1ab8ffa81faf8139be00284d963c194868763",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ColorEditFlags.None/description",
          "source": "Applies no optional color-editor behavior flags",
          "source_sha256": "ffb5fe800b2f2032b5c7f8082ccba14c9257cbaa2d35a9731765b5a8283f6df3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ColorEditFlags.PickerHueBar/description",
          "source": "ColorPicker: bar for Hue, rectangle for Sat/Value",
          "source_sha256": "bd57aa1035a763559d8390d3070b20fbfcceb6a85c8d1dc97c86f04f2150316b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ColorEditFlags.PickerHueWheel/description",
          "source": "ColorPicker: wheel for Hue, triangle for Sat/Value",
          "source_sha256": "b62997d2432cc54c25ea75d18486feb1dde92ae6717463ee0b96ae448bb86b9f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ColorEditFlags.Uint8/description",
          "source": "ColorEdit, ColorPicker, ColorButton: _display_ values formatted as 0..255",
          "source_sha256": "979b84b963c458c12c458e8dd5039a4731ca1424157bb319074ff48e21603293",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ComboFlags.HeightLarge/description",
          "source": "Max ~20 items visible",
          "source_sha256": "cb17f6ab7bcaec41609b5595efc8ef006dfb0a278487e8433a853a5e55dc2def",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ComboFlags.HeightLargest/description",
          "source": "As many fitting items as possible",
          "source_sha256": "40ca8886afd2f9af66f1a2d36725cf5b90f75bfacbc68cd352c850ef6b95775c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ComboFlags.HeightRegular/description",
          "source": "Max ~8 items visible (default)",
          "source_sha256": "4d10617561f0ce2fdead63250a146ed7ac93a1609c5f133a2626cabff243f55c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ComboFlags.HeightSmall/description",
          "source": "Max ~4 items visible. Tip: If you want your combo popup to be a specific size you can use SetNextWindowSizeConstraints() prior to calling BeginCombo()",
          "source_sha256": "ec4ceb55bac04a62582d63dc30f49856cf0d6d401e6b49d92ac1299b84955c89",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ComboFlags.NoArrowButton/description",
          "source": "Display on the preview box without the square arrow button",
          "source_sha256": "7ee1049bbaf08a9c633df4c03cdb2ac97f8df3a9ac0e9c4db7ef9fc04fba5572",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ComboFlags.NoPreview/description",
          "source": "Display only a square arrow button",
          "source_sha256": "9d9c93df0b924b72122a5e9c42eac312dd4d3949b920a926cb1dd961f5793ddd",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ComboFlags.None/description",
          "source": "Applies no optional combo-box behavior flags",
          "source_sha256": "56e5079f00e2b23183ca68d750f0d8cd02c33095034f89214b6f909e561516fd",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ComboFlags.PopupAlignLeft/description",
          "source": "Align the popup toward the left by default",
          "source_sha256": "45dc6c82815dcc6eaeb3e420a478856082db4ab5d121fcd7b30e0bbbaa155b4f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_ComboFlags.WidthFitPreview/description",
          "source": "Width dynamically calculated from preview contents",
          "source_sha256": "6bb9fc6cf45e8846843f03f8b54bdbb3e6b94e5ff076a5a0c3cbf62e801711a3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Cond.Always/description",
          "source": "No condition (always set the variable), same as _None",
          "source_sha256": "26c466e6aef3ef1dc03314e5dfdfa90f72ea809a15b88d69475422b3ea5bdfc7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Cond.Appearing/description",
          "source": "Set the variable if the object/window is appearing after being hidden/inactive (or the first time)",
          "source_sha256": "1cb2bcbb85f5eb32b45a9b33fee479f6c4318e987234fe6375a4303e80c3d38a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Cond.FirstUseEver/description",
          "source": "Set the variable if the object/window has no persistently saved data (no entry in .ini file)",
          "source_sha256": "8f3d2d9c6511bfec967c492f4fa0e7b1c2b1f6f374283fdf5c9bfdab460d5e5b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Cond.None/description",
          "source": "No condition (always set the variable), same as _Always",
          "source_sha256": "9f054e98631f1d03720b9b3a03baa8ee8cfe0db71967984228a105d9f32d66f2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Cond.Once/description",
          "source": "Set the variable once per runtime session (only the first call will succeed)",
          "source_sha256": "fbaceccfe770099a97b360f2de203d8c830e4ac9f4750bdde332b012196eb420",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Dir.Down/description",
          "source": "Selects the downward cardinal direction",
          "source_sha256": "6b636864b0d9d4ea3d25194b67bd77a1e02d19671437ea63dcca63ee34c70911",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Dir.Left/description",
          "source": "Selects the left cardinal direction",
          "source_sha256": "104823e95494e9396c662ee84ea64e845a56f468df224d13d1c7d01cbef7f50f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Dir.None/description",
          "source": "Indicates that no cardinal direction is selected",
          "source_sha256": "aa8c9873ef9abbaf40e3e085a647aa8766f30806e692f154cb9b1064d2e2e02f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Dir.Right/description",
          "source": "Selects the right cardinal direction",
          "source_sha256": "de65b8ba36fe91d8e9f86ab07fd0990eecc051c508a77b57004cfe65b6e82a8b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_Dir.Up/description",
          "source": "Selects the upward cardinal direction",
          "source_sha256": "31d0c44e6b6c05d07ea1caa9c9d8a0602f9369ffafa81df151d13c7861c542f7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_FocusedFlags.AnyWindow/description",
          "source": "Return true if any window is focused. Important: If you are trying to tell how to dispatch your low-level inputs, do NOT use this. Use 'io.WantCaptureMouse' instead! Please read the FAQ!",
          "source_sha256": "59a20b6b2920cecc54113c2dd1d13be70d47ab0299c06d727639fe1691f0f0a2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_FocusedFlags.ChildWindows/description",
          "source": "Return true if any children of the window is focused",
          "source_sha256": "ccbfa2d2eb90ded9d8e2f6b5bf42b1ceead88b0491bea0fae65e4d562a0f607b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_FocusedFlags.NoPopupHierarchy/description",
          "source": "Do not consider popup hierarchy (do not treat popup emitter as parent of popup) (when used with _ChildWindows or _RootWindow)",
          "source_sha256": "13e65d99f0ab026f2aa673deb474cc9bd8c29c637057f8ea3413c533856050ec",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_FocusedFlags.None/description",
          "source": "Tests focus only for the current window without expanding the query scope",
          "source_sha256": "969df81844b661584dc783cf8c86e4177f8d9a69a4980ac88ea8fd229ed4f0ca",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_FocusedFlags.RootAndChildWindows/description",
          "source": "Tests the root window and all of its child windows for focus",
          "source_sha256": "d217c065153bfc94cefe69576cebe715d6891d904471b30dae16935760aa0378",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_FocusedFlags.RootWindow/description",
          "source": "Test from root window (top most parent of the current hierarchy)",
          "source_sha256": "9769fc114c937761774e960c8b945bb491288b1ee9174e0da666dc1dfef32637",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_HoveredFlags.AllowWhenBlockedByActiveItem/description",
          "source": "Return true even if an active item is blocking access to this item/window. Useful for Drag and Drop patterns",
          "source_sha256": "c30234e5aa9afd4bb76a15a1808a8845e212a7d4d3f4973d0ad979225f9ae297",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_HoveredFlags.AllowWhenBlockedByPopup/description",
          "source": "Return true even if a popup window is normally blocking access to this item/window",
          "source_sha256": "89aef6f9a08283b692fbfd52fda4cee11834a365000b00ad3348244345c9f2ff",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_HoveredFlags.AllowWhenDisabled/description",
          "source": "IsItemHovered() only: Return true even if the item is disabled",
          "source_sha256": "27a674aa697bbdbf43154203111c17eb02dd603c64225174ce8a2db91895489c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_HoveredFlags.AllowWhenOverlapped/description",
          "source": "Allows a hover result when another item or window overlaps the tested rectangle",
          "source_sha256": "b29ac988d9a40ebcd59e803ad27bcb556e2b9944c627f7e66f0583888d5fd437",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_HoveredFlags.AllowWhenOverlappedByItem/description",
          "source": "IsItemHovered() only: Return true even if the item uses AllowOverlap mode and is overlapped by another hoverable item",
          "source_sha256": "f21c8649e6daca713c71f04d1eaa4ad39413523eed4ef95ae01fea8e2334a738",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_HoveredFlags.AllowWhenOverlappedByWindow/description",
          "source": "IsItemHovered() only: Return true even if the position is obstructed or overlapped by another window",
          "source_sha256": "0543fc25c9e1c7253238705c348f782d6e09911a395063d8829cd660fd2e14a7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_HoveredFlags.AnyWindow/description",
          "source": "IsWindowHovered() only: Return true if any window is hovered",
          "source_sha256": "d193f8f0ad5c857048bc53d2582dd4aa3d87766dacb398058b497432e67ab5b9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_HoveredFlags.ChildWindows/description",
          "source": "IsWindowHovered() only: Return true if any children of the window is hovered",
          "source_sha256": "c34615f5ac0ad7b0cd4108e0ab159748ad247e046a8dd8a19ad9d5122a615003",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_HoveredFlags.ForTooltip/description",
          "source": "Shortcut for standard flags when using IsItemHovered() + SetTooltip() sequence",
          "source_sha256": "355789a9af1f6d6f2874f2c21c70d4c9321947c2de23471ea71b33ef346a1f5b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_HoveredFlags.NoNavOverride/description",
          "source": "IsItemHovered() only: Disable using keyboard/gamepad navigation state when active, always query mouse",
          "source_sha256": "525d6cb9fe4761589d72a22ca0508f26ee66210cdb0883bc144aa2dcdbcd65fb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_HoveredFlags.NoPopupHierarchy/description",
          "source": "IsWindowHovered() only: Do not consider popup hierarchy (do not treat popup emitter as parent of popup) (when used with _ChildWindows or _RootWindow)",
          "source_sha256": "3c7406f3f2ded2580f5e768a07d176250db88981295cb80cae48336709e42457",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_HoveredFlags.None/description",
          "source": "Return true if directly over the item/window, not obstructed by another window, not obstructed by an active popup or modal blocking inputs under them",
          "source_sha256": "6c7dd28868da42e9587533b9df240c1389239ec091a500ab2adf841681e69b9c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_HoveredFlags.RectOnly/description",
          "source": "Uses the item or window rectangle while ignoring popup, active-item, and overlap blocking",
          "source_sha256": "4dd696f0dba31897add28da5caf58ca2fe29457513a08008d54e437b27281c8b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_HoveredFlags.RootWindow/description",
          "source": "IsWindowHovered() only: Test from root window (top most parent of the current hierarchy)",
          "source_sha256": "adae308effe99c6f8144c0577a460438a62ea6fed3b17626d94e75cfe7f691c3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_InputTextFlags.AutoSelectAll/description",
          "source": "Select entire text when first taking mouse focus",
          "source_sha256": "93c6bc3523666d3745ccab44623d9bc4eed8451f9a9be5434f490cd1288bba30",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_InputTextFlags.CharsDecimal/description",
          "source": "Allow 0123456789.+-*/",
          "source_sha256": "a9d762629659822656bf4e65b0363512212617dc09b46d9031b3fdcd32223025",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_InputTextFlags.CharsHexadecimal/description",
          "source": "Allow 0123456789ABCDEFabcdef",
          "source_sha256": "d6b9117e0f1a159e6aa59d4a14055bf1b0e7d6bbd3ac30111a1823b678937bfd",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_InputTextFlags.CharsNoBlank/description",
          "source": "Filter out spaces, tabs",
          "source_sha256": "6f7965fc4297efaa86e3f11d3511b76171052ab1711bd9828a4efd3cda2f1293",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_InputTextFlags.CharsScientific/description",
          "source": "Allow 0123456789.+-*/eE (Scientific notation input)",
          "source_sha256": "bd0755f2d1b1a17dd26aab748b560e28b5fb62834ab64596980d4945fe79d310",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_InputTextFlags.CharsUppercase/description",
          "source": "Turn a..z into A..Z",
          "source_sha256": "fc43bd02d7b787b2d7401651ff1f076398ce5023d48b7a9e1761e18cabce51ff",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_InputTextFlags.DisplayEmptyRefVal/description",
          "source": "InputFloat(), InputInt(), InputScalar() etc. only: when value is zero, do not display it. Generally used with ImGuiInputTextFlags_ParseEmptyRefVal",
          "source_sha256": "240959b5ca8d89048222cea8c72d725ff99346604d575b2e9cf99e5a3eb68aa1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_InputTextFlags.EnterReturnsTrue/description",
          "source": "Return 'true' when Enter is pressed (as opposed to every time the value was modified). Consider disabling LiveEdit! or using IsItemDeactivatedAfterEdit() instead!",
          "source_sha256": "a2a4545291a20f86d94ded4e4764412876b42a0059cbe13b52648ad9ec654c8e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_InputTextFlags.None/description",
          "source": "Applies no optional text-input behavior flags",
          "source_sha256": "7761499c5fbca7a2a7de895f27ce029106b1d5de3ea0edac14328a995e150e70",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_InputTextFlags.ParseEmptyRefVal/description",
          "source": "InputFloat(), InputInt(), InputScalar() etc. only: parse empty string as zero value",
          "source_sha256": "3bcf9bff85fbdd3fb755aba9d098568f4d6909b56ab5aafd16a182206db9f560",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_InputTextFlags.Password/description",
          "source": "Password mode, display all characters as '*', disable copy",
          "source_sha256": "7a25462727dbe2f6e14307cdeb3d3fc7d45ffccb856269dcedd7253e5894c5e2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_InputTextFlags.ReadOnly/description",
          "source": "Read-only mode",
          "source_sha256": "d06de4d3927da7ccbc6a5fd82f3afd3d644b5f48536398d6fa09ea86735be344",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_MouseButton.Left/description",
          "source": "Identifies the left mouse button",
          "source_sha256": "636553ac14756d8997026c2552494e1847ab73bfdd326843f56b3570d39f0d7c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_MouseButton.Middle/description",
          "source": "Identifies the middle mouse button",
          "source_sha256": "20f27ec378084f6f05fb9879950dff3fc98c243d6f3e6a4fce6572d267ff6251",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_MouseButton.Right/description",
          "source": "Identifies the right mouse button",
          "source_sha256": "59ca96da7bca2ee2981a8772fddd9605bc917d5c85f03b397fb1515290ea1d90",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_PopupFlags.AnyPopup/description",
          "source": "Tests any popup identifier at any level of the popup stack",
          "source_sha256": "aa4cc19a50b4faef495676bae890f53784a5cf39a14d7fad048119412cb608ad",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_PopupFlags.AnyPopupId/description",
          "source": "For IsPopupOpen(): ignore the ImGuiID parameter and test for any popup",
          "source_sha256": "8dcab81a8836a9a6b27510060b981e58b76a3eb3ff018b52cce4de5eae04f1aa",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_PopupFlags.AnyPopupLevel/description",
          "source": "For IsPopupOpen(): search/test at any level of the popup stack (default test in the current level)",
          "source_sha256": "47d62bcda9780d63b989fbf1857db0bfd04f61a74cdff520025d968682b45b07",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_PopupFlags.MouseButtonLeft/description",
          "source": "For BeginPopupContext*(): open on Left Mouse release. Only one button allowed!",
          "source_sha256": "47ee58b7be34efbc99cc8dcb7c0b54c64b719e63f36e47c1bf3582c531d50e51",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_PopupFlags.MouseButtonMiddle/description",
          "source": "For BeginPopupContext*(): open on Middle Mouse release. Only one button allowed!",
          "source_sha256": "60fb770bdc787c11c7eda1e705697e26fda72cb1d1f3b404092dfe98364353d3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_PopupFlags.MouseButtonRight/description",
          "source": "For BeginPopupContext*(): open on Right Mouse release. Only one button allowed! (default)",
          "source_sha256": "88ab68fd55b4f30cfcf7e258878481158f5d1d093085e49821db3853eeb2d3de",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_PopupFlags.NoOpenOverExistingPopup/description",
          "source": "For OpenPopup*(), BeginPopupContext*(): don't open if there's already a popup at the same level of the popup stack",
          "source_sha256": "6cf6b73db0b59dbd46726653d4916a975812edb3d5f55c51b41c7ffa785d3b06",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_PopupFlags.NoOpenOverItems/description",
          "source": "For BeginPopupContextWindow(): don't return true when hovering items, only when hovering empty space",
          "source_sha256": "b27456722c98b0ecf13f181dc68064c04a30b21a7518d5f221c2260a7c18f949",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_PopupFlags.NoReopen/description",
          "source": "For OpenPopup*(), BeginPopupContext*(): don't reopen same popup if already open (won't reposition, won't reinitialize navigation)",
          "source_sha256": "cf5ad592a9a1c54551063a03f8c0c411083ff78537cfe56f89c5a0c359e1b301",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_PopupFlags.None/description",
          "source": "Applies the default popup mouse-button and stack-level behavior",
          "source_sha256": "717504402e1f5421fb1818b03061a785b361792d066c2c96f27bdb35f7ddd4f7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_SelectableFlags.AllowDoubleClick/description",
          "source": "Generate press events on double clicks too",
          "source_sha256": "b30bb442f3f818c409ce68dc93e8ab20056fc3306aaa43edf478fa542a32e8e5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_SelectableFlags.AllowOverlap/description",
          "source": "Hit testing will allow subsequent widgets to overlap this one. Require previous frame HoveredId to match before being usable. Shortcut to calling SetNextItemAllowOverlap()",
          "source_sha256": "1cf43190ed01a426273272dad0c32253492771e28388b42ed424d514f5a59534",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_SelectableFlags.Disabled/description",
          "source": "Cannot be selected, display grayed out text",
          "source_sha256": "270e1837dfaab81af3aaca1a08d5aa6532c999bdace0ac256f348bb7ca6bbf10",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_SelectableFlags.NoAutoClosePopups/description",
          "source": "Clicking this doesn't close parent popup window (overrides ImGuiItemFlags_AutoClosePopups)",
          "source_sha256": "40b2d5434a3144418098ed13adf9fbc7dcc404cded26b91939a57ccc8314c8d9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_SelectableFlags.None/description",
          "source": "Applies no optional selectable-item behavior flags",
          "source_sha256": "ee8ceae9af5f4988bf706e92e1c26169b2ace11b5e16a87f0b67f72cf86e8927",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_SelectableFlags.SpanAllColumns/description",
          "source": "Frame will span all columns of its container table (text will still fit in current column)",
          "source_sha256": "ca21e871983e95696c4ae0f58389f0acb8ab0410eab3ded1e90994f1649103aa",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_SliderFlags.AlwaysClamp/description",
          "source": "Clamps manual input and also clamps a zero-width range where minimum and maximum are both zero",
          "source_sha256": "93da382390c381ddf9e5a94741ffc5913d7a27c2b64745cd4af10fd1faa14f2b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_SliderFlags.ClampOnInput/description",
          "source": "Clamp value to min/max bounds when input manually with Ctrl+Click. By default Ctrl+Click allows going out of bounds",
          "source_sha256": "b1a674b1b9c9196327770fb307c71f5e0f6302a1b2ed05717235460cb0f5740d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_SliderFlags.ClampZeroRange/description",
          "source": "Clamp even if min==max==0.0f. Otherwise due to legacy reason DragXXX functions don't clamp with those values. When your clamping limits are dynamic you almost always want to use it",
          "source_sha256": "f5c080b273ba63505464771fad1d3981c1c947a19209d815ca59101a1af538af",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_SliderFlags.Logarithmic/description",
          "source": "Make the widget logarithmic (linear otherwise). Consider using ImGuiSliderFlags_NoRoundToFormat with this if using a format-string with small amount of digits",
          "source_sha256": "e972e21f77ce6502ecd21482eeaf2f84126f98a97a2e85dbbf3cb9de56c5ba0e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_SliderFlags.NoInput/description",
          "source": "Disable Ctrl+Click or Enter key allowing to input text directly into the widget",
          "source_sha256": "e5072667aecc64c3a5a3b96b0c2ead9b6fff352236bab29940d532e05e8048e5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_SliderFlags.NoRoundToFormat/description",
          "source": "Disable rounding underlying value to match precision of the display format string (e.g. %.3f values are rounded to those 3 digits)",
          "source_sha256": "0eb95b9937986c79938e40eae83d92f4998a3c2daeeed6ec789143f31a2203d7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_SliderFlags.NoSpeedTweaks/description",
          "source": "Disable keyboard modifiers altering tweak speed. Useful if you want to alter tweak speed yourself based on your own logic",
          "source_sha256": "65d71f1ec76b1e0e381e72e42f13be6ca4c2b3746da9fee817eb01c14e82e7a8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_SliderFlags.None/description",
          "source": "Applies no optional slider or drag-control behavior flags",
          "source_sha256": "c3ea830289d6e6262f16285b4cd0911c777e7df3a9719f6d76bb918ceb931330",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_SliderFlags.WrapAround/description",
          "source": "Enable wrapping around from max to min and from min to max. Only supported by DragXXX() functions for now",
          "source_sha256": "b2ea48010f9fe211235fe29e35128c64777237c0e8ab865c5b50b66476829657",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_StyleVar.Alpha/description",
          "source": "Global alpha applies to everything in Dear ImGui",
          "source_sha256": "d62e05554972a07a1cfa4d2c3f9dfdccd4cca9bf585c4f53a474ce17c0a1501c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_StyleVar.ButtonTextAlign/description",
          "source": "Alignment of button text when button is larger than text. Defaults to (0.5f, 0.5f) (centered)",
          "source_sha256": "ab2a142709cb0f39fc2321d310a7581d146ffda8492fa6e712b8b9e82fc5829b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_StyleVar.CellPadding/description",
          "source": "Padding within a table cell. Cellpadding.x is locked for entire table. CellPadding.y may be altered between different rows",
          "source_sha256": "c8f6ce03b92f51241869088d3e631ddb69d2c3711b642b61784d321b77e70322",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_StyleVar.DisabledAlpha/description",
          "source": "Additional alpha multiplier applied by BeginDisabled(). Multiply over current value of Alpha",
          "source_sha256": "d41d60a29baed063006b91edf5d4b4f6b0faab257e0abbe0827a2baf27fe6f55",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_StyleVar.FrameBorderSize/description",
          "source": "Thickness of border around frames. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly)",
          "source_sha256": "c74814e5ac15635cf4932577edf5c86e3354a9cdeb3cfa5852773589ea53b186",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_StyleVar.FramePadding/description",
          "source": "Padding within a framed rectangle (used by most widgets)",
          "source_sha256": "5639862de92e653f2eec3a4976855fffefa56efd0df62f0f28329fb1e9e2fc24",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_StyleVar.FrameRounding/description",
          "source": "Radius of frame corners rounding. Set to 0.0f to have rectangular frame (used by most widgets)",
          "source_sha256": "9a9e229cc721d131183bb212de32de30fe87c986096125f510c545b07cd2f7fa",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_StyleVar.GrabMinSize/description",
          "source": "Minimum width/height of a grab box for slider/scrollbar",
          "source_sha256": "3b03a99ccbb8b6836c6fc3697d8b211b114ecb3973671086d42bf92184fbec16",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_StyleVar.GrabRounding/description",
          "source": "Radius of grabs corners rounding. Set to 0.0f to have rectangular slider grabs",
          "source_sha256": "e8a3272ce397ea0712c0bc0a98545071dfbcaec1c846e99c599816e0bc2c0132",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_StyleVar.IndentSpacing/description",
          "source": "Horizontal indentation when e.g. entering a tree node. Generally == (FontSize + FramePadding.x*2)",
          "source_sha256": "1dd01f9bbfd2a817299f14c5acc068d14bfacaeda711c4e6d4762d2d50f9a6aa",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_StyleVar.ItemInnerSpacing/description",
          "source": "Horizontal and vertical spacing between within elements of a composed widget (e.g. a slider and its label)",
          "source_sha256": "a15eccddb49c71b61c105e6c1f37f2eb1ba2ad42bb0b61d36145e027cc0afe00",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_StyleVar.ItemSpacing/description",
          "source": "Horizontal and vertical spacing between widgets/lines",
          "source_sha256": "4ca2f4be5e6c07e8fe9956d6c5c122f1597dbe125f86f348f5d81d58245151b8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_StyleVar.ScrollbarRounding/description",
          "source": "Radius of grab corners for scrollbar",
          "source_sha256": "a57cb6df81c036813105a08a496eefde352f804a23845643e07ccceced11191b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_StyleVar.ScrollbarSize/description",
          "source": "Width of the vertical scrollbar, Height of the horizontal scrollbar",
          "source_sha256": "0b70d0cc5bb6bda33a5f0c62c80380df8ab8d1c18c1fb3f042a0d05650af76d3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_StyleVar.SelectableTextAlign/description",
          "source": "Alignment of selectable text. Defaults to (0.0f, 0.0f) (top-left aligned). It's generally important to keep this left-aligned if you want to lay multiple items on a same line",
          "source_sha256": "869d589202ba1d1b5e908835f07c16a7faef314958df847feba4cfe295761a73",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_StyleVar.TabRounding/description",
          "source": "Radius of upper corners of a tab. Set to 0.0f to have rectangular tabs",
          "source_sha256": "6fb7eff4f989ae2d3598356fad49ed7dbcb8feb1b1e993f3cec7a5208186e985",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_StyleVar.WindowBorderSize/description",
          "source": "Thickness of border around windows. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly)",
          "source_sha256": "aba60e5e2b65b14dec6261c215e29786cfa0ca59decf1759a0b2a321b9327bab",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_StyleVar.WindowPadding/description",
          "source": "Padding within a window",
          "source_sha256": "06d8e7f19a9957b89ad0fcd54a3975bccc65ce4339cbe55394d16321adb7cbde",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_StyleVar.WindowRounding/description",
          "source": "Radius of window corners rounding. Set to 0.0f to have rectangular windows. Large values tend to lead to variety of artifacts and are not recommended",
          "source_sha256": "17d0e786e5f0fe0b18a3709ca59e67e5d5d6a8cf488d44874a6ff1b1c5d1e2bf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TabBarFlags.AutoSelectNewTabs/description",
          "source": "Automatically select new tabs when they appear",
          "source_sha256": "97bfca0fda24f9325718d8ff59c4cb7c96154b2db5abab99c605c6ee4aaa15b6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TabBarFlags.DrawSelectedOverline/description",
          "source": "Draw selected overline markers over selected tab",
          "source_sha256": "32c9137e5e1d3ff7a16a7143aacdedacc1ed7577fa3c844ce930dcbc3bb4137a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TabBarFlags.FittingPolicyMixed/description",
          "source": "Shrink down tabs when they don't fit, until width is style.TabMinWidthShrink, then enable scrolling. Setting TabMinWidthShrink to FLT_MAX makes this behave like ImGuiTabBarFlags_FittingPolicyScroll",
          "source_sha256": "5da360ead0e24be796f5003581b6fe1f76bec757b44d923f0f353db65c95819f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TabBarFlags.FittingPolicyScroll/description",
          "source": "Enable scrolling buttons when tabs don't fit",
          "source_sha256": "43012eba2bd9a73228962933f75a4e5349c137d40c91d0f61b5e71b6a6941b8e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TabBarFlags.FittingPolicyShrink/description",
          "source": "Shrink down tabs when they don't fit",
          "source_sha256": "dd9515d8c39114ff7b27e75f4ddf971ec6b6ece361045c65373b3fd072792aaa",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TabBarFlags.NoCloseWithMiddleMouseButton/description",
          "source": "Disable behavior of closing tabs (that are submitted with p_open != NULL) with middle mouse button. You may handle this behavior manually on user's side with if (IsItemHovered() && IsMouseClicked(2)) *p_open = false",
          "source_sha256": "fd1f15abad0390ae4e77f1ae217d6371ad6fea84dc8cdc8033e298a06778cb7a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TabBarFlags.NoTabListScrollingButtons/description",
          "source": "Disable scrolling buttons (apply when fitting policy is ImGuiTabBarFlags_FittingPolicyScroll)",
          "source_sha256": "3a304b646bd5ed1364223bee21d00e94594b873600e8322c2b120be34caee656",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TabBarFlags.NoTooltip/description",
          "source": "Disable tooltips when hovering a tab",
          "source_sha256": "107d52f2516ce1b729ee0933cf09d5e87b20a64cb8d0fcbbc861585317fc79e0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TabBarFlags.None/description",
          "source": "Applies no optional tab-bar behavior flags",
          "source_sha256": "544b263efb544d602fb68e0e85a2311c8c193e42cf77344124244ec18d57f2ab",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TabBarFlags.Reorderable/description",
          "source": "Allow manually dragging tabs to re-order them + New tabs are appended at the end of list",
          "source_sha256": "887446d9c1ca8e62cde231281ea6dcfb8a46fc5f6a05936cce6c8a264ba7119c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TabBarFlags.TabListPopupButton/description",
          "source": "Shows a button that opens the tab-list popup and lets the user select a tab",
          "source_sha256": "0e5add6a1c86e35112aaada7e219b3a1e41bc1523ae15dd437c4c472cb0a59c0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TabItemFlags.Leading/description",
          "source": "Enforce the tab position to the left of the tab bar (after the tab list popup button)",
          "source_sha256": "85d4185276b497305a2a8ad3b0729efcb70f81e6e0e3dae3025861da4df80e0e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TabItemFlags.NoAssumedClosure/description",
          "source": "Tab is selected when trying to close + closure is not immediately assumed (will wait for user to stop submitting the tab). Otherwise closure is assumed when pressing the X, so if you keep submitting the tab may reappear at end of tab bar",
          "source_sha256": "ed8b92d3823ff65f2bcd8f4e3bb3d60ff6b8ae4afc06876dd45bb0fa49c0e047",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TabItemFlags.NoCloseWithMiddleMouseButton/description",
          "source": "Disable behavior of closing tabs (that are submitted with p_open != NULL) with middle mouse button. You may handle this behavior manually on user's side with if (IsItemHovered() && IsMouseClicked(2)) *p_open = false",
          "source_sha256": "fd1f15abad0390ae4e77f1ae217d6371ad6fea84dc8cdc8033e298a06778cb7a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TabItemFlags.NoPushId/description",
          "source": "Don't call PushID()/PopID() on BeginTabItem()/EndTabItem()",
          "source_sha256": "d5e908905680ea9059de49f212717aa9225eae07e0cad31f968e7fd7f22ce969",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TabItemFlags.NoReorder/description",
          "source": "Disable reordering this tab or having another tab cross over this tab",
          "source_sha256": "5e689ab9e9041c4be04542e684d8770e6218688fbca83afedcfa8678b622d642",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TabItemFlags.NoTooltip/description",
          "source": "Disable tooltip for the given tab",
          "source_sha256": "cc5bf6ad23529fc80b1e1bf79b6ec28d68396031d41a30b63b862abde74a8d69",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TabItemFlags.None/description",
          "source": "Applies no optional tab-item behavior flags",
          "source_sha256": "661ba6ca5893284779abd8c956ffc4830585680bfde3aadec61c3a8c65b2930e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TabItemFlags.SetSelected/description",
          "source": "Trigger flag to programmatically make the tab selected when calling BeginTabItem()",
          "source_sha256": "b71f8456763ec0f9512af0c7971e973b6e07b45b1c7b08a10160d565a061761f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TabItemFlags.Trailing/description",
          "source": "Enforce the tab position to the right of the tab bar (before the scrolling buttons)",
          "source_sha256": "009976cc05747bb7fe6ec77631bf218bb35f502d009bd6d61e75d793e648e2d4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TabItemFlags.UnsavedDocument/description",
          "source": "Display a dot next to the title + set ImGuiTabItemFlags_NoAssumedClosure",
          "source_sha256": "441fc53269a99d91fe8c1474c6f4e3dd0eb3996e6913d3c0b9481dcaff2a7247",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableBgTarget.CellBg/description",
          "source": "Set cell background color (top-most color)",
          "source_sha256": "82f4d56a2c88f97e9fbc1246daf3519d806ddee030866541c918d86c4185f1ac",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableBgTarget.None/description",
          "source": "Selects no table background color target",
          "source_sha256": "ec432ec5cb4e9f1aa14d42c1b04a10c342321628299a0fb26f4b87da8c6319af",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableBgTarget.RowBg0/description",
          "source": "Set row background color 0 (generally used for background, automatically set when ImGuiTableFlags_RowBg is used)",
          "source_sha256": "ef4c18d3bd8b9acf17fb87d65a76945e603d528d73b4daaccb24a6260078ead4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableBgTarget.RowBg1/description",
          "source": "Set row background color 1 (generally used for selection marking)",
          "source_sha256": "f4a6cbbefbd1a5a79adabc7351ff2fb104808b5e19a2894fa5932e7fe5aac414",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableColumnFlags.AngledHeader/description",
          "source": "TableHeadersRow() will submit an angled header row for this column. Note this will add an extra row",
          "source_sha256": "5872133bf4d960c2dc7bea3a79a198a202e7e89163a9804d68f747b767404c84",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableColumnFlags.DefaultHide/description",
          "source": "Default as a hidden/disabled column",
          "source_sha256": "0e3dff4d80ab33260aebe8e070eb6a50822ed123b892fa3567b26c9a6a7b7f3b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableColumnFlags.DefaultSort/description",
          "source": "Default as a sorting column",
          "source_sha256": "f9f71177b2336d3346d971263ade28ce01da4945ec1480bfb381f2b1fb60919d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableColumnFlags.Disabled/description",
          "source": "Overriding/master disable flag: hide column, won't show in context menu (unlike calling TableSetColumnEnabled() which manipulates the user accessible state)",
          "source_sha256": "a56b9f0458f00ba19878af6ed508aa47d17dafb1531d768d1243c6ae6da85325",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableColumnFlags.IndentDisable/description",
          "source": "Ignore current Indent value when entering cell (default for columns > 0). Indentation changes _within_ the cell will still be honored",
          "source_sha256": "2177b0ee206f7c6b040b1ecc2ec50604969fb17cee1bab3620b95927a5b543d2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableColumnFlags.IndentEnable/description",
          "source": "Use current Indent value when entering cell (default for column 0)",
          "source_sha256": "c655649de363bcc55be21aae205f40adafd157f1be87e3fef470fe28a473a50c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableColumnFlags.IsEnabled/description",
          "source": "Status: is enabled == not hidden by user/api (referred to as \"Hide\" in _DefaultHide and _NoHide) flags",
          "source_sha256": "d2656e382707ac5f4d07d8c73a4b0db3660be4e3fd7051eecdf0680897aaa198",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableColumnFlags.IsHovered/description",
          "source": "Status: is hovered by mouse",
          "source_sha256": "f8009d7bff1dc951e6b4a3ce366ff81c4c31db1c049ac1248a11f2fbeaa9b31f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableColumnFlags.IsSorted/description",
          "source": "Status: is currently part of the sort specs",
          "source_sha256": "373237ef04952cc651813a54399b4c39f6148103c20eb574255a98e9d3989656",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableColumnFlags.IsVisible/description",
          "source": "Status: is visible == is enabled AND not clipped by scrolling",
          "source_sha256": "8d12e2020681314eda2111b713b551aa6081e01527f693c3560b4c9427ad7ee6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableColumnFlags.NoClip/description",
          "source": "Disable clipping for this column (all NoClip columns will render in a same draw command)",
          "source_sha256": "971bd697c6c09003ffdbc6639e843342e5240bce77b3a45b2e454246a806097e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableColumnFlags.NoHeaderLabel/description",
          "source": "TableHeadersRow() will submit an empty label for this column. Convenient for some small columns. Name will still appear in context menu or in angled headers. You may append into this cell by calling TableSetColumnIndex() right after the TableHeadersRow() call",
          "source_sha256": "67cbbc243f26c690776f18642f9951aa3e098a64796ee02d64fc283417c2d946",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableColumnFlags.NoHeaderWidth/description",
          "source": "Disable header text width contribution to automatic column width",
          "source_sha256": "9419f28acfdb0135f315c917ae4ca741e3a970b6febf0f7dd1fa56253cf0a7f8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableColumnFlags.NoHide/description",
          "source": "Disable ability to hide/disable this column",
          "source_sha256": "4a68b0d7799d8aa7e8e0404141bfc2e038fd62f85ff5e53a7475f8bed9b89646",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableColumnFlags.NoReorder/description",
          "source": "Disable manual reordering this column, this will also prevent other columns from crossing over this column",
          "source_sha256": "d46d9a6f26b509c93399b7f846d21a279df8244fa2be454d95fd3bdca9137614",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableColumnFlags.NoResize/description",
          "source": "Disable manual resizing",
          "source_sha256": "6972082f53f928f0893e39226de1ac375f9f93359e325e0d5765806250746ea9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableColumnFlags.NoSort/description",
          "source": "Disable ability to sort on this field (even if ImGuiTableFlags_Sortable is set on the table)",
          "source_sha256": "be48aa9dbbc3eb1bf28e89cedac30a43107964fc99114a2c268503f2d5f03eac",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableColumnFlags.NoSortAscending/description",
          "source": "Disable ability to sort in the ascending direction",
          "source_sha256": "077f8b3fa50e301fef99589b3fca17b81b0ff476b2dcf8d3d31bd76cb3072436",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableColumnFlags.NoSortDescending/description",
          "source": "Disable ability to sort in the descending direction",
          "source_sha256": "8b9e82a6f9121e58fe1951b9de468179d6fe4003a84fd853feb16b70be5a0586",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableColumnFlags.None/description",
          "source": "Applies no optional table-column behavior flags",
          "source_sha256": "87d2fee692d6d0e9edf645b8ef4ce6dfab89b96d288359fab783c41b90ca3826",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableColumnFlags.PreferSortAscending/description",
          "source": "Make the initial sort direction Ascending when first sorting on this column (default)",
          "source_sha256": "1e95a5a52f97200e4cadc2d88f5ebc796475ee96bb90102eb53655a2fe9eac31",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableColumnFlags.PreferSortDescending/description",
          "source": "Make the initial sort direction Descending when first sorting on this column",
          "source_sha256": "7d70e4fd432156719215a9dbdea20b4410051274169759005e54d43076fe5087",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableColumnFlags.WidthFixed/description",
          "source": "Column will not stretch. Preferable with horizontal scrolling enabled (default if table sizing policy is _SizingFixedFit and table is resizable)",
          "source_sha256": "79cdf877c4ce3ee2326bbecb5b3c3b673fdb5d5280cf5672003723697436bbd7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableColumnFlags.WidthStretch/description",
          "source": "Column will stretch. Preferable with horizontal scrolling disabled (default if table sizing policy is _SizingStretchSame or _SizingStretchProp)",
          "source_sha256": "99ceea5041288f6441f97a4049bf2ee79654ca22cbf48d1cba6eace85b2a9201",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableFlags.Borders/description",
          "source": "Draw all borders",
          "source_sha256": "e02829bb2d7ee0a5b21ba980d65d919f2268d77d2710f0f56386b7ad63a80212",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableFlags.BordersH/description",
          "source": "Draw horizontal borders",
          "source_sha256": "5635d46a2a629643290f979f9bd50be4c5defcedb36de01ee5762dcb7a8f0935",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableFlags.BordersInner/description",
          "source": "Draw inner borders",
          "source_sha256": "dc14cc432b93a0ac6df3c977a3eb96a285047e3d952914af0613cf1344760a61",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableFlags.BordersInnerH/description",
          "source": "Draw horizontal borders between rows",
          "source_sha256": "d6d319408f19901ebded4f23a4d5c8dbc4326778e2347ab483e8c58df715e694",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableFlags.BordersInnerV/description",
          "source": "Draw vertical borders between columns",
          "source_sha256": "b92cba2dd872126a447f3fb2f2f3b59db9eab053fbf28043a07f2ab3b56b9b35",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableFlags.BordersOuter/description",
          "source": "Draw outer borders",
          "source_sha256": "cd9fb18fb0f6c3071083bd72daebb12b9e07d5643ea03ce7dad45a1e13817b7f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableFlags.BordersOuterH/description",
          "source": "Draw horizontal borders at the top and bottom",
          "source_sha256": "cb1b6f662e71e3927bf76b9c94ae844ba375f9c4d6d7635ed32b053cbefd2a8c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableFlags.BordersOuterV/description",
          "source": "Draw vertical borders on the left and right sides",
          "source_sha256": "8ec6a235e1c56377500489dcd4093c50b0d2892e06f9cf904b96ebe040ff1e99",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableFlags.BordersV/description",
          "source": "Draw vertical borders",
          "source_sha256": "2257bfb1a143116b3887e67661fbf8a5ef04309e25b7873c8a04f4c6cad9243a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableFlags.ContextMenuInBody/description",
          "source": "Right-click on columns body/contents will also display table context menu. By default it is available in TableHeadersRow()",
          "source_sha256": "01cb95b7bc3935b74cc4ba211cfd4f77b1e9e95ccc7e040f9dbebf064602e366",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableFlags.Hideable/description",
          "source": "Enable hiding/disabling columns in context menu",
          "source_sha256": "c4342b907c2aaeae4961cf2a04ec1e7daa505340ebd41ad1ef7143d11fc092c8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableFlags.HighlightHoveredColumn/description",
          "source": "Highlight column headers when hovered (may evolve into a fuller highlight)",
          "source_sha256": "f256a3bdf9f465dcfa461ca1d0edbed8ca3e6c6c192c4e07e2b0ef2fcb00171e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableFlags.NoBordersInBody/description",
          "source": "[ALPHA] Disable vertical borders in columns Body (borders will always appear in Headers). -> May move to style",
          "source_sha256": "b5e8ddf09bd7c0c8c9a021765e33aa548d6974624ecbf7174f79c9c05afef0a8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableFlags.NoBordersInBodyUntilResize/description",
          "source": "[ALPHA] Disable vertical borders in columns Body until hovered for resize (borders will always appear in Headers). -> May move to style",
          "source_sha256": "efdbc8e69b2ba9b098a0a20ac3efe36941928e9ec4b793f0f65536365b57f72c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableFlags.NoClip/description",
          "source": "Disable clipping rectangle for every individual columns (reduce draw command count, items will be able to overflow into other columns). Generally incompatible with TableSetupScrollFreeze()",
          "source_sha256": "87eae31ce679d1cc4af34ac6e24e0faa048e9f5a5668d10fc99377df6c0d03bf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableFlags.NoHostExtendX/description",
          "source": "Make outer width auto-fit to columns, overriding outer_size.x value. Only available when ScrollX/ScrollY are disabled and Stretch columns are not used",
          "source_sha256": "172913aa53293235d9327de876088c36f086dd53b1329c725336bdd3292f7871",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableFlags.NoHostExtendY/description",
          "source": "Make outer height stop exactly at outer_size.y (prevent auto-extending table past the limit). Only available when ScrollX/ScrollY are disabled. Data below the limit will be clipped and not visible",
          "source_sha256": "92603335a33145d565ed93fd9277033676de245a80c2e5eece0458aedee8f5b7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableFlags.NoKeepColumnsVisible/description",
          "source": "Disable keeping column always minimally visible when ScrollX is off and table gets too small. Not recommended if columns are resizable",
          "source_sha256": "46284e50d578c5f84826244128c70c444c0b0dc3e24fd988fec12949e879d73b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableFlags.NoPadInnerX/description",
          "source": "Disable inner padding between columns (double inner padding if BordersOuterV is on, single inner padding if BordersOuterV is off)",
          "source_sha256": "5c87f30f585c52d20d7b2be2472c75d9fbfbf19fc82499969c242bb31c1cfd34",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableFlags.NoPadOuterX/description",
          "source": "Default if BordersOuterV is off. Disable outermost padding",
          "source_sha256": "afa90bf875118ac817c32d464758b121606f4c0454b1c92bd39ee226c257a11b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableFlags.NoSavedSettings/description",
          "source": "Disable persisting columns order, width, visibility and sort settings in the .ini file",
          "source_sha256": "4837eda23f157c97ce02226eebb7cab9fbf669e856aa34e9ca64ffef0b68dd04",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableFlags.None/description",
          "source": "Applies no optional table behavior flags",
          "source_sha256": "69eae6248d9533a6ba956666f49991318f5db671de06fcc656bc2849a163aecc",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableFlags.PadOuterX/description",
          "source": "Default if BordersOuterV is on. Enable outermost padding. Generally desirable if you have headers",
          "source_sha256": "c7c513a8ac8d7243274eb3e92f2006a140b24ba6f68e2e986c255d76de76bfa4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableFlags.PreciseWidths/description",
          "source": "Disable distributing remainder width to stretched columns (width allocation on a 100-wide table with 3 columns: Without this flag: 33,33,34. With this flag: 33,33,33). With larger number of columns, resizing will appear to be less smooth",
          "source_sha256": "152290c70be37b7699011bdd66f201c3a763ce5fa86c8d6cd037fe718f8f8cc3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableFlags.Reorderable/description",
          "source": "Enable reordering columns in header row. (Need calling TableSetupColumn() + TableHeadersRow() to display headers, or using ImGuiTableFlags_ContextMenuInBody to access context-menu without headers)",
          "source_sha256": "92d75f7cc4dc58d8c3b696f6c6652d8b37568278240512998f9fc2fc5e18deb3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableFlags.Resizable/description",
          "source": "Enable resizing columns",
          "source_sha256": "42b20976712e6ea923e38c6db60dab65c8fc82f0e65fafe5aab86cd019d09454",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableFlags.RowBg/description",
          "source": "Set each RowBg color with ImGuiCol_TableRowBg or ImGuiCol_TableRowBgAlt (equivalent of calling TableSetBgColor with ImGuiTableBgFlags_RowBg0 on each row manually)",
          "source_sha256": "a28f996c225bd1a8f0e386afccfb675da3fa45b014a920e9133e3e305592dc0f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableFlags.ScrollX/description",
          "source": "Enable horizontal scrolling. Require 'outer_size' parameter of BeginTable() to specify the container size. Changes default sizing policy. Because this creates a child window, ScrollY is currently generally recommended when using ScrollX",
          "source_sha256": "e9614c2cf9bdef61d993f0f8b18b32cddf50a1ab4e8f4b40fa0924c3985e7826",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableFlags.ScrollY/description",
          "source": "Enable vertical scrolling. Require 'outer_size' parameter of BeginTable() to specify the container size",
          "source_sha256": "e8b5e04337b1d1ab659c3ea71b6d395d780c7e4e34f94c1087c0ba63c050b8b8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableFlags.SizingFixedFit/description",
          "source": "Columns default to _WidthFixed or _WidthAuto (if resizable or not resizable), matching contents width",
          "source_sha256": "7bd03d6a5b6b2657dcc715f5275c8456afd97a723d23f7f6347383ebab75692b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableFlags.SizingFixedSame/description",
          "source": "Columns default to _WidthFixed or _WidthAuto (if resizable or not resizable), matching the maximum contents width of all columns. Implicitly enable ImGuiTableFlags_NoKeepColumnsVisible",
          "source_sha256": "9597daf239dc7936afe683885ac9de7cb8f9d7384eb20c92f0360779f47bc2b5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableFlags.SizingStretchProp/description",
          "source": "Columns default to _WidthStretch with default weights proportional to each columns contents widths",
          "source_sha256": "76f10d47c0e85637e45cacd37a8076b1f0b9e9cd9143716a2656984b17e727e4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableFlags.SizingStretchSame/description",
          "source": "Columns default to _WidthStretch with default weights all equal, unless overridden by TableSetupColumn()",
          "source_sha256": "0cc43b89c1aae145c13f0d2d1b83f15fe5cecddd54cdcd9a9933b1fb952b9adf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableFlags.SortMulti/description",
          "source": "Hold shift when clicking headers to sort on multiple column. TableGetSortSpecs() may return specs where (SpecsCount > 1)",
          "source_sha256": "cb72671b9aaf1036189b18362aabb03600fae495e2c083171aa4d10d66c13ac4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableFlags.SortTristate/description",
          "source": "Allow no sorting, disable default sorting. TableGetSortSpecs() may return specs where (SpecsCount == 0)",
          "source_sha256": "1f96f4da2112e9b32defab47b21a45ea21d5f7c55958e42c4edb50f573b937d8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableFlags.Sortable/description",
          "source": "Enable sorting. Call TableGetSortSpecs() to obtain sort specs. Also see ImGuiTableFlags_SortMulti and ImGuiTableFlags_SortTristate",
          "source_sha256": "6c531c8981cef38d94a92917ce5e00aadb17cac0d50ff6921bd5ea0255488291",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableRowFlags.Headers/description",
          "source": "Identify header row (set default background color + width of its contents accounted differently for auto column width)",
          "source_sha256": "4e058a02510ac61bdcf609d575db6339076f681e41f294b973e8488f0274c742",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TableRowFlags.None/description",
          "source": "Applies no optional table-row behavior flags",
          "source_sha256": "a06939013aa568aae2e7285a24b2cfc40a1104d5a728c25eaf7940bd7d47bf1e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TreeNodeFlags.AllowOverlap/description",
          "source": "Hit testing will allow subsequent widgets to overlap this one. Require previous frame HoveredId to match before being usable. Shortcut to calling SetNextItemAllowOverlap()",
          "source_sha256": "1cf43190ed01a426273272dad0c32253492771e28388b42ed424d514f5a59534",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TreeNodeFlags.Bullet/description",
          "source": "Display a bullet instead of arrow. IMPORTANT: node can still be marked open/close if you don't set the _Leaf flag!",
          "source_sha256": "10667cb7044cc7bf49aa94e84655f6553b67970f9abf8d0ca33c1f8c8138c3e1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TreeNodeFlags.CollapsingHeader/description",
          "source": "Combines framing with no tree-stack push and no automatic opening during logging",
          "source_sha256": "ec126d59f0336d9093f69aaf318055faf2d4984ece3c2d4a0dcdfe65eeba63d9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TreeNodeFlags.DefaultOpen/description",
          "source": "Default node to be open",
          "source_sha256": "e2ec50b47890e75591a1935e170c15dd1b30cf607bb2d4db1cedab9df1112f84",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TreeNodeFlags.FramePadding/description",
          "source": "Use FramePadding (even for an unframed text node) to vertically align text baseline to regular widget height. Equivalent to calling AlignTextToFramePadding() before the node",
          "source_sha256": "71c3c711e8e31e744bbbaba44538fe2405ff3be3bdcda86b4201ee04ce1485a3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TreeNodeFlags.Framed/description",
          "source": "Draw frame with background (e.g. for CollapsingHeader)",
          "source_sha256": "778b3f230495df8f7ff73dcfe98a53df62d9e3466371af02d951590949ffca6e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TreeNodeFlags.Leaf/description",
          "source": "No collapsing, no arrow (use as a convenience for leaf nodes). Note: will always open a tree/id scope and return true. If you never use that scope, add ImGuiTreeNodeFlags_NoTreePushOnOpen",
          "source_sha256": "de53ad3e57ca54b51533f50349cc6d7a54c04f53ec0e050c3afbbbb6683f69f0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TreeNodeFlags.NoAutoOpenOnLog/description",
          "source": "Don't automatically and temporarily open node when Logging is active (by default logging will automatically open tree nodes)",
          "source_sha256": "a3f83ad1071eeac6e50540adf9c55c5abc5e2a3cfc0ef8a7042c73873afe9b3e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TreeNodeFlags.NoTreePushOnOpen/description",
          "source": "Don't do a TreePush() when open (e.g. for CollapsingHeader) = no extra indent nor pushing on ID stack",
          "source_sha256": "52822825bd27adbf0c77160f87486bc98ee5a583ec3e8e8a78843b34263cb1f3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TreeNodeFlags.None/description",
          "source": "Applies no optional tree-node behavior flags",
          "source_sha256": "b2c5daa31669c949beda40e4f49b4a92e0e6001dc0a9973ae5c007e24ce9771e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TreeNodeFlags.OpenOnArrow/description",
          "source": "Open when clicking on the arrow part (default for multi-select unless any _OpenOnXXX behavior is set explicitly). Both behaviors may be combined",
          "source_sha256": "0f5ea2da53871156862e9aebe03f6604f03538adb8cc04f93550a61380e07bf3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TreeNodeFlags.OpenOnDoubleClick/description",
          "source": "Open on double-click instead of simple click (default for multi-select unless any _OpenOnXXX behavior is set explicitly). Both behaviors may be combined",
          "source_sha256": "4131ca95b515914b8815c7daa9be4e3e8c140173cc30e4d873ae40a4e85d1e7e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TreeNodeFlags.Selected/description",
          "source": "Draw as selected",
          "source_sha256": "3b7ec3acaf1a7f3505c1923743663dd5e3af01b9e3d70d332de247cd769793f9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TreeNodeFlags.SpanAllColumns/description",
          "source": "Frame will span all columns of its container table (label will still fit in current column)",
          "source_sha256": "ed6db4bb2e36a0a656a238e5888b2ea82c6970b098b801cd2dce210ed021cb8b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TreeNodeFlags.SpanAvailWidth/description",
          "source": "Extend hit box to the right-most edge, even if not framed. This is not the default in order to allow adding other items on the same line without using AllowOverlap mode",
          "source_sha256": "30ed795ca0fcffa80f83b7d1c432e4552417f2e7f767dd993d946558e16dabb4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TreeNodeFlags.SpanFullWidth/description",
          "source": "Extend hit box to the left-most and right-most edges (cover the indent area)",
          "source_sha256": "a694b3fadf53bface429bfcd6d8acec2fd0d2b8416b1057c99132aff97f90649",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_TreeNodeFlags.SpanLabelWidth/description",
          "source": "Narrow hit box + narrow hovering highlight, will only cover the label text",
          "source_sha256": "079074740ee0e90510545883179e812330eae803fd0119bc1a22012b4220d940",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_WindowFlags.AlwaysAutoResize/description",
          "source": "Resize every window to its content every frame",
          "source_sha256": "4530d1ab61378512040682f7e8aff0191a09502a19750dbf8f61e757debe4d2a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_WindowFlags.AlwaysHorizontalScrollbar/description",
          "source": "Always show horizontal scrollbar (even if ContentSize.x < Size.x)",
          "source_sha256": "8ca90cc7e6244233ee83dd6d4291cc33530d99021dfbbc417324b3085742a717",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_WindowFlags.AlwaysVerticalScrollbar/description",
          "source": "Always show vertical scrollbar (even if ContentSize.y < Size.y)",
          "source_sha256": "c775505b2bbf035e191f714f90282535f7c764d67f4ff14c1c504c44f6b50fd0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_WindowFlags.HorizontalScrollbar/description",
          "source": "Allow horizontal scrollbar to appear (off by default). You may use SetNextWindowContentSize(ImVec2(width,0.0f)); prior to calling Begin() to specify width. Read code in imgui_demo in the \"Horizontal Scrolling\" section",
          "source_sha256": "517a747a05326a07495f98ab5cf7057e49caebb19aaa7929b48ce8eab15ba1d5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_WindowFlags.MenuBar/description",
          "source": "Has a menu-bar",
          "source_sha256": "ff5d396fbe27dbcf1cc3a2d0dbab2f1a03ea8102a60b3e627dfe9dc81fb218f3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_WindowFlags.NoBackground/description",
          "source": "Disable drawing background color (WindowBg, etc.) and outside border. Similar as using SetNextWindowBgAlpha(0.0f)",
          "source_sha256": "29e5d4795974a1ceee82bd42c1b285c9c4e139c3a7a38aacee7aab237aefb227",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_WindowFlags.NoBringToFrontOnFocus/description",
          "source": "Disable bringing window to front when taking focus (e.g. clicking on it or programmatically giving it focus)",
          "source_sha256": "eba20ebf0507bdba159065d1775683386862d0d8cafcdbc9a21bbf0a910c2651",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_WindowFlags.NoCollapse/description",
          "source": "Disable user collapsing window by double-clicking on it. Also referred to as Window Menu Button (e.g. within a docking node)",
          "source_sha256": "6019e8c777fef11fb118451309d734d0ea93dca3d1e20bd5fb7948070ac50b7f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_WindowFlags.NoDecoration/description",
          "source": "Disables the title bar, resizing, scrollbars, and collapsing controls",
          "source_sha256": "ec8bbb11a54a5f9f2199c3089eb0484e0661b22fa91d44c17a25df622960db1d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_WindowFlags.NoFocusOnAppearing/description",
          "source": "Disable taking focus when transitioning from hidden to visible state",
          "source_sha256": "0674293f17ca9e09c2ee7dbe308e9a9f65a0d3a9c27677c2c361b41e72f5b534",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_WindowFlags.NoInputs/description",
          "source": "Disables mouse input, navigation input, and navigation focus for the window",
          "source_sha256": "2cd9effe8ef7592e618e67af2d7a4773c50c70b473a68992fa53ea640f54d2f0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_WindowFlags.NoMouseInputs/description",
          "source": "Disable catching mouse, hovering test with pass through",
          "source_sha256": "74519b20cca752f302a28be6363d8045299643a28c0df7a9234a98cf781fa46b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_WindowFlags.NoMove/description",
          "source": "Disable user moving the window",
          "source_sha256": "a7f645b2bcc41ceb81b190fcbb0224028adaf6491b39626ff3e85b4438d3dd31",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_WindowFlags.NoNav/description",
          "source": "Disables both navigation input within the window and navigation focus toward it",
          "source_sha256": "9929cef9575c7e9fdf4860264c92ccce6dbddb48afc265b305f49405250823df",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_WindowFlags.NoNavFocus/description",
          "source": "No focusing toward this window with keyboard/gamepad navigation (e.g. skipped by Ctrl+Tab)",
          "source_sha256": "7b7a789391a3396ff4dde06080410b9eb3d6be3848a667de4939ca3d62db3f99",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_WindowFlags.NoNavInputs/description",
          "source": "No keyboard/gamepad navigation within the window",
          "source_sha256": "bdd0db56df10ed2ad6d677ca1fcaf328b0563422ff8e632e64edc5de30ddfe38",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_WindowFlags.NoResize/description",
          "source": "Disable user resizing with the lower-right grip",
          "source_sha256": "9332feecefd845142fec7c28a1902b3b555ffb85ea3f61e0c63e8baaadabcf4b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_WindowFlags.NoSavedSettings/description",
          "source": "Never load/save settings in .ini file",
          "source_sha256": "a9d58b1f3bcb4a9053be29313b5f9f6cc5bff012f6115bdeb38fb8cd69699537",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_WindowFlags.NoScrollWithMouse/description",
          "source": "Disable user vertically scrolling with mouse wheel. On child window, mouse wheel will be forwarded to the parent unless NoScrollbar is also set",
          "source_sha256": "0028f46330304218330a8c2ec6dcf3eea0eab80a2d406448aed3d8ea181c015e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_WindowFlags.NoScrollbar/description",
          "source": "Disable scrollbars (window can still scroll with mouse or programmatically)",
          "source_sha256": "c97aa5157131be1c3ea838dbde347277057d941796f9516a9e2f15233e6eb644",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_WindowFlags.NoTitleBar/description",
          "source": "Disable title-bar",
          "source_sha256": "36e414eb38ae3062fada958e1bcba50a5291c6b0ee46bf427be15ab47ae735a8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_WindowFlags.None/description",
          "source": "Applies no optional window behavior flags",
          "source_sha256": "8c0f6680a6a3f09eff83671f6bebe5857f34d49495918fa444d234678c3d8a9c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ImGui_WindowFlags.UnsavedDocument/description",
          "source": "Display a dot next to the title. When used in a tab/docking context, tab is selected when clicking the X + closure is not assumed (will wait for user to stop submitting the tab). Otherwise closure is assumed when pressing the X, so if you keep submitting the tab may reappear at end of tab bar",
          "source_sha256": "23fa519b62a161453fbafe509672c6633af0ff165ac7f4a6a630e7870ef13a04",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemOwnership.CritterInventory/description",
          "source": "Item is owned by a critter inventory or equipped slot",
          "source_sha256": "06d91df43d97fa1e6490c750a09f813d1f2a5bb82279cfbc0586693c7d8127a2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemOwnership.ItemContainer/description",
          "source": "Item is nested inside another item used as a container",
          "source_sha256": "e86ee9a826ec831c9ea65e1cb9b1fc4d8be6229114e9c0eaaf41e7ac85a62e40",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemOwnership.MapHex/description",
          "source": "Item is placed directly on a map hex",
          "source_sha256": "1dcc83a4d06d14e27f6e723acc239fe273d37eeeecda5925c756117c00e6e0d4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemOwnership.Nowhere/description",
          "source": "Item has no map, critter, or item-container owner",
          "source_sha256": "79fb74e6ce090f7247baea978e7546d7eef6307389d0372837a52a6f14ccfbf2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.AlwaysHideSprite/description",
          "source": "Prevents the item sprite from being drawn at runtime and hides it by default in Mapper",
          "source_sha256": "35bbd94aefd466f34cc5b9d2561f4cd554850378266d72e52df6b764d0a7d1d2",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.AlwaysHideSprite/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.Colorize/description",
          "source": "Enables ColorizeColor tinting for the item's map sprite",
          "source_sha256": "fc4a04b90caa7c6602957d4a260cffa28ad283acc864ed3116d2f5339e341817",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.Colorize/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.ColorizeColor/description",
          "source": "RGBA tint applied when Colorize is enabled; alpha also supplies the default sprite opacity",
          "source_sha256": "ebe85964e70fa2e7f5b2c315636c32f31b3a0a5115fb6d3f01eaf2ee68bd0de2",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.ColorizeColor/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.ContainerId/description",
          "source": "Identifier of the parent item while Ownership is ItemContainer; zero otherwise",
          "source_sha256": "c85a3e9812e7fc48a9e9a55573956448664d61f40174c8a48d8b6844555da73a",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.ContainerId/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.ContainerStack/description",
          "source": "Project-defined grouping key used to select and merge items inside a container",
          "source_sha256": "a88ea8a1f9f4099039b20d4ecede9d8894dd4fcda99b506ce39b39fd0b108481",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.ContainerStack/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.Corner/description",
          "source": "Wall-corner orientation used by map lighting and transparent-foreground behavior",
          "source_sha256": "daaaf946091f088f124d52c8573ad8e0b445dd278ffb9abb2bd6149263438b57",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.Corner/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.CritterId/description",
          "source": "Identifier of the owning critter while Ownership is CritterInventory; zero otherwise",
          "source_sha256": "13163e321142cdc5a2132d01d1196e72b7881953b23a53297d7b9456720b3d56",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.CritterId/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.CritterSlot/description",
          "source": "Inventory or equipment slot occupied while the item belongs to a critter",
          "source_sha256": "04356d847e6a4adad69bf5df6099ddd423664b953973627513ed2fb933c60886",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.CritterSlot/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.CustomHolderEntry/description",
          "source": "For a custom entity, names the holder entry through which it is attached",
          "source_sha256": "1050e666d84a94010a810b27fa9d7f3ad171a30f9a7d8d759bfb66b9dc73a348",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.CustomHolderEntry/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.CustomHolderId/description",
          "source": "For a custom entity, stores the persistent identifier of its owning holder; zero when the holder has no persistent identifier",
          "source_sha256": "f84e0928a758c5e497d28a042fd88d98879212b1ac2f6931f329526772f507b3",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.CustomHolderId/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.DisableEgg/description",
          "source": "Disables transparent-foreground egg processing for the item's map sprite",
          "source_sha256": "166fd72b77aab431e0f9a90190521321c69a4cc47972ada45f5515f2eaef9ff6",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.DisableEgg/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.DrawFlatten/description",
          "source": "Renders the item in a flat map pass instead of the normal depth-sorted item pass",
          "source_sha256": "8c42c5f7962a272d8b9e70aade0133b2beae3deb1203b7f6b0f01b2d864c097c",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.DrawFlatten/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.DrawMultihexLines/description",
          "source": "Draws repeated item sprites on footprint hexes generated by MultihexLines",
          "source_sha256": "e1f92c7770e5a03345518079545fbedfff6a27a97c418d31d7d98e5399525ae3",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.DrawMultihexLines/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.DrawMultihexMesh/description",
          "source": "Draws repeated item sprites on the explicit MultihexMesh hexes",
          "source_sha256": "c24ca063a44af2b82ae183fab57ad10825260e0e22e2f52d4d288d5be2d51181",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.DrawMultihexMesh/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.DrawOrderSubLayer/description",
          "source": "Fine ordering inside the item's primary draw-order layer; synchronized when changed at runtime",
          "source_sha256": "55fb2bfaa60af95d8078bb9e8e7479fcf877e7408b86da776626d6946d46a736",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.Elevation/description",
          "source": "Vertical rendering elevation of the map item",
          "source_sha256": "1a2a1b15c27eca391a5e41748dc34b495971a1be9dd6d1f4bf7c1cb3a34cd53b",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.Elevation/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.ExplicitlyPersistent/description",
          "source": "Marks an entity as independently persistent rather than persistent only through containment by another entity",
          "source_sha256": "909a82b41efa2f84a7e1fd273e8267c3b69fc21f3390ff505defbb973cf11e51",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.ExplicitlyPersistent/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.Hex/description",
          "source": "Origin map hex used while the item is placed on a map",
          "source_sha256": "dffc781d0273108a8166191f1ee7febb58907456ba4a0c8571a8548e5dbf7a33",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.Hex/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.Hidden/description",
          "source": "Server visibility flag that suppresses a dynamic item from client views while set",
          "source_sha256": "637af3b02f94ec0a51dfc10801f441ca0dc7c2a5ad7f5bde36e947edcdecd812",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.Hidden/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.HideSprite/description",
          "source": "Hides the current client map sprite without removing the item's map presence",
          "source_sha256": "03595d24e3807b1bd2adda9a5d7fbc3e87341f55193ecc8f6ed0ef53830613db",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.HideSprite/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.InitScript/description",
          "source": "Server initialization function called after the item-init event for a newly created or restored item",
          "source_sha256": "92c8c2cd2af271cbebda880be7310c5cdae7e3a75135bc0873b8dbb4dfa56b82",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.InitScript/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.InnerItemIds/description",
          "source": "Persistent identifiers of the items directly contained by this item",
          "source_sha256": "e0d3bca11c2ebef564c2c5adaea9ac4544cd821ae15094f6fd6791ea1405a876",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.InnerItemIds/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.IsGag/description",
          "source": "Marks a blocking item as conditionally passable through the map gag callback",
          "source_sha256": "d6ead5d157ce9a339e1981db6301c067f80773f5dc0006728c6a64a4efb2eb6d",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.IsGag/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.IsRoofTile/description",
          "source": "Selects roof rendering instead of ground-tile rendering when IsTile is enabled",
          "source_sha256": "b019a3275120fddbf135b646be5d3691f333ec42ea2c77142e8263a5d66bc64a",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.IsRoofTile/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.IsScenery/description",
          "source": "Classifies the item as scenery for Mapper filtering and flat-render lighting rules",
          "source_sha256": "e41d65a20f9fbd4390072cc498f637608fde707756922c1a5692e7612c840c4a",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.IsScenery/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.IsTile/description",
          "source": "Classifies the item as a ground or roof tile rendered in a tile layer",
          "source_sha256": "03a9b963535708e07109769fdd25dea31bae0958dda28e54cc151695caa469cb",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.IsTile/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.IsTrigger/description",
          "source": "Includes the item in map trigger lookup and movement-trigger processing",
          "source_sha256": "7cfbc5d256b1e4dfb364fe05767e6bbb741d5b9696c0b4e07cbb0047694970c1",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.IsTrigger/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.IsWall/description",
          "source": "Classifies the item as a wall for Mapper filtering and map presentation",
          "source_sha256": "5dc61a298f187be1900a6a22c3319644558b714cd962655e392997b97f85b668",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.IsWall/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.LightColor/description",
          "source": "RGBA color emitted by the item's light source",
          "source_sha256": "571e9fe8175d07be7ddd5db7a81dc0bcd27976f8e519632996682416dbb95931",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.LightColor/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.LightDistance/description",
          "source": "Radius in hexes reached by the item's light source",
          "source_sha256": "ad159f0529a1fdffa5884404e3e1f88a13da7381faf87c08f13a0918ab29bc6e",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.LightDistance/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.LightFlags/description",
          "source": "Bit mask controlling global, inverse, and direction-blocking behavior of the light source",
          "source_sha256": "8046c6aff9fc965d52aa6f346beacf6560ff28bdb8b15e8346f029d6fd0ddbc4",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.LightFlags/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.LightIntensity/description",
          "source": "Signed percentage intensity of the item's light source",
          "source_sha256": "b58932e26f9f005302377f2cfa1110c75ded4c1ea422638619290be9f1ed37ba",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.LightIntensity/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.LightSource/description",
          "source": "Enables a map light source centered on this item",
          "source_sha256": "d287baff16708fe3fc54acc82e11370dbe4c75368b824c1217b6701811552284",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.LightSource/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.LightThru/description",
          "source": "Allows map light propagation through every hex occupied by the item",
          "source_sha256": "1037af338e9b7376b3a18c459cdfadf082ea98fba93afd2c1cd145c9a404f823",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.LightThru/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.MapId/description",
          "source": "Identifier of the owning map while Ownership is MapHex; zero otherwise",
          "source_sha256": "2c46f45492a4e7e8b84eea7f0d09c5ddc481e712e59c1f4cb3f1a3847a38f066",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.MapId/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.MultihexGeneration/description",
          "source": "Mapper coalescing strategy used to build MultihexMesh from compatible item placements",
          "source_sha256": "fc29904b19512b32c28da26f6e561fade5d8e0e100c83d4cf5b83fd90d713b77",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.MultihexGeneration/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.MultihexLines/description",
          "source": "Direction and step-count pairs that trace additional footprint hexes from each mesh origin",
          "source_sha256": "cb8c7af3792f23d28e56ca10e77c1e42880daa622880376c303f6e8759237e73",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.MultihexLines/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.MultihexMesh/description",
          "source": "Explicit map hexes that share this item's footprint and optional repeated sprite",
          "source_sha256": "64d3fad57d3b2158528f52ee892636e53709072c139e7c15d4e7cf2b36cd7e3b",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.MultihexMesh/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.NoBlock/description",
          "source": "Allows movement through every hex occupied by the item",
          "source_sha256": "47c83de8812ede09ff101593fe047c00fe7fe8ad0df398ad0825d74c6e938d8c",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.NoBlock/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.NoHighlight/description",
          "source": "Prevents the client from applying normal item highlight presentation",
          "source_sha256": "3913f9b16e667e72c3057841165a1c035be5191e2d72d60203a709d27322eb80",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.NoHighlight/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.NoLightInfluence/description",
          "source": "Prevents ambient map lighting from tinting the item's sprite",
          "source_sha256": "a0eac1c042bcb0ffd45a7ce06e9181e22ccf36207156193ed9c52f5ce387d08b",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.NoLightInfluence/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.None/description",
          "source": "Sentinel indicating that no Item property identifier is selected.",
          "source_sha256": "12947acaacda01841188bed6f9d9c21864529bc16b0f5984bab37ba39e056544",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.Offset/description",
          "source": "Pixel offset applied to the item's map sprite from its origin hex",
          "source_sha256": "7a272511540548ee8b56d6ed151072068dcc37b4a6dfa1e42ea13f148ad16132",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.Offset/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.Ownership/description",
          "source": "Current placement category: map hex, critter inventory, item container, or nowhere",
          "source_sha256": "7f18b6727e88f6a9f2dd9e4ac8fa9f2954debee9351d8c1d9cda9660afc20d7f",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.Ownership/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.PicInv/description",
          "source": "Sprite resource used to present the item in inventory interfaces",
          "source_sha256": "a14861a79d378dd986d0c5a1f31cb43d745b23dcd5502f66ca74fa8e5a4f15ee",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.PicInv/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.PicMap/description",
          "source": "Sprite resource used to render the item on a map",
          "source_sha256": "ab14f55b75cc41008483bf44e6eb5d60046db1eb89c820cc29227f941f262567",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.PicMap/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.ShootThru/description",
          "source": "Allows projectile traces through every hex occupied by the item",
          "source_sha256": "bc1513365e7604c60ab42986e2e235bf63ae81f5081ee66377dbc348d0a157ae",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.ShootThru/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.Static/description",
          "source": "Marks map-authored item data as static scenery rather than a dynamic item entity",
          "source_sha256": "5fd25d0321400cdb6825f1b256dbf52f6e3a41c4be58a508e6375fe045a30fb2",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.Static/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.StaticScript/description",
          "source": "Server callback invoked when a critter interacts with this static item",
          "source_sha256": "80accddad61a6cbeb107b37c7e6fc4691023d6304302fbd93627672e584a67ea",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.StaticScript/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.TileLayer/description",
          "source": "Zero-based ground- or roof-tile draw layer selected for a tile item",
          "source_sha256": "a406efdae80c13b34e1cd584889d5d940a6943a27c70fd1f486b7f7a37b131cf",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.TileLayer/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ItemProperty.TriggerScript/description",
          "source": "Server callback invoked when a critter enters or leaves this trigger item",
          "source_sha256": "8fde30c2a2608ca0eb769ffd696ba7fee6c5df33a2002299a603d40e4fe273d7",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Item.TriggerScript/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.A/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_A` by the application input layer",
          "source_sha256": "8ef0bfa4c3845b2873a645d4c15ea59ae623094652c7a7aaf7eae06caec01fea",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Add/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_KP_PLUS` by the application input layer",
          "source_sha256": "bf55b3ad07f7da4381623785fb17110228e11f56d5019fe9f0c92d59598c53e7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Apostrophe/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_APOSTROPHE` by the application input layer",
          "source_sha256": "ba1ffb967fc5fe3ce1ec8e5ac2f9198d53fceac417ead7b03c721454fbcff572",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.B/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_B` by the application input layer",
          "source_sha256": "d29c65f102ec91547d4682933751862c05d3c5e1401fdb16d8dc3344f086e435",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Back/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_BACKSPACE` by the application input layer",
          "source_sha256": "5c57c82b3297d7f6785432ffa2f75b2d6e0670df6f9ef7f28984c3eb86be456b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Backslash/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_BACKSLASH` by the application input layer",
          "source_sha256": "2f0bb389cb7c6152bed3eeba9211e499b7770bd716fe16a02aa3174e4a61e97a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.C/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_C` by the application input layer",
          "source_sha256": "0ed29cec8becc4092465f5e67a75a4718350c04b05e6e7b14693b21b4ad377b6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.C0/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_0` by the application input layer",
          "source_sha256": "d0b2b4fec0449e550c08034a29384cdf1e797ceeb89641f5e52080bc2c81f913",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.C1/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_1` by the application input layer",
          "source_sha256": "4b88fac18220b81fc2f3c26ea5c19802573f830381eb2bb07f2b965e084fcdbd",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.C2/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_2` by the application input layer",
          "source_sha256": "a61af93930775833f8cb454c8c029b36ca873395d3a0eb77bd97e808b6a0a7ef",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.C3/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_3` by the application input layer",
          "source_sha256": "92bdf62678160305e2fd2ad4ccf7a3d1278ffe46f604dd85a29dfa3a23714621",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.C4/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_4` by the application input layer",
          "source_sha256": "2a27f134b154eb568dc41cbe621cd0bc68d9875e314b0e0a0afb58664ff8dc35",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.C5/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_5` by the application input layer",
          "source_sha256": "1cbe54550b823df581987670c29459dde4cdc5a2dcefcdc922a1ae0dea3dee89",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.C6/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_6` by the application input layer",
          "source_sha256": "d3c7bb75f4a621b2ac7e7e71721588e3e054345d3729966b34612ec4ef8879e1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.C7/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_7` by the application input layer",
          "source_sha256": "6f4579fefda743e641412238a96cecf6759afa636e91b4f899b3136912e2acc8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.C8/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_8` by the application input layer",
          "source_sha256": "08252c098361ba091bbfaba34ad58f06713e8ab7b78bd896582a75e99b28b3f8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.C9/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_9` by the application input layer",
          "source_sha256": "8bd5790a356f54d9fd8dab7994b9bcbf77c60e9242f4caaee3eb0022d77c5aaa",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Capital/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_CAPSLOCK` by the application input layer",
          "source_sha256": "b128a9551ed0a301c84cf211cd672563177903ddea3db1574d4423e7bb6cedfb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Comma/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_COMMA` by the application input layer",
          "source_sha256": "dd2086aba6a66375fe37160270d522f96ccdd3d7f4755a4afb754e478c3d0809",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.D/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_D` by the application input layer",
          "source_sha256": "b73311acc21a2fb164dc9c224d63cca96ae3305d85e602ef7ccf81d547fd0475",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Decimal/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_KP_PERIOD` by the application input layer",
          "source_sha256": "9e6dba27654acaa9bb428d98f05b9a3813d2342e80214284e9d8df432e72f889",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Delete/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_DELETE` by the application input layer",
          "source_sha256": "c128f6b011f798f553c70dfd8d82e35ba4d8ce65330b307569bdf01d3f0f97a9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Divide/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_KP_DIVIDE` by the application input layer",
          "source_sha256": "6788d0b1683ecacc1cd77508ac077cbf23697c3f2c720b3d42e8518e47a0c80c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Down/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_DOWN` by the application input layer",
          "source_sha256": "9fd066132ab86a5251e4d74556aaeb4c0cd131d16dff28a209eb3c534cf19022",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.E/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_E` by the application input layer",
          "source_sha256": "ec8da013c060cdbd098fce45c05bd561d21859f99bb9f9cd65e63e37c2203d44",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.End/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_END` by the application input layer",
          "source_sha256": "43dd2a6fda01fdab7b839ec35263fb4c6cefa4aec342cb311904d832bf59a699",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Equals/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_EQUALS` by the application input layer",
          "source_sha256": "5678e0c9aa231e340c55b070f48f085e7ef3772cf83a13eb9367846c1f6a3e96",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Escape/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_ESCAPE` by the application input layer",
          "source_sha256": "a5cc817e02335beabc606d913b4cadffa1c18fb777ecd7a570532a31d9fd90e8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.F/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_F` by the application input layer",
          "source_sha256": "ca866b1a86852f0f4aacebec5f6430213eeeae5168e8d87e6a4c005e6f44ad5d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.F1/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_F1` by the application input layer",
          "source_sha256": "b926801b34973b4b5f6cc01da3d278d904d9143f5d265f0888c4348474e09227",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.F10/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_F10` by the application input layer",
          "source_sha256": "ccbb2e1e70b5d5d94011ad7228536e063046c95e812a99beba6f4681cb3d2426",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.F11/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_F11` by the application input layer",
          "source_sha256": "0f8159d2162000bd331c1f9ed763d52a4b826000f369e6fa82e37aa347c26b11",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.F12/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_F12` by the application input layer",
          "source_sha256": "4e94e57c24e29a4e28a3a65954f3c0a0772758158edae19dd668ae0a34785c6c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.F2/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_F2` by the application input layer",
          "source_sha256": "d93dc55e7c919ca41043a3bd1f689380e168f3987a49997b269bc48ea348f70c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.F3/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_F3` by the application input layer",
          "source_sha256": "5c4c5ebbe5438b9bfcc2e65c12ca05e34b5fcbddc0c36159c8b388a87bcb6cc2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.F4/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_F4` by the application input layer",
          "source_sha256": "4544c472738a18b2e26069aec1b5bb3fa1e42b953d9caceb0e4629f5a5180653",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.F5/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_F5` by the application input layer",
          "source_sha256": "66d381ff16e5c2bad6114210a3bc3b620ccc9ce7a571c00ff8f9876074baac02",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.F6/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_F6` by the application input layer",
          "source_sha256": "9c0fe1f43f27a898dd8172fbd04e59c52c7499aa315f857f4a48865980fc53a0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.F7/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_F7` by the application input layer",
          "source_sha256": "ba3fccaf0d9ded52db550ba5bb7b251041bc9f6df4d439932bd7b278c51c7b3c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.F8/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_F8` by the application input layer",
          "source_sha256": "0453420f6b64c725b1528eacbb49ab336128f15b77d3603a8b138c43ba96b379",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.F9/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_F9` by the application input layer",
          "source_sha256": "6165d414f2ba472aee677580ba71fef6589c9bd822b580ea54b0b540107e1876",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.G/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_G` by the application input layer",
          "source_sha256": "03df72cc22075da8561e37bcceba7f4f1dc6952aa3407b9ef468cfe834567fa8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Grave/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_GRAVE` by the application input layer",
          "source_sha256": "e08888d2bbe53f40903a343c50717fcb9507367d8a04a71bef43179e52a11738",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.H/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_H` by the application input layer",
          "source_sha256": "1e78d72776faa4ecbf924db6184501036267f3f90313dc85275cdbe02c4197e4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Home/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_HOME` by the application input layer",
          "source_sha256": "7bafa9b6a058bb4c331b268690cba3073804099df3b22f7d94ddef4526f22f34",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.I/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_I` by the application input layer",
          "source_sha256": "7fd695f22377823bba6818d453cd89e5cc0a89c4ef270ba3bee7a2924d062048",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Insert/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_INSERT` by the application input layer",
          "source_sha256": "3f96285905b91ee4987e8d9fd053cf11555843bcb666683aa46dd75759c70d22",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.J/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_J` by the application input layer",
          "source_sha256": "30608cdc2b88d8886bdfa761f1e36a83ad708152a11e971612b52e5a77d614a1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.K/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_K` by the application input layer",
          "source_sha256": "a36ecf2a18d84b8404b3b8f938f91a947fe9a16736bc409922f08e7d18e858bc",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.L/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_L` by the application input layer",
          "source_sha256": "129358368793577a0dc499ba25f3ae5695393bd2836ea99732105999773891cd",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Lbracket/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_LEFTBRACKET` by the application input layer",
          "source_sha256": "aa280fa5b9f42cdb74a301309b878495fd195af099bcf55f790695befce5ec3a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Lcontrol/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_LCTRL` by the application input layer",
          "source_sha256": "9c4d8d73007bf55bd6f4fd13eed95d6fff5a4237321449abe25897f8f6179573",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Left/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_LEFT` by the application input layer",
          "source_sha256": "e429ea26b912158c00a91cdb73c59c3349f03bd6c30ab261632303dcddd349b2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Lmenu/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_LALT` by the application input layer",
          "source_sha256": "5cc817af3a003b2cd6d072e1b4f5faaae3aa929d33fe11e48701e5f16bb6901e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Lshift/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_LSHIFT` by the application input layer",
          "source_sha256": "cc0dfe3e350d66abad8f23d598fa3331330c40919c6fbe112dbb1b5dde29afa9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Lwin/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_LGUI` by the application input layer",
          "source_sha256": "1d24ee4093bf351ee5e5285362a98d8fd5262f7b30b7be140feb2352b04f6bdb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.M/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_M` by the application input layer",
          "source_sha256": "fbe42b39356de8235a45d6547022790add19f0eb8bc82661feba0dd24d4baddf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Minus/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_MINUS` by the application input layer",
          "source_sha256": "df035568e6021a5a206cb18b8cb23d02a7107440afb599a3f3b128e2ab1b263b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Multiply/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_KP_MULTIPLY` by the application input layer",
          "source_sha256": "08ab0d890ec15d9083965c5e21d0232562ed95226e2ea47656a7f5152fcb8c8b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.N/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_N` by the application input layer",
          "source_sha256": "e6ef062d224f6aa4f8899ed0f51eb22ed1dd464f1e6797bfab01d7bb8791c49c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Next/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_PAGEDOWN` by the application input layer",
          "source_sha256": "17bf343cee490e89bde3c63e098d8261c1f0d7b49587fab37a3d24cb2ed12b03",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.None/description",
          "source": "Indicates that no physical or synthetic keyboard input code is selected",
          "source_sha256": "f41d7fbd213db3e4c331bffa7c2e9958a15cf4557d6b6832a59b38c53505b040",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Numlock/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_NUMLOCKCLEAR` by the application input layer",
          "source_sha256": "5f6b3a24bbed95fd489952733a59e8912be44dd24ca688c3b1e76b31b160c243",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Numpad0/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_KP_0` by the application input layer",
          "source_sha256": "8275cba38e9ee9b2031556b0f8da02421b8aec11a17d467b0500ae05c71e2f62",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Numpad1/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_KP_1` by the application input layer",
          "source_sha256": "3a1f2a81317102545e85795fbb189986aaf3475e2661d18ec4afe2dbdcee23de",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Numpad2/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_KP_2` by the application input layer",
          "source_sha256": "324f26b9cf7c8d532730061d4ab85eaa547ad30511f6b02304a467112d225e3d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Numpad3/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_KP_3` by the application input layer",
          "source_sha256": "6c408a985c0522b84fe7a158bd21c7b8eead57c0c4b980ea6f953b367f964755",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Numpad4/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_KP_4` by the application input layer",
          "source_sha256": "18bf71444bd711292ff03ada740e8419b19fc26c35cc3e3ff803a350eb8deb89",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Numpad5/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_KP_5` by the application input layer",
          "source_sha256": "e356e1a5a3ae3990ab46ec821cde1a5e3daf22936b910ee6658484bb1553021c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Numpad6/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_KP_6` by the application input layer",
          "source_sha256": "0f5044e313f19ce69b3c7602ce13ff98d31d2482a01befad1488ea035258c031",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Numpad7/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_KP_7` by the application input layer",
          "source_sha256": "6bd493cee22acd58a7792bd46845b02723fea69d9b0e2a332c16728ce4943629",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Numpad8/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_KP_8` by the application input layer",
          "source_sha256": "60cf85aa19cef8b3fc7b0d6862a8d0f2580466fbf8487659b80f1615eea43235",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Numpad9/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_KP_9` by the application input layer",
          "source_sha256": "8c24ba8403377e7b1a5c98cd530063ec44e8134c3cfc54234a271c73365603cb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Numpadenter/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_KP_ENTER` by the application input layer",
          "source_sha256": "15d430df7f69abb08ad9d7c7f4164327ae12ea1ba88e25e8444dd28ec35866fe",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.O/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_O` by the application input layer",
          "source_sha256": "f2617de9220cef49c501135157233947737e38cfa6142f0406eb833f499e06d0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.P/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_P` by the application input layer",
          "source_sha256": "b90074674a4281d9979dd90f96f453d1453790ee6e38a6ba91a0b4ef28cac155",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Pause/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_PAUSE` by the application input layer",
          "source_sha256": "cf7ac8e87826389765b9e474fe0a61bdf9a8a40a254cef191bd95944164b402f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Period/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_PERIOD` by the application input layer",
          "source_sha256": "19b5bd4e145889ca7444bb4f465f41dec6f094f8cbb08c4032df92902291f5a2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Prior/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_PAGEUP` by the application input layer",
          "source_sha256": "d0fd925cd4a4e4ade1ce83d60a72dba5fed7ecb299088d3221009087bd613f09",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Q/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_Q` by the application input layer",
          "source_sha256": "17a036dc4988bb6dfb7273e80e13ab28f74c5bd67831d3fa36ef2ea9a363494a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.R/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_R` by the application input layer",
          "source_sha256": "164c5d131e338807c9403aefbf62164427710367f0362afebbb6f3180bb17732",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Rbracket/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_RIGHTBRACKET` by the application input layer",
          "source_sha256": "d8137c9c14a7115bc032e1dbfabac56a0fc3085e9bc9fc77f37eacb7db87a170",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Rcontrol/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_RCTRL` by the application input layer",
          "source_sha256": "2cf0452ca80548eba09b0be00b3ae9d9e3f0d0284217c1051ebcb87fdad19e1c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Return/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_RETURN` by the application input layer",
          "source_sha256": "3f33d8fad79876dfd7b7b40c0bb3088ee47437390fdcd412e54b3ed765df32de",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Right/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_RIGHT` by the application input layer",
          "source_sha256": "f1678e8a34bee010acaafaca2eb44c08edecaa3b75031bfb27cf3132704084f2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Rmenu/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_RALT` by the application input layer",
          "source_sha256": "33fe87e1b79bd9e9897ee3824ebf77a6623e19ccd845cca2fe3d1a4481376adf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Rshift/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_RSHIFT` by the application input layer",
          "source_sha256": "b9b0a42a180803224eb70528cb8fca73b25af7b18553308017acabc8a4dc1229",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Rwin/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_RGUI` by the application input layer",
          "source_sha256": "358800303697cb3bfc23672bdaf74c69338e9b427ae558f03c1265659adf35c3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.S/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_S` by the application input layer",
          "source_sha256": "9dac42a3314e6d10d316f34f0268d3996a22982edd7545a8bf3859750c36e335",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Scroll/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_SCROLLLOCK` by the application input layer",
          "source_sha256": "328c7c12061491121bf157b695362c99c4a0d4114a511438d9e1f81618b1e54e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Semicolon/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_SEMICOLON` by the application input layer",
          "source_sha256": "ec6ec1255351fb36188de74f33b4dfb83e21a80eed13925a89b4bc6bcccd0d41",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Slash/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_SLASH` by the application input layer",
          "source_sha256": "d1be3a8e8ba95da9a450d31ee22005e1ee0a81d40a451ad1ec6f1fda70ed717f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Space/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_SPACE` by the application input layer",
          "source_sha256": "1ec35e2398409ae1074c432191f208197bfc1d6e7265d8cd705d839fc8055de7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Subtract/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_KP_MINUS` by the application input layer",
          "source_sha256": "d0a06322762fddba7afa584bddac03515424582edf00109820cf6406239cb46a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Sysrq/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_SYSREQ` by the application input layer",
          "source_sha256": "abeba163acfc7946417320eaedda6defad9499923d91386f59fc63bdb47578a4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.T/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_T` by the application input layer",
          "source_sha256": "4da9c981e061e9c596737ca0ea833f1210ca291c202677fefcdff6818befaec4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Tab/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_TAB` by the application input layer",
          "source_sha256": "e05c9ea3dfe160b7b6bf9b68808cb8d51bab1c617d759477d1adc3533839c617",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Text/description",
          "source": "Identifies a synthetic text event whose UTF-8 input, clipboard, or dropped-data payload is carried separately by the input event",
          "source_sha256": "b38b5ae9f677773ac72ab879aed6530989e1205800b9863d7e5f1da8e3ae7d49",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.U/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_U` by the application input layer",
          "source_sha256": "c9a8f1ec609ac732d1144ccfeb6e4ca0d00854cdf8597abc7bdc8a8d112ea1ef",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Up/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_UP` by the application input layer",
          "source_sha256": "1cd9f7069243df47a6303851d580e5571fd3c9366154d11a1d8b1e5f99ab4b55",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.V/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_V` by the application input layer",
          "source_sha256": "e4f75e350bab35f74d9e90a23165ad41ab0fd182c88e9dce19fa916c92b0b9f9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.W/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_W` by the application input layer",
          "source_sha256": "7622ff38251f4f3c8afb26e177f0d4efd2ff43747eb2887c9d36cc246019f12e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.X/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_X` by the application input layer",
          "source_sha256": "bf3ba11db6ff338de4697eb9a2ff2e2dc11dcd40f5fc3e7b3370f13f0d2f3047",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Y/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_Y` by the application input layer",
          "source_sha256": "e73d74cba4b09e787a6bd0548aa4ce082517b22e1eae38dde517063467ea4e9e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.KeyCode.Z/description",
          "source": "Identifies the physical keyboard key mapped from `SDL_SCANCODE_Z` by the application input layer",
          "source_sha256": "5b7e73dc4fb00bb1e58723d8de45587295bf6d8bc1fb04657d12aa723e75db3d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.LocationProperty.CustomHolderEntry/description",
          "source": "For a custom entity, names the holder entry through which it is attached",
          "source_sha256": "1050e666d84a94010a810b27fa9d7f3ad171a30f9a7d8d759bfb66b9dc73a348",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.CustomHolderEntry/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.LocationProperty.CustomHolderId/description",
          "source": "For a custom entity, stores the persistent identifier of its owning holder; zero when the holder has no persistent identifier",
          "source_sha256": "f84e0928a758c5e497d28a042fd88d98879212b1ac2f6931f329526772f507b3",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.CustomHolderId/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.LocationProperty.ExplicitlyPersistent/description",
          "source": "Marks an entity as independently persistent rather than persistent only through containment by another entity",
          "source_sha256": "909a82b41efa2f84a7e1fd273e8267c3b69fc21f3390ff505defbb973cf11e51",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.ExplicitlyPersistent/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.LocationProperty.InitScript/description",
          "source": "Server initialization function called after the location-init event for a newly created or restored location",
          "source_sha256": "06ca5c2f44541f145f85a9eb9c2d230cb115412a59951ee233501cefa4eeae3a",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Location.InitScript/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.LocationProperty.MapIds/description",
          "source": "Persistent identifiers of the maps owned by this location, in location-map order",
          "source_sha256": "c534f6bf02f4b86795dfab21f1c845908827df13ba74c7a0a6d9b831e615232e",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Location.MapIds/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.LocationProperty.None/description",
          "source": "Sentinel indicating that no Location property identifier is selected.",
          "source_sha256": "fbfbc6ad589d5aeea5f4f72d1d68336f175b245d96f6ce6707ef8625aa3bab2c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MapLayers.All/description",
          "source": "Draw every map layer",
          "source_sha256": "97eb6453636a4cc65adff0f55378c995e2f05670e31c9be7b1ea1d6b9f81fec7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MapLayers.Critters/description",
          "source": "Draw critters",
          "source_sha256": "7ae00faceea407fa998b9ed688aa4b79b7c4aab62bde09321c0713a22c7f2f3e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MapLayers.Fast/description",
          "source": "Draw the fast-rendered layer",
          "source_sha256": "2018d043124d4407a640da7cfe2768dcc0b584254c9453a5d85c08cc7ad56fe4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MapLayers.Items/description",
          "source": "Draw map items",
          "source_sha256": "977a33ac266114c830b04befd5e815bbd1a304abe3e91367ab5e5aef589e1927",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MapLayers.None/description",
          "source": "Draw none of the optional map layers",
          "source_sha256": "65c83ce82748cdd467aa32547b42a4c8ae0081ba86d555e967ce11876739d340",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MapLayers.Roof/description",
          "source": "Draw roof tiles",
          "source_sha256": "ad070284074529ccbcc6df7fdd6c76d6da86543869a811610d1211f73ff93a08",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MapLayers.Scenery/description",
          "source": "Draw scenery objects",
          "source_sha256": "3b140a72116c5b91419cd27c37b406960b597972e6945e0120ca910f81f33a4b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MapLayers.Tiles/description",
          "source": "Draw ground tiles",
          "source_sha256": "11a996205314597580ea6fd429c2d5479c7e09a35e37a5860ec09108a91d4611",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MapLayers.Walls/description",
          "source": "Draw wall objects",
          "source_sha256": "d0a058737fcea46d2ec68030b632c75e16c6ea8a64cf80b6911fd75588ecbab5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MapProperty.CritterIds/description",
          "source": "Persistent identifiers of the non-player critters owned by this map",
          "source_sha256": "383b430c8c33bf1885c300520c17fd38067ff56b78d668e11ac9244035dd8e8f",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Map.CritterIds/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MapProperty.CustomHolderEntry/description",
          "source": "For a custom entity, names the holder entry through which it is attached",
          "source_sha256": "1050e666d84a94010a810b27fa9d7f3ad171a30f9a7d8d759bfb66b9dc73a348",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.CustomHolderEntry/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MapProperty.CustomHolderId/description",
          "source": "For a custom entity, stores the persistent identifier of its owning holder; zero when the holder has no persistent identifier",
          "source_sha256": "f84e0928a758c5e497d28a042fd88d98879212b1ac2f6931f329526772f507b3",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.CustomHolderId/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MapProperty.DayColor/description",
          "source": "Channel-major RGB values for the map's corresponding daylight color keyframes",
          "source_sha256": "8c28d7782ce766bae7a87f21602faf98ccc756e3917e876a0278936521dae885",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Map.DayColor/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MapProperty.DayColorTime/description",
          "source": "Map-specific daylight color keyframe times expressed in minutes of the day cycle",
          "source_sha256": "063442b339f136a862ee76aca06b2b9f76af23eef2bdcef6d597bacafc297b48",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Map.DayColorTime/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MapProperty.ExplicitlyPersistent/description",
          "source": "Marks an entity as independently persistent rather than persistent only through containment by another entity",
          "source_sha256": "909a82b41efa2f84a7e1fd273e8267c3b69fc21f3390ff505defbb973cf11e51",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.ExplicitlyPersistent/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MapProperty.FixedDayTime/description",
          "source": "Map-local day-time override value, conventionally expressed in minutes and interpreted by game scripts",
          "source_sha256": "733a7356ce97118638d8a96d452edf88bb2b23c6af70c8ca437978b1124fee05",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Map.FixedDayTime/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MapProperty.GlobalDayColor/description",
          "source": "Current client-side global daylight color supplied through SetDayColors for scripts and effects",
          "source_sha256": "5062b0632e9dfa916cb4a1452f07becc6317345af600ffa19e3857a4faf8a19d",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Map.GlobalDayColor/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MapProperty.GlobalDayLightCapacity/description",
          "source": "Current daylight capacity percentage for light sources flagged as global, clamped to 0 through 100",
          "source_sha256": "0e896da615c499ca6b6d72bbfb4ff6cce8634eee240e64afb1eb6f58bb28a46d",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Map.GlobalDayLightCapacity/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MapProperty.InitScript/description",
          "source": "Server initialization function called after the map-init event for a newly created or restored map",
          "source_sha256": "b346fcb09dd09317254f8bd4a470e5686139f49d77fdddb12cc789c9b9a54fdf",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Map.InitScript/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MapProperty.ItemIds/description",
          "source": "Persistent identifiers of the dynamic items placed directly on this map",
          "source_sha256": "f68bdd19c02a3c7072ef0c3f60c46e20895921dc5864e549679ff50e67587c65",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Map.ItemIds/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MapProperty.LocId/description",
          "source": "Identifier of the location that owns this map",
          "source_sha256": "a03a7cf8f8affc1651b2f66086f024e3a3e58ae8f73bc470d3f60fd31ec661e9",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Map.LocId/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MapProperty.LocMapIndex/description",
          "source": "Zero-based position of this map in its owning location's map list",
          "source_sha256": "edc543ed913945fdf817c99f20c8174c2f26112564f57b9a1d30a42ba8ba5d59",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Map.LocMapIndex/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MapProperty.MapDayColor/description",
          "source": "Current client-side map tint supplied through SetDayColors and consumed by map rendering",
          "source_sha256": "7d45ea8d535569211311209d1e1b090eff8bd95a7711ad597fe4674d6b8c39f3",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Map.MapDayColor/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MapProperty.MapDayLightCapacity/description",
          "source": "Current daylight capacity percentage for ordinary map light sources, clamped to 0 through 100",
          "source_sha256": "a7905a27180f72a6d5c60e80fbd6a24dcd91c21834c106f7ffbd18129444961f",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Map.MapDayLightCapacity/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MapProperty.None/description",
          "source": "Sentinel indicating that no Map property identifier is selected.",
          "source_sha256": "adb9b1a312cd9669c9f3c67b4372f924a10971a717632fd6867428a7b499ec37",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MapProperty.RemovedStaticItemIds/description",
          "source": "Identifiers of the baked static items this map instance has dropped; removal is one-way for the life of the instance",
          "source_sha256": "10145eb732c492e95bd1f053d5f0dd6f9130a2d46594d4d1bdd479c2eed8351f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MapProperty.ScrollAxialArea/description",
          "source": "Axial-coordinate rectangle that bounds map scrolling; a zero rectangle leaves the full map available",
          "source_sha256": "3fa8a2bad17f4366872010bfc71dd29fae1130ec58631caac1921a43c94da421",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Map.ScrollAxialArea/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MapProperty.ScrollOffset/description",
          "source": "Rounded client viewport offset in map-space pixels",
          "source_sha256": "db936c3fe0561e0b2e76721fec01b38c190f6d0df6c06e0c0de5db60f847e17c",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Map.ScrollOffset/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MapProperty.Size/description",
          "source": "Width and height of the map grid in hexes",
          "source_sha256": "55bb18dc4ab688f68beaf3fb1b2bfed3d1d671b87a6c09cf6816c70f83e77e49",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Map.Size/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MapProperty.SpritesZoom/description",
          "source": "Current client map-sprite zoom factor",
          "source_sha256": "e7dab76f2064735454657cf83bfd532048bf61a2dbf2c0e7a92b8e919305b47c",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Map.SpritesZoom/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MapProperty.SpritesZoomTarget/description",
          "source": "Target zoom factor toward which the client map view is interpolating",
          "source_sha256": "5cc47384c7e656b8df01bf7003c3ca3f136e115eb89e50dc18affa7ba19589d1",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Map.SpritesZoomTarget/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MapProperty.WorkHex/description",
          "source": "Authoring work hex used as the initial Mapper view center",
          "source_sha256": "39e3f4def04bf163c5b07c4ede4f0dbe86be876eeee8e51712a36a3b3162a429",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Map.WorkHex/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MouseButton.Ext0/description",
          "source": "First extended mouse button, mapped from the platform X1 button",
          "source_sha256": "c85e12d10b9154c68c21915fc199031d0c29032918d833e6f3d6fc95a5a2bcf1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MouseButton.Ext1/description",
          "source": "Second extended mouse button, mapped from the platform X2 button",
          "source_sha256": "2237dfc3e6ec800f4c7168acb58dae67b53f6c7107e9f82f51ff97b2e7af9880",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MouseButton.Ext2/description",
          "source": "Third extended mouse button, mapped from platform button 6",
          "source_sha256": "ab356b464c0178cff62a533657fc84c7fa2e14410f019fb092d04e0b8561d4bd",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MouseButton.Ext3/description",
          "source": "Fourth extended mouse button, mapped from platform button 7",
          "source_sha256": "ab321ef89220b363a65ae0841eea64af64f5d1d29ff481ef8c6a1dee553d90f8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MouseButton.Ext4/description",
          "source": "Fifth extended mouse button, mapped from platform button 8",
          "source_sha256": "bfaaca4ad379dedce264f1a0395c68a26772a1e3b65b58e47da36395202f5221",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MouseButton.Left/description",
          "source": "Primary mouse button mapped from the platform left-button input",
          "source_sha256": "05cfaf12f8c34413d27daa1e4a92cf0d97f793a26182f6772de649267ead4b0a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MouseButton.Middle/description",
          "source": "Middle mouse button mapped from the platform middle-button input",
          "source_sha256": "d8b1839da34b8ea31c84cd603a538686515ea0aedef56f40fa8558a06ea0a118",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MouseButton.Right/description",
          "source": "Secondary mouse button mapped from the platform right-button input",
          "source_sha256": "282408d7c176341f377520c36f5d7e645e66a6e4c6ae3a38b94936e827627cf9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MouseButton.WheelDown/description",
          "source": "Synthetic button event emitted for downward mouse-wheel motion",
          "source_sha256": "d55e8c504244902a24c0e8d74dfadda9a69287676b968b5fd3615f0b9f5279ba",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MouseButton.WheelUp/description",
          "source": "Synthetic button event emitted for upward mouse-wheel motion",
          "source_sha256": "7149e28d342fee40fc76635d53c5d283feb72ac760db9883238c212b42c9d94d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MovingState.Attached/description",
          "source": "Independent movement was rejected because the critter is attached to another critter",
          "source_sha256": "7737c1a2be6979c9b226e67dc87994319b4789b85fb8a90e0977f7089d2e7f83",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MovingState.CantMove/description",
          "source": "Movement could not start because the critter cannot move",
          "source_sha256": "254d57981f0aaff10b92f8b85149312aa0c8fd512ac93c16f90df88ac94f32e7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MovingState.Deadlock/description",
          "source": "Path construction encountered a movement deadlock",
          "source_sha256": "e8cce69464af6b62e87c9acf4d9a9a1904889baee6b3dd060022e3600e50fe03",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MovingState.GagCritter/description",
          "source": "Movement was blocked by a critter occupancy callback",
          "source_sha256": "e093abca241f236ba4a011175ddca53f8aa8f97ebad0fda433c74c15718d7ebd",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MovingState.GagItem/description",
          "source": "Movement was blocked by an item occupancy callback",
          "source_sha256": "9eedc45b5ae3b59e205dc8046a68850f9e1bc172d17547f7230a71339ef9b2f0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MovingState.GenericError/description",
          "source": "Movement failed without a more specific result",
          "source_sha256": "82fdd47041649676402462b807e6353aa512e53554581bea62b145c1bffe63c9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MovingState.HexBusy/description",
          "source": "The requested destination hex is occupied or otherwise unavailable",
          "source_sha256": "df760f5bbb261d9ac6cd4fb89e93aac641c87ce4b395d571d1a0d7159689d52b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MovingState.HexTooFar/description",
          "source": "The requested destination is beyond the accepted movement range",
          "source_sha256": "a4d7aeff73a5cb6970bc29b8392b54207e2a4bb171fc8fca91804567b4412216",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MovingState.InProgress/description",
          "source": "Movement is active and has not produced a terminal result",
          "source_sha256": "cf399d10eaaaebb03d8dae127d75f450938757e594fa82fed24628b3df26c21d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MovingState.NotAlive/description",
          "source": "Movement was rejected because the critter is not alive",
          "source_sha256": "84efd32bed15e951ba70d916e50295818f9df6900f9b35d5a9641d0e4d869610",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MovingState.Stopped/description",
          "source": "Movement was cancelled or stopped before reaching the destination",
          "source_sha256": "346115640b4ba416c97b205895ae03a337b23bfd6603624f4899b6c03f85e7c0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MovingState.Success/description",
          "source": "Movement reached its requested destination successfully",
          "source_sha256": "8af3d777784a5cca7a358cfdda5f82f90e14904b73412203065be1904a8b0072",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MovingState.TargetNotFound/description",
          "source": "Movement could not resolve the requested target",
          "source_sha256": "e54d2b72aacf4d68864930eb0a5216d0f0385bc9e729ca1dc462c1f91b00125b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MovingState.TraceFailed/description",
          "source": "Path tracing could not produce a valid route",
          "source_sha256": "c32f5509e33871c78670b32df62d1fa6563d1d2aecb9fc93a264552f9eb08e14",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MultihexGenerationType.AnyUnique/description",
          "source": "Coalesces compatible same-prototype items into distinct full-map groups without requiring adjacency",
          "source_sha256": "2dec005174e204305fe5ad81a8bdba9e72cd207b72555f964575867075c58f34",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MultihexGenerationType.None/description",
          "source": "Disables Mapper coalescing of item placements into a multihex mesh",
          "source_sha256": "734b9138af411a708ba7e3cb0d8429d27b76ab40515dc745e340be6ce3e21aa1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.MultihexGenerationType.SameSibling/description",
          "source": "Coalesces spatially adjacent compatible sibling items into one incrementally grown multihex mesh",
          "source_sha256": "72bb96871ff2f0f8ce86a50ea220ccfe11e9129044c897f02f4b2dd50af54ddb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.PlayerProperty.ControlledCritterId/description",
          "source": "Identifier of the critter currently controlled by this player; zero when none is attached",
          "source_sha256": "50735bd539780ae0a251c72d1a8fae09c6c4cec76045a2822db625e07ca4e0e9",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Player.ControlledCritterId/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.PlayerProperty.CustomHolderEntry/description",
          "source": "For a custom entity, names the holder entry through which it is attached",
          "source_sha256": "1050e666d84a94010a810b27fa9d7f3ad171a30f9a7d8d759bfb66b9dc73a348",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.CustomHolderEntry/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.PlayerProperty.CustomHolderId/description",
          "source": "For a custom entity, stores the persistent identifier of its owning holder; zero when the holder has no persistent identifier",
          "source_sha256": "f84e0928a758c5e497d28a042fd88d98879212b1ac2f6931f329526772f507b3",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.CustomHolderId/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.PlayerProperty.ExplicitlyPersistent/description",
          "source": "Marks an entity as independently persistent rather than persistent only through containment by another entity",
          "source_sha256": "909a82b41efa2f84a7e1fd273e8267c3b69fc21f3390ff505defbb973cf11e51",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Critter.ExplicitlyPersistent/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.PlayerProperty.LastControlledCritterId/description",
          "source": "Persistent identifier of the most recently controlled critter, retained after detachment for restoration",
          "source_sha256": "c2855b57f97fd38a8854d0420584adcc506c88f70d5c20aadd6a91e6bad27cf7",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Player.LastControlledCritterId/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.PlayerProperty.LoggedIn/description",
          "source": "Reports whether this player connection has completed server login",
          "source_sha256": "28d0480c6e66d4c5f83b55070dd129b6a59345fea9256a118058fa790a152ba3",
          "status": "current",
          "translation_source_locator": "/symbols/@id=script.property.Player.LoggedIn/description"
        },
        {
          "locator": "/symbols/@id=script.enum-value.PlayerProperty.None/description",
          "source": "Sentinel indicating that no Player property identifier is selected.",
          "source_sha256": "f79bf926f8f950e506386014b7870404e2a48dab46bbd806dbe08f9bbd3af97a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.RenderPrimitiveType.LineList/description",
          "source": "Draws each pair of submitted vertices as an independent line segment",
          "source_sha256": "d531f72c561167cec775c33ba07d7036a1e6c118c040ead6c5529fae829f4c36",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.RenderPrimitiveType.LineStrip/description",
          "source": "Draws connected line segments and enables primitive restart where supported",
          "source_sha256": "f03c054fd7c0ecb31751ae210509463676b8fea9eb57086348dcd1eb8ef99e2e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.RenderPrimitiveType.PointList/description",
          "source": "Draws each submitted vertex as an independent point primitive",
          "source_sha256": "aa021a6e6437acd189fa327d7e55e5e1bdcc58f3f2daa432fd5fe7659da349a1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.RenderPrimitiveType.TriangleList/description",
          "source": "Draws each group of three submitted vertices as an independent triangle",
          "source_sha256": "fa1c34dc2951cfdc11d6a9c8b76036417487a7aed8677203777490d7f15c3027",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.RenderPrimitiveType.TriangleStrip/description",
          "source": "Draws a connected triangle strip and enables primitive restart where supported",
          "source_sha256": "2235a646d6b30a13f8ed788445ea8216f57fc66aea2a79077f329c982ecce71c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ScrollDirection.Down/description",
          "source": "Scroll toward the lower edge",
          "source_sha256": "ebd57eacbdf43fb70e1f32d936dc302ab10001dea0905d263fcad9616f391af0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ScrollDirection.Left/description",
          "source": "Scroll toward the left edge",
          "source_sha256": "629aa7989cd66c346fa9edc0e1c56d53bbda69b92cce4662a58c24e5ae33db5a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ScrollDirection.None/description",
          "source": "No manual-scroll direction is active",
          "source_sha256": "3dadc0354353ced3884eda223755e2300040326c203f3b4f4575b50fe5f55305",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ScrollDirection.Right/description",
          "source": "Scroll toward the right edge",
          "source_sha256": "dc2824da435119ac1c71465f00090df50ba7b5bb57975fe5fcc478857639a3b0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.ScrollDirection.Up/description",
          "source": "Scroll toward the upper edge",
          "source_sha256": "bba793991152097ff7475b165d7b42a2ea317845aa161fe581ce9d6ac372bd3e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.TransparentEggSlot.Primary/description",
          "source": "First transparency-egg mask evaluated for map sprites",
          "source_sha256": "9946cabdec821b466cbe077026387c2a687b7a786d3b9d5339e0f3a11c4ecdf0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.TransparentEggSlot.Secondary/description",
          "source": "Second independent transparency-egg mask evaluated for map sprites",
          "source_sha256": "cf944367b9121c611a179e3fbeeb62c85b6c02636792e5126eaa187ae813ffe0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.TransparentEggTarget.AnyOccluder/description",
          "source": "Cut every sprite whose egg appearance places it before the egg",
          "source_sha256": "5586d339ba7ded7d14e1e5d61e3b64e3634f143fd44b219783c2ca155b634f0a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum-value.TransparentEggTarget.Structure/description",
          "source": "Cut walls and roofs only, leaving foreground props drawn",
          "source_sha256": "2759af16129452e482f5f9b014583adb8f5b023d5af3fdbe394751567b493af1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.CornerType/description",
          "source": "Wall-corner orientation used by map geometry and corner-aware rendering",
          "source_sha256": "b0ec3314f249c7bb40c4ff120e1f4a544ce71423f6304f21f83ba606c2078dd9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.CritterAction/description",
          "source": "Engine-originated critter action notifications such as item movement, knockout, death, connection, and respawn.\nSome actions have hardcoded local or server dispatch rules; project code should consume the symbolic action",
          "source_sha256": "5ec46a9ec656031f82cd07b5375e2e839130bb2b412b4ad6823eedc0db4c4cd0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.CritterActionAnim/description",
          "source": "Requested critter movement or pose animation passed to model animation resolution",
          "source_sha256": "8cfde5e244b2696b7086a404a3620a63d5cdc30eaac3bb80db7f513871d7acf9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.CritterCondition/description",
          "source": "High-level life condition of a critter",
          "source_sha256": "1ec7394f5cd58baffe14798a1d4921ebaf86ec96b100663878d807d3073d410f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.CritterFindType/description",
          "source": "Composable filters for selecting critters by life state and player-or-NPC ownership",
          "source_sha256": "a1492db4c1a6e870b93bca5e8e85eaf9038d63f01c08598cfade03ca2d2eb6cd",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.CritterItemSlot/description",
          "source": "Logical critter item destinations used for inventory, equipped-main-slot, and outside-item transfers",
          "source_sha256": "192428a1f72a7f099d13b56b5adc746988f3f0a49f4d89a42eee7d6edb69aef0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.CritterProperty/description",
          "source": "Generated identifiers for properties exported by the Critter script entity. Values are assigned in export order and are intended for property metadata and change notifications.",
          "source_sha256": "a72cc1c977c93feab51092dee8eecc4399a7f371188f6168437b753e2db16cc2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.CritterSeeType/description",
          "source": "Perspective used by critter visibility queries: either direction or their union",
          "source_sha256": "48d633d61f41cd193db3d08a4a36f4d1ae874c893eb8419d19091c33ff56cdbb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.CritterStateAnim/description",
          "source": "Persistent critter animation posture passed to model animation resolution",
          "source_sha256": "9ae3da8430c58890fa9a49a202a124ffc2f401eda675e889f6adea40b515f91e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.CritterVisibilityMode/description",
          "source": "Visibility override applied to a critter independently of normal perception checks",
          "source_sha256": "4911635f78effaf1ca02dffd59b96629e9572e96623b8a04b0b390b085c7e917",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.DisconnectReason/description",
          "source": "Why a connection was closed. Recorded on the connection itself so the reason outlives the code path\nthat ended it and is still readable while scripts run their logout handlers",
          "source_sha256": "dc04880f548e64544acac84c481a1ceb36b8853b7618cc3bceba6ae7da6ed343",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.DrawOrderType/description",
          "source": "Ordered map-render layers spanning flat sprites, lighting, normal objects, particles, and roofs",
          "source_sha256": "87d4dc71f28c6a7a66eead0b26b2ceb878598d2ac3103045e0ef50d19b1caafd",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.EffectType/description",
          "source": "Bit mask selecting the render pipeline or flush stage served by an effect",
          "source_sha256": "99eadcd7f2f01658938c52239693cc6e5e748209a79a044dff228a4dd2a2e8e1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.EggAppearenceType/description",
          "source": "Conditions under which a map sprite participates in the transparency-egg cutout around the player",
          "source_sha256": "2bfe422e25bf5ddb92f0723fbcf11958d4f30997138aec15d30b0f6a662981d8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.EngineInfoMessage/description",
          "source": "Stable text-message identifiers for connection, authentication, loading, and runtime status feedback. The generic info-message transport treats them as opaque values; embedding projects own their text and dispatch policy",
          "source_sha256": "65dc6a7b6072f871e20cfdeef69b7525b3ad09805ef868625c1c345a47f28ff4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.EventPriority/description",
          "source": "Relative ordering assigned to callbacks subscribed to the same entity event",
          "source_sha256": "0ea8b1deff184f17d65f230d9661e248dc584a076c40d1132e7110e1ca421528",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.EventResult/description",
          "source": "Controls whether an entity event callback allows lower-priority callbacks to run",
          "source_sha256": "fb47a0b56d5f7bf4f0fd2cd965bae9d3bb8ea302249fddd9e72a9dff8ff22371",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.FontFlag/description",
          "source": "Font flags",
          "source_sha256": "54cfd909ea58e5711d60facc6ce87ebe767fca6058078fbbd71742f3edcee691",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.FontType/description",
          "source": "Font slot index. Engine ships a single named slot (Default = 0); scripts may add more entries via the codegen Enum annotation",
          "source_sha256": "145d5dc2d296d4060d7ef4305dd20d74508583d71d881da441d85ee2d6d96460",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.GameProperty/description",
          "source": "Generated identifiers for properties exported by the Game script entity. Values are assigned in export order and are intended for property metadata and change notifications.",
          "source_sha256": "e7686b2bda3db18a66d2e4fd0a838d0ba715810a0daacaf47d698de2e685d9dd",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.ImGuiProperty/description",
          "source": "Generated identifiers for properties exported by the ImGui script entity. Values are assigned in export order and are intended for property metadata and change notifications.",
          "source_sha256": "4d5a3f09dc313619f91e49aa325fcbcf0cfea88c1197626a06a9afe729caac3b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.ImGui_ButtonFlags/description",
          "source": "Mouse-button, overlap, and activation behavior for low-level Dear ImGui buttons",
          "source_sha256": "5c681693021573147fed8c3aedc9e7f34bc9b71f9936d84faa1be47dfd96ac80",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.ImGui_ChildFlags/description",
          "source": "Child-window sizing, framing, padding, and navigation flags forwarded to Dear ImGui",
          "source_sha256": "4d6effb74f8eb5a706c59ce84c7612d37db89dca4a00dd6a0ecda197516e185f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.ImGui_Col/description",
          "source": "Indexed Dear ImGui style-color slots used by scripted theme customization",
          "source_sha256": "a5b2c9a65ab4bc0826c4faa50481d627c284a7197a74df427e2df0380d38191b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.ImGui_ColorEditFlags/description",
          "source": "Picker mode, channel visibility, data format, preview, and input behavior for Dear ImGui color editors",
          "source_sha256": "056034d7d955b63f20cefff7a28150702b01d1f358662d8a7d1d09bcc0143a7e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.ImGui_ComboFlags/description",
          "source": "Popup height, alignment, and preview behavior for Dear ImGui combo boxes",
          "source_sha256": "12dd9a3e768735ad90c6fc00d5e233161437c20bd6529a78d0c94422a3560346",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.ImGui_Cond/description",
          "source": "Conditions controlling when a queued Dear ImGui state assignment takes effect",
          "source_sha256": "57c72e756978babd4f59e0338620ecd872def3a36864ce614cd807af906b3f43",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.ImGui_Dir/description",
          "source": "Cardinal directions and the no-direction sentinel used by Dear ImGui navigation and layout APIs",
          "source_sha256": "7ca88ec7674ddc6af5a301634e5c05ae072472a6d4a2e518e6beff929ca13625",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.ImGui_FocusedFlags/description",
          "source": "Scope and hierarchy filters used by Dear ImGui focus queries",
          "source_sha256": "2cf372080967dfee696cec71708c653b10b0f43d12f6e6058ad3853e2d84427f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.ImGui_HoveredFlags/description",
          "source": "Blocking, overlap, timing, and hierarchy filters used by Dear ImGui hover queries",
          "source_sha256": "d9df95e661c3eedb3b101d7b1145affc5136626abc3fea3d8edf212a02cdce17",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.ImGui_InputTextFlags/description",
          "source": "Editing, filtering, submission, callback, and read-only behavior for Dear ImGui text input",
          "source_sha256": "1f3c44c4be0af3bd8b4c58530ae1379cf214f2c5ea70b9ddf1a6af1e464c38e7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.ImGui_MouseButton/description",
          "source": "Mouse-button identifiers accepted by the Dear ImGui script bindings",
          "source_sha256": "0cabece90adfdfd8d0f5e97236cde35d4c94bb797bc60a5c64545601322c9188",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.ImGui_PopupFlags/description",
          "source": "Mouse-button selection and popup-stack policies for opening or closing Dear ImGui popups",
          "source_sha256": "4c06e5f39cc9ca914e6630d05a1ed38178dac206336c55f146f8afdefa25de43",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.ImGui_SelectableFlags/description",
          "source": "Selection, spanning, overlap, and activation behavior for Dear ImGui selectable items",
          "source_sha256": "c854d1bfe35a08f4d97484fc1c3257d71d08bff8b04b6972f770ff703bc18747",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.ImGui_SliderFlags/description",
          "source": "Clamping and input behavior for Dear ImGui sliders and drag controls",
          "source_sha256": "64856740edef32dc9d252239b5dd791bfbcf269f6f448b79c2bd335b9d227cf6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.ImGui_StyleVar/description",
          "source": "Indexed scalar and vector Dear ImGui style variables accepted by style-stack operations",
          "source_sha256": "55ffd2d8b54f117a80c10d6cc2daeafa94ab73a43a94d6326992d2c43bbbabc9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.ImGui_TabBarFlags/description",
          "source": "Reordering, fitting, selection, and tooltip behavior for Dear ImGui tab bars",
          "source_sha256": "1cf297311236a2ef98019537e4026ca3f9f47ce26fe50904e89246835420c44b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.ImGui_TabItemFlags/description",
          "source": "Visibility, closure, ordering, and tooltip behavior for individual Dear ImGui tabs",
          "source_sha256": "ad673df7472c2f17823804501f59f147c6451658bac350039f89a46f2c2bfaa6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.ImGui_TableBgTarget/description",
          "source": "Table background channel targeted by a Dear ImGui cell or row color assignment",
          "source_sha256": "bf713b49fa0d51f15b87dea740ebc6d18d99cf021239f81ed63c267737947c50",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.ImGui_TableColumnFlags/description",
          "source": "Per-column visibility, sizing, ordering, sorting, and status flags for Dear ImGui tables",
          "source_sha256": "170189dca2d713fa9d0778e1864268b75ed33117f2fe0537cc25b72ebfadabdf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.ImGui_TableFlags/description",
          "source": "Layout, borders, sizing, scrolling, sorting, and clipping behavior for Dear ImGui tables",
          "source_sha256": "47bfbe0d77c8bbd46e9219a0d2628b8a3d948caf0c66905370466a1a627291b3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.ImGui_TableRowFlags/description",
          "source": "Per-row header and background behavior for Dear ImGui tables",
          "source_sha256": "fdc74aa320af8f69bf6e0e1aeeadf9f2c651dfcf7288337631a0399815ade9d1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.ImGui_TreeNodeFlags/description",
          "source": "Expansion, framing, selection, spanning, and navigation flags for Dear ImGui tree nodes",
          "source_sha256": "458b61022d312041a40ab952e569c81f973dcf318b7d340c3b990ac064eaac44",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.ImGui_WindowFlags/description",
          "source": "Window creation and interaction flags forwarded to the embedded Dear ImGui runtime",
          "source_sha256": "f088640facf9b95beb55deaa56bb35a2459bbbd39a1ba0e7f009e481c550ce85",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.ItemOwnership/description",
          "source": "Current ownership location of an item: map hex, critter inventory, item container, or no owner",
          "source_sha256": "52c65f374318ec2f06ba2829e20438dfe980008bd1496151f9aae9b1099eb3dd",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.ItemProperty/description",
          "source": "Generated identifiers for properties exported by the Item script entity. Values are assigned in export order and are intended for property metadata and change notifications.",
          "source_sha256": "0b4a489e7239e3413061363346e02e3afa159f363c04be301942e2eaa4596314",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.KeyCode/description",
          "source": "Physical SDL-scancode key identifiers used by input events and key-state queries, plus a synthetic Text event for UTF-8 text, paste, and drop payloads",
          "source_sha256": "79e786a1144fcd38e8d6fb4c5e2488dab1a95681ef23e9d1804dabb859b1b6ee",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.LocationProperty/description",
          "source": "Generated identifiers for properties exported by the Location script entity. Values are assigned in export order and are intended for property metadata and change notifications.",
          "source_sha256": "175988666809b386e8f5165f9bc7d3bc558c9a93c56e09e3b995c67cb069edbf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.MapLayers/description",
          "source": "The layers a map view draws. The mapper hides one to work on another, so the visible set is editor state\nthe view is told about - a value that changes while the tool runs is not something anyone configures",
          "source_sha256": "ab89b67baf3a0faa8ffce401659addd55e0e17cf8cc5be948cbd49571916bc6e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.MapProperty/description",
          "source": "Generated identifiers for properties exported by the Map script entity. Values are assigned in export order and are intended for property metadata and change notifications.",
          "source_sha256": "981bf30448cd795ccfda7a4191df4f741977fac3d1031a50aa9fb3b9e5b18019",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.MouseButton/description",
          "source": "Mouse buttons and wheel directions exposed through application input events",
          "source_sha256": "3c2f6a3205f021193b14c261133da43e2d60dbdd549c6cc9234d7ef222b8bddb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.MovingState/description",
          "source": "Terminal or in-progress result reported by pathfinding and critter movement operations",
          "source_sha256": "3513cae830c33892bf619fc2612c98c79d5e259f81bef5322212bc7d32d7c377",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.MultihexGenerationType/description",
          "source": "Policy for generating occupied hexes around a multihex prototype",
          "source_sha256": "5ef44dd178a96c54a1ec7afce998e509fb1a5901ea07c33aeadad8285e498a47",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.PlayerProperty/description",
          "source": "Generated identifiers for properties exported by the Player script entity. Values are assigned in export order and are intended for property metadata and change notifications.",
          "source_sha256": "02055321fd1551715bcc633724ab29da9cc1a630cd31a8e72a35f581bff44adb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.RenderPrimitiveType/description",
          "source": "Vertex assembly topology used when submitting primitive draw buffers",
          "source_sha256": "314827843004fb519fffb12f5f8403b69cf1c8d367d5742b777c1d0d734fc605",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.ScrollDirection/description",
          "source": "The manual-scroll intent a view is currently under. Input decides it, the view consumes it, and the two\nnever share a field: a direction is a per-frame intent, not a value anyone configures",
          "source_sha256": "deb545adbc94d2ce8b627efa2d2496b6a787d9e0e0c768965512ea2f6cf150c5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.TransparentEggSlot/description",
          "source": "Selects one of the two simultaneous transparency-egg masks supported by sprite rendering",
          "source_sha256": "1dec574463a2a00f21f9317afc1c4bd7510af6ac381df1a4d5605ad9b64e07ee",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.enum.TransparentEggTarget/description",
          "source": "Which of the sprites standing in front of an egg's hex the egg cuts",
          "source_sha256": "aa857e431f9b1f11a606f90fbed70a8acf6d24f1c95c1df10b5557f9f05ade67",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnConnected/description",
          "source": "Runs when the client transport connection is established",
          "source_sha256": "fcb8084160528ca0654bfb15bda099693707790d364d3389b6405e6606be786a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnConnecting/description",
          "source": "Runs immediately before a requested network connection attempt starts",
          "source_sha256": "381a6d0f49159100ddb5a8d07b16595c97b9c06c8257197367f1019088b00b21",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnConnectingFailed/description",
          "source": "Runs when a network connection attempt fails",
          "source_sha256": "eb206e10459e5b4ce193d055d4f3566a9b6b778cf3496ce3828759a5e763e6d5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnCritterAction/description",
          "source": "Runs before the client applies a critter action; `localCall` distinguishes local initiation from server delivery",
          "source_sha256": "d667ed9c51ad1942a691b1356fe696c9fba888a4e9f4a36865c5fbbc067289a4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnCritterAnimationFallout/description",
          "source": "Resolves legacy Fallout animation numbers and flags; handlers may replace all output values, while `StopChain` reports resolution failure",
          "source_sha256": "51738cc916a503bdbd561c32092417a0b966f9463bb1e422173639f864257009",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnCritterAnimationFrames/description",
          "source": "Resolves a 2D animation frame tuple; handlers may replace `pass`, `flags`, offsets, and `animName`, while `StopChain` reports resolution failure",
          "source_sha256": "d208f8549936de368582493fb7d4f2345b9a2c67815bed297249c6a5cddad74c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnCritterAnimationInit/description",
          "source": "Runs before critter animation lookup; handlers may replace `stateAnim` and `actionAnim`",
          "source_sha256": "7ff01f550eb48737f5fdcae2277f51930fb8479124ffc526ab3001810e7027be",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnCritterAnimationProcess/description",
          "source": "Runs after animation selection and before playback; `refreshAnim` distinguishes view refresh from a queued action",
          "source_sha256": "2e45f0bf37a9294dee6c1400c22547329eb09ce9c027d284b88323093d67688c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnCritterAnimationSubstitute/description",
          "source": "Resolves an animation substitution; handlers may replace the model and animation pair, while `StopChain` reports resolution failure",
          "source_sha256": "2a8b2441a851d96951fd616f114c3b9f1d79683e3bb5873e6c39cbeefd8412d0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnCritterIn/description",
          "source": "Runs when a critter enters the client's current visible entity set",
          "source_sha256": "f122fd2875924c2229f32b9cf43b6474694c92c3c46f5e643364781b2215d239",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnCritterOut/description",
          "source": "Runs before a critter leaves the client's current visible entity set",
          "source_sha256": "6550f576318684ad05051af4e6711916659ebf34047fbef1ad0283f561171d2b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnCritterVisibilityModeChanged/description",
          "source": "Runs when a still-visible critter changes visibility mode",
          "source_sha256": "0f73a0e67fb82e6a24a4210073945436f12f913b6206e52ed3a751ae90baa074",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnCustomEntityIn/description",
          "source": "Runs when a custom entity enters the client's replicated entity set",
          "source_sha256": "8428721d7d647a56032ea56be8bd5048f65c755a2b3b369df3b3a3b27010a129",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnCustomEntityOut/description",
          "source": "Runs before a custom entity leaves the client's replicated entity set",
          "source_sha256": "ac254d9736a7e9066f6fe83171c8968a73e508007dee1937d141ad2ec8ddadd2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnDisconnected/description",
          "source": "Runs after the client transport connection closes",
          "source_sha256": "29daa4f54df50b2034e6782ff1119b7c038150cda12b73fc1cb30a37dfd3c4ae",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnFinish/description",
          "source": "Runs during client shutdown before script modules are finalized",
          "source_sha256": "1b4ba3421b9261f42d8bcad0b597f797f8e913cc1590e3ad6da4f872e48c76e9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnInfoMessage/description",
          "source": "Runs for an informational message received from the server",
          "source_sha256": "8d7d80ac39df682a64b63b42f0e07d0b877064d625579a9492421a072faff151",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnInputLost/description",
          "source": "Runs on frames where the application window is not focused and input polling is skipped",
          "source_sha256": "fa86b926361e4dedc3c99d366d2a585bec867db9cf9511f85164151237f796eb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnItemInvIn/description",
          "source": "Runs when an item enters the chosen critter's inventory",
          "source_sha256": "e09339d189678833e8f328cec8f6dca1be4b8c0d925af2251eccc508d1eb63c8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnItemInvOut/description",
          "source": "Runs when an item leaves the chosen critter's inventory, using a detached snapshot of the removed item",
          "source_sha256": "b570651de7a2095d4aedeace1be6686ff3c25110599abe160b429c3dc4aa3f4f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnItemMapIn/description",
          "source": "Runs when an item enters the client's current map-item set",
          "source_sha256": "05b18f17992364f00f21c84495bd8bab0161a07967d7b6c97473b9da22dd18bd",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnItemMapOut/description",
          "source": "Runs before an item leaves the client's current map-item set",
          "source_sha256": "2daac39abba62ad6e0cb440b40fbcbed6b1e27505f20f4234b22709444741a6d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnKeyDown/description",
          "source": "Runs for a key press and includes the associated text input when available",
          "source_sha256": "868c8a9159be59398920a703ab8d7aba6ea90ce31f78fcbcf97cdd6705d77227",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnKeyUp/description",
          "source": "Runs for a key release",
          "source_sha256": "6846219c75aaf0d5dc18ca5bf7ffba1ac835cd4d7a56e19572a20b73cf014b16",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnLoginSuccess/description",
          "source": "Runs when the server accepts login and the client receives the login-success message",
          "source_sha256": "cf439d629b50fdb25f87eb4830d25a5056e540e717e7feef44f949beb3ee9b86",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnLoop/description",
          "source": "Runs once per client frame after networking, input, scheduled callbacks, and time events, before map processing",
          "source_sha256": "f8a32e3d937b86b5dca7b90ec931196aaa9c03c7dc625b457f07d813b491f070",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnMapLoad/description",
          "source": "Runs after a local or global map-load message has established the new client map context",
          "source_sha256": "7eedc37af2f59661147b7a5b2156cd753cdafb17d43a1552ab3e290d01c27f86",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnMapLoaded/description",
          "source": "Runs when the server confirms map placement and the client marks the map fully loaded",
          "source_sha256": "1a0ea810c31c2333d9274a79f0d304717c852a9f0abce1117b894ae928689ab8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnMapUnload/description",
          "source": "Runs while the current map context is being unloaded",
          "source_sha256": "9ace47c15dda2aa43494ba8e9d010cb4c7ba6e0e1bbda3a0249bcbdc50277aab",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnMapView/description",
          "source": "Runs when the server requests that the client view map around `hex`",
          "source_sha256": "9a7227389f98efbce34006e6b6657b244f94cfd0394c0e83d850e9a48503d156",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnMouseDown/description",
          "source": "Runs for a mouse-button press; wheel steps are exposed as paired virtual button presses and releases",
          "source_sha256": "79b6af6ac381f25c991b2c90cbac3c94937e0f92d3dbe79f9ff21d5b0188a2f2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnMouseMove/description",
          "source": "Runs for mouse movement and reports the frame-relative delta in `offsetPos`",
          "source_sha256": "6db49552c767ba9f2f75eba9fe4e8b931765965b731a17d336425c7342c73441",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnMouseUp/description",
          "source": "Runs for a mouse-button release; wheel steps are exposed as paired virtual button presses and releases",
          "source_sha256": "69a944238fddb2fe2331182011981fc2a6af0b7855d267a8e06e09814c6ed74c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnPreLoadMap/description",
          "source": "Runs before a local map view is created; handlers may replace `screenSize` for that map",
          "source_sha256": "bbeb980ad77379338b650d791920a882291deea764184582a24e7751dd7b84d4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnReceiveItems/description",
          "source": "Runs for a server-delivered item batch reconstructed as detached client item views with project-defined context",
          "source_sha256": "0be0d79e6eb5a513177b73eff43f9a1ef80c1355f766767572c71d6abd4dd1cb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnRenderIface/description",
          "source": "Runs during the script drawing scope of each client frame, before queued video is processed",
          "source_sha256": "f1f3080f7b65fd478eebb8e3b77ca34ca4d7eb355405e298f4fc5f3a5a53f9df",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnRenderMap_AfterFlatSprites/description",
          "source": "Runs immediately after the flat-sprite pass for `drawArea`",
          "source_sha256": "7cec1ee7b2cda535e95d1a0e315f8beec2b40395ebe6aced926aa4969f362e78",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnRenderMap_AfterFlushMap/description",
          "source": "Runs after the map render target is flushed to the main scene for `drawArea`",
          "source_sha256": "b26476786e32e719b14253b48f9616cad138f350d8871f5aa34c43786127b879",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnRenderMap_AfterFog/description",
          "source": "Runs immediately after the fog pass for `drawArea` when fog rendering is enabled",
          "source_sha256": "0bd1ee5ae8d4666f7e091d7f15805a56c836b63c978ce2b02716de4cb5bd56bd",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnRenderMap_AfterLighting/description",
          "source": "Runs immediately after the map lighting pass for `drawArea` when lighting is enabled",
          "source_sha256": "cb09240c498451269b029fa4d1f5cc78cc37575ddf9d51c13c53494936790448",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnRenderMap_AfterSprites/description",
          "source": "Runs immediately after the regular map-sprite pass for `drawArea`",
          "source_sha256": "0e17fcb42205347ec774e804ce42251d0a05829d650f8b2cb9e3363f759c735c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnRenderMap_AfterSpritesAndFog/description",
          "source": "Runs after regular sprites and the optional fog pass for `drawArea`",
          "source_sha256": "ebe555e26b57fb212086f7e130bb4dc6c85bf89a42a22bf4edec0718139126a8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnRenderMap_AfterTiles/description",
          "source": "Runs immediately after the map tile pass for `drawArea`",
          "source_sha256": "4627cd5be2512125ec06237204dd1ff5eb7a38da36e07088993e221a39d0c8c8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnRenderMap_BeforeFlatSprites/description",
          "source": "Runs immediately before the flat-sprite pass for `drawArea`",
          "source_sha256": "48c8ec1bb5073f8b01a05010478272bec1c0648b5f3f5e88341e6dde6a516ff5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnRenderMap_BeforeFlushMap/description",
          "source": "Runs before the map render target is flushed to the main scene for `drawArea`",
          "source_sha256": "b2e40e033437db8128bd96ff16e42a83a466cf3e114c834f059bf7be00ca9c1f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnRenderMap_BeforeFog/description",
          "source": "Runs immediately before the fog pass for `drawArea` when fog rendering is enabled",
          "source_sha256": "610285a23bb92aa02fe011b6283b57b1b02ed33508c1995422fdeb68815a755f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnRenderMap_BeforeLighting/description",
          "source": "Runs immediately before the map lighting pass for `drawArea` when lighting is enabled",
          "source_sha256": "763791774ab7877f83b0359a516149c39eb5a13e22d118344fc5122facc14876",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnRenderMap_BeforeSprites/description",
          "source": "Runs immediately before the regular map-sprite pass for `drawArea`",
          "source_sha256": "8682b76075d7ecc3507729ed718cddddf6089e8afc725b7a7635317a20a0f98f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnRenderMap_BeforeTiles/description",
          "source": "Runs immediately before the map tile pass for `drawArea`",
          "source_sha256": "55dd016897f949ceb0938ce77926ebccd6c2b5f93cf8b911c5d64ea8cb0afd40",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnRenderMap_Rebuild/description",
          "source": "Runs when the map render cache is rebuilt",
          "source_sha256": "8d08084d49ca9956466eca0a9706e5ee7e24c10bbadf1a294b76947d18be38ea",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnScreenScroll/description",
          "source": "Runs when the map view's screen offset changes",
          "source_sha256": "b534c24deab480db1d96424cfa91de75be40c71a86f0bfe115c0c735cd7f61ad",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnScreenSizeChanged/description",
          "source": "Runs after the application reports a screen-size change",
          "source_sha256": "c6d92b55b5a6891b95bc63b867f2b2704b26c6fdcb1afa703b4587bb7af68ef0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnScriptOverrun/description",
          "source": "Reports a bounded, drained script overrun summary before the next OnLoop callback",
          "source_sha256": "703454eeb2bdac4758a34b562edb007118082de1299e501ada2577202223b960",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnStart/description",
          "source": "Runs once after client initialization completes",
          "source_sha256": "bd39c95ba2234ac90659a7e31caaaf51eb531d813d9c370813a7d27b32894f90",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnTouchDoubleTap/description",
          "source": "Runs for a recognized double tap at `screenPos`",
          "source_sha256": "abc89c7ac698e73357e4f9d458dd25ecb495639af402509983e43fd61461fe49",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnTouchDown/description",
          "source": "Runs when a touch contact begins at `screenPos`",
          "source_sha256": "9bf5ba30d1cf9b3ad23cf2bf4c2ee11a3b76f4d5f2a6863f9be3af70d040d27a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnTouchMove/description",
          "source": "Runs when a touch contact moves, with current screen position and movement delta",
          "source_sha256": "1c8aa0a00658e9fe0cdc16e7da5ea0b238727eb95f9cda19a509996c85e1cb48",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnTouchScroll/description",
          "source": "Runs for a touch-scroll gesture with current screen position and scroll delta",
          "source_sha256": "0089144c201a90fd9e788ceb6842bacc7223f1d153e1b2afab8092fe0468b9f3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnTouchTap/description",
          "source": "Runs for a recognized single tap at `screenPos`",
          "source_sha256": "fb6d2db86b359cd66f879b7ce919657e02debce587db9ab78ac195ca99e0583f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnTouchUp/description",
          "source": "Runs when a touch contact ends at `screenPos`",
          "source_sha256": "41e5a7c5312b502d7afe15ffbf14e3ca3d95ae482a3d8cf95eca51cfa999b4b8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.client.Game.OnTouchZoom/description",
          "source": "Runs for a touch-zoom gesture with its center and multiplicative `factor`",
          "source_sha256": "9584cb86722cc783766a48851f1f06de293987538087a45341e016457fa9aa06",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.mapper.Game.OnEditMapLoad/description",
          "source": "Runs after a map is loaded and normalized, before it is added to the Mapper's loaded-map list",
          "source_sha256": "b140eec8697f15309c1aab377b02d49574afc246735084e25a8cdcbe353bd1e3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.mapper.Game.OnEditMapSave/description",
          "source": "Runs after Mapper writes a map successfully and before it marks the undo state clean",
          "source_sha256": "c8cf9fc469a91695beeae0f7d3e152d9cdca0d370abcd2757ad0d7cf5b183559",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.mapper.Game.OnInspectorProperties/description",
          "source": "Runs when the Inspector selects `entity`; handlers populate or reorder the mutable property-index list",
          "source_sha256": "e2d79138b07520dccd590c6d2933c178a0b7a46489795e11db63cf76563e6220",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.mapper.Game.OnMapperMessage/description",
          "source": "Runs for submitted Mapper console text; handlers may replace `text`, and `StopChain` suppresses built-in command parsing",
          "source_sha256": "329dc23d72f3a06e177c37029cd4691966a2618d52c9abe1e5dd26ceeea00b9a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Critter.OnBarter/description",
          "source": "Exposes a project-defined barter lifecycle event; Engine does not fire it directly",
          "source_sha256": "fc663c32ced4d4a47cd8e1cda1729b8e7f1819c6f66c7747c13210096c898cf1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Critter.OnCritterAppeared/description",
          "source": "Runs when another critter enters this critter's current visibility set",
          "source_sha256": "539188d358b2bb0a023031c0546025d463630a27f2ac7eb3a7d727d8bcee620b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Critter.OnCritterAppearedDist1/description",
          "source": "Runs when another visible critter enters the ShowCritterDist1 distance tier",
          "source_sha256": "1285b9f37b0bbfa7f16d73218bddb1f7a70ef74e8c70b9fd97d8339fb8795146",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Critter.OnCritterAppearedDist2/description",
          "source": "Runs when another visible critter enters the ShowCritterDist2 distance tier",
          "source_sha256": "f0d8a6c254ce798a43cea978ef0c2adb28a5e2fac203674bef03b6087744c0da",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Critter.OnCritterAppearedDist3/description",
          "source": "Runs when another visible critter enters the ShowCritterDist3 distance tier",
          "source_sha256": "9c5290866212f9fe1c67fdd93a36e9666b8e4fa9f1ba9f476acba0eb71104b8e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Critter.OnCritterDisappeared/description",
          "source": "Runs when another critter leaves this critter's current visibility set",
          "source_sha256": "c0cfd2a4228e072dd685e18384efe9b3d39567943f65d246c751052a210a549b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Critter.OnCritterDisappearedDist1/description",
          "source": "Runs when another critter leaves the ShowCritterDist1 distance tier or is no longer visible",
          "source_sha256": "442b13c4e9ce0aca9feb6e1cf44476846b71a09f2ec31fddde5b3b8eaf06182c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Critter.OnCritterDisappearedDist2/description",
          "source": "Runs when another critter leaves the ShowCritterDist2 distance tier or is no longer visible",
          "source_sha256": "d1d34a69d56220260ac9d24fae5c52dc516ac7392d8dc7c8fababcf7a8cf1711",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Critter.OnCritterDisappearedDist3/description",
          "source": "Runs when another critter leaves the ShowCritterDist3 distance tier or is no longer visible",
          "source_sha256": "15f588137d57ac2c103a2188fea63a95170e26103b5b83fe716a80eb87a679a6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Critter.OnCritterVisibilityModeChanged/description",
          "source": "Runs when `targetCr` remains visible but changes visibility mode for this critter",
          "source_sha256": "0f850a0d2ced9859ab1ea95bfde117f2350064235e74ce93fcf95afd43e5694f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Critter.OnFinish/description",
          "source": "Runs while this critter is being finished",
          "source_sha256": "4d761e29ba6f6e260bec6fc7ac430a2c71a84f03485ac5ff3824b40e97cac075",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Critter.OnItemOnMapAppeared/description",
          "source": "Runs when a map item enters this critter's visibility set; `dropper` is present for a direct critter drop",
          "source_sha256": "263d46869f8530fab423e4b095b824487c0fb01be074721c147bfacc3e7c1b3f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Critter.OnItemOnMapChanged/description",
          "source": "Runs when a still-visible map item's view-relevant state changes",
          "source_sha256": "57eedcfafc5fddb0c2688fe3a63d8b443cc71b132743f8899dbf6098e140f958",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Critter.OnItemOnMapDisappeared/description",
          "source": "Runs when a map item leaves this critter's visibility set; `picker` is present when a critter picks it up",
          "source_sha256": "c0f6f530ef4176294247b9760af2ef9ed94315de107c2f4b7b41cce42a6e6666",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Critter.OnTalk/description",
          "source": "Exposes a project-defined talk lifecycle event; Engine does not fire it directly",
          "source_sha256": "429dcdc840be311861fbed5766e1a878e9c868ee3ec6073c8984b4b53f7de4e1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Game.OnCritterFinish/description",
          "source": "Runs while a critter is being finished and before it is unregistered",
          "source_sha256": "41eb2ac52eec4e99a207ac92eaaaf9653236dfefb7f80d89295712e3500061e0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Game.OnCritterInit/description",
          "source": "Runs once before a critter's own initialization script; `firstTime` distinguishes creation from restore",
          "source_sha256": "4443612d4229ca002186ef8acdd718cf9d35531534d321116ccad540ec81a21c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Game.OnCritterItemMoved/description",
          "source": "Runs after an item enters, leaves, or changes slot in a critter inventory; `fromSlot` reports its previous slot",
          "source_sha256": "c04a7433a79b8a085959436027b266b155b12e14d8c0230c9015007d2a98102a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Game.OnCritterLoad/description",
          "source": "Runs after a persistent critter is loaded and enters server ownership",
          "source_sha256": "c3a9bf95c2f39cb85aca37c355808e2059cdd58148bce21df5ab4592ab0808b9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Game.OnCritterMoved/description",
          "source": "Runs after a critter changes map hex and reports the previous hex in `oldHex`",
          "source_sha256": "fde49747906ebfc369db110b9f46e94a74ec0fef2c5302811f2da4c10e9d1fdd",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Game.OnCritterPreLoad/description",
          "source": "Runs after a persistent critter and its owned entities are restored but before world entry; `StopChain` rejects the load",
          "source_sha256": "c085bf21961d4eb54c68946e2d78e375e06279e02a51056cd3c1a86cb60ec315",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Game.OnCritterSendInitialInfo/description",
          "source": "Runs while the server prepares initial controlled-critter state for its player",
          "source_sha256": "209f65265fedec4b175020d397aead4f6b60ff3a47c79a8fbf389fa85ab3361b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Game.OnCritterStartMoving/description",
          "source": "Runs after a movement context is activated and broadcast; `wasMoving` reports whether it replaced active movement",
          "source_sha256": "2a8a4505f46ca610065278e4de011ec7d43392f9bbe3e67c1711ad4cf2da6fa4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Game.OnCritterStopMoving/description",
          "source": "Runs after active critter movement is stopped and the resulting state is broadcast",
          "source_sha256": "02def2fc88cae2778b2d3df4cd9f1a2e37d16a99f6f832bfde2d20ad1f6b4748",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Game.OnCritterTransfer/description",
          "source": "Runs after a critter transfer completes; `prevMap` is absent when the critter did not come from a local map",
          "source_sha256": "bc9aad1862360e58b5858159db53f6291be23969c0b655d6bd4d987aa9d71bcc",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Game.OnCritterUnload/description",
          "source": "Runs before a persistent critter leaves server ownership without being destroyed",
          "source_sha256": "c523bc8a322207119e04b8eddfa449f76dac69b1831b9c7c3f04b64b9de270b1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Game.OnFinish/description",
          "source": "Runs during server shutdown before script modules are finalized",
          "source_sha256": "0a77047ead341de2f13cc512b42e7c6e4dc8dfcab969fcdfa35e6fa28f9311c6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Game.OnGenerateWorld/description",
          "source": "Runs only for an empty database to create the initial world; `StopChain` aborts server initialization",
          "source_sha256": "f10732d1d29ffe37ec6312db11a66417ce54faa025692d23b357d12b447a3336",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Game.OnGlobalMapCritterIn/description",
          "source": "Runs when a critter enters the global-map container",
          "source_sha256": "26895edbeffa1853a1b9a270d86eac632b4fb199e32ace7295d5e5e3d75e8cc5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Game.OnGlobalMapCritterOut/description",
          "source": "Runs when a critter leaves the global-map container",
          "source_sha256": "dd72b95b6b2f28f87f24c0f8a94a268a11628285db4f1bba12517db6ec59b7ec",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Game.OnInit/description",
          "source": "Runs after script modules initialize and before the world is generated or restored; `StopChain` aborts server initialization",
          "source_sha256": "a9acd9fe67981bb699edad3a75f6cfb463351f14a59d02bca282e95e4edcf779",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Game.OnItemFinish/description",
          "source": "Runs while an item is being finished and before it is unregistered",
          "source_sha256": "9be8e890922068fc8cc2ae4e514b5d4a55d4fbcae2156401ba88782ef99427e2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Game.OnItemInit/description",
          "source": "Runs once before an item's own initialization script; `firstTime` distinguishes creation from restore",
          "source_sha256": "29b4fccb8b8924490fcb95bc284ae20fa2a72dced530759faea78309928389a1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Game.OnLocationFinish/description",
          "source": "Runs while a location is being finished, before its maps are destroyed",
          "source_sha256": "298351757eabe89a9d28fb659d9be544de83727fc0dc492205da14e2c22d0113",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Game.OnLocationInit/description",
          "source": "Runs once before a location's own initialization script; `firstTime` distinguishes creation from restore",
          "source_sha256": "78a056fd8c0a9f580cd3dc5dbcf1b6e90c1030433d931777f34bea65665a9b51",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Game.OnMapCritterIn/description",
          "source": "Runs after a critter is attached to a local map",
          "source_sha256": "6d6ad7335cf6075ad30bbeb8438102aa2af8d6a3b98ff0a12da4f6be4c8127ef",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Game.OnMapCritterOut/description",
          "source": "Runs before a critter is detached from a local map",
          "source_sha256": "261320dada9fa9e936107ee8aa536460770bbb79434681592f6964354fcccbfc",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Game.OnMapFinish/description",
          "source": "Runs while a map is being finished and before it is unregistered",
          "source_sha256": "6653e2fb2a824683caf887d05da1fba0dcf2d14bce8a6f824a587a37fa033ea1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Game.OnMapInit/description",
          "source": "Runs once before a map's own initialization script; `firstTime` distinguishes creation from restore",
          "source_sha256": "a5e2c04bd891cae4571f9cf76060e66769bc0790c14f4f6c4adbb05055b82468",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Game.OnPlayerCritterSwitched/description",
          "source": "Runs after a player switches from `prevCr` to `cr` and initial critter information is sent",
          "source_sha256": "cfcca92a5b48d6d5ed72a43f3b4756dca360650711f0ad27ffbdde64429e78a2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Game.OnPlayerDirCritter/description",
          "source": "Validates a player direction request; handlers may replace `dir`, and `StopChain` rejects the request",
          "source_sha256": "24c07362e0752b704e0e9e76f0d243b72a216e04b95fb06e63326cf32f34f410",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Game.OnPlayerLogin/description",
          "source": "Runs after login success is sent and before post-login setup; `notLoggedInPlayer` is present only during reconnect, and `StopChain` rejects the login",
          "source_sha256": "d27f37b9b255449be2286a469c41436f82dc6daa1677e5bffd9e5e3756c34cbb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Game.OnPlayerLogout/description",
          "source": "Runs after a hard disconnect is observed and before the player is detached and unregistered",
          "source_sha256": "05be5d37dcbc0e06fee267cb8d783bc701d201ab3ff582e301ae17ecce7a87cf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Game.OnPlayerMoveCritter/description",
          "source": "Validates a player movement request; handlers may replace `speed`, and `StopChain` rejects the request",
          "source_sha256": "6f67aa6a72ef704d2a5bd7632f405f976257b79fc6327f734906485f72a6a987",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Game.OnStart/description",
          "source": "Runs after world generation or restoration and before normal server work; `StopChain` aborts startup",
          "source_sha256": "6aa15f6900756b0166069c613265e5686816c86a43467f82bb6230febd2bc86a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Game.OnStaticItemWalk/description",
          "source": "Runs when a critter crosses a static item's trigger footprint; `isIn` distinguishes entry from exit",
          "source_sha256": "8c9fa7cfca7690189243af11f4bca10700ef85b354027bd6f9b393a5b4c39755",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Item.OnCritterWalk/description",
          "source": "Runs when a critter crosses this static item's trigger footprint; `isIn` distinguishes entry from exit",
          "source_sha256": "fb20da9e87b6160154c5ff0e6a0148be4f9cb2bef3049ccd8bc1934fc93f3659",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Item.OnFinish/description",
          "source": "Runs while this item is being finished",
          "source_sha256": "6f950f3e4952c2878d1f71d394b98010c620ff6fe3f58c5e647410f992f1dc76",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Location.OnFinish/description",
          "source": "Runs while this location is being finished",
          "source_sha256": "7fbd79c772f6d462fb5c348ad35b2b8386e65a306fd7105fc4ef7e1b84fd9db4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Location.OnMapAdded/description",
          "source": "Runs after a map is added to this location",
          "source_sha256": "02a0a37d219c9acef3cf6e5c76c98a26587d5e4997dacbbe310e65e383562280",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Location.OnMapRemoved/description",
          "source": "Runs when a map is removed from this location",
          "source_sha256": "87a7c03fec4ea9bd520f6111229a1ec0136af24c8ca83b2d376a7cc5ccc63e5e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Map.OnCheckLook/description",
          "source": "Exposes a project-defined critter visibility check; Engine does not fire it directly",
          "source_sha256": "3166da8fa4fb109b3447fcab0fbe151f89fb2f8574694e97526271742dc6c048",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Map.OnCheckTrapLook/description",
          "source": "Exposes a project-defined trap visibility check; Engine does not fire it directly",
          "source_sha256": "39ea472352ae648ad97685e4003045dd477ab3a31b1d3be60be2881ef6862a2c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Map.OnFinish/description",
          "source": "Runs while this map is being finished",
          "source_sha256": "fc2cbfcd824eb24c8e0a5833f119e011706732f954d00e9d8c562c1895bcef96",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Player.OnAllowCommand/description",
          "source": "Exposes a project-defined command authorization callback; Engine does not fire it directly",
          "source_sha256": "8b8718e69414036d8aff534417b58ea1c19b907981adadd0b494dbb015d380ef",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Player.OnGetAccess/description",
          "source": "Exposes a project-defined player access callback with an integer input and mutable text argument; Engine does not fire it directly",
          "source_sha256": "9bfda213f2cb322645babb824a5c24fe49a91174cc39d09ba6887a72e79aeab4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.event.server.Player.OnLogout/description",
          "source": "Exposes a project-defined player logout callback; Engine does not fire it directly",
          "source_sha256": "13e5234aa7f8d53a64b931fd5a93f84632364c93bfb95814938a0a74cfd2b2ea",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Critter.AddAnimCallback/description",
          "source": "Registers a deferred callback at the clamped normalized time of the selected 3D animation tuple; does nothing without a model, skips destroyed critters, and throws off-map",
          "source_sha256": "860fc52f34d6b14f45fd8bb0e3b82a8be9e6448c93dc96062ce5554aa40eab21",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Critter.Animate/description",
          "source": "Queues the requested visual animation with an optional item context, clearing the existing sequence first unless append is true; throws when the critter is off-map",
          "source_sha256": "00f35c7a39fc0dd9a251640e50826e24ad2f5d1016724262774a0bb00562a779",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Critter.ChangeDir/description",
          "source": "Changes the local facing direction of this map critter through the normal client presentation path; throws when the critter is off-map",
          "source_sha256": "570398191867870fc4792c34b57c2a541395db31a1f969b9a8c4d7ce17108812",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Critter.GetAlpha/description",
          "source": "Returns the map sprite's current rendered alpha, or 255 when the critter is outside the map view",
          "source_sha256": "ef55c9e73e54d8594c4421718374db056587caf7a0cf959da1aa6c1afa39cd71",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Critter.GetBodyAngle/description",
          "source": "Returns the rendered 3D body angle in degrees when a model is available, otherwise the critter's discrete direction angle",
          "source_sha256": "dada7d239159b7ee7903bb7628c1a40981b814b774a2c10e25e0e1191e88be14",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Critter.GetBonePos/description",
          "source": "Writes the screen-space position of a named bone and returns true; returns false for a 2D critter or missing bone and throws when 3D support is disabled",
          "source_sha256": "e18af78befbf522aebf558b8bed6c761563dc9c51d47d5edc9f9375741674a64",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Critter.GetItem%2320907df3571a66a9/description",
          "source": "Returns the first visible inventory item whose integer-convertible property equals the requested value, or null when none match",
          "source_sha256": "b7d8dfd569eb8e12b2ef27b17b8cd5bd00a9999078ce7f3a7e62bfb24e119123",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Critter.GetItem%233e4a8f273e418d3b/description",
          "source": "Returns the visible inventory item with this entity id, or null when it is absent",
          "source_sha256": "cf607de71019d90664665934d3b33bc7df13104882119ea9ce2119d9d1fbaf94",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Critter.GetItem%235042179ea08a430e/description",
          "source": "Returns a visible inventory item with this prototype id, preferring the Inventory slot for non-stackable items; throws when the prototype id is invalid",
          "source_sha256": "cde8b961cf76b154984e6c7cbdfba6e870404383da3cdd99964a35c94f32b554",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Critter.GetItem%238eedde0030f87e84/description",
          "source": "Returns a visible inventory item matching the supplied prototype, preferring the Inventory slot for non-stackable items, or null when absent",
          "source_sha256": "8ba899f8111fe4d9af87d0876721251e5095a5cc5c3a1299f385c920fb740f94",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Critter.GetItems%2383c145745774df22/description",
          "source": "Returns a snapshot of visible inventory items whose integer-convertible property equals the requested value",
          "source_sha256": "8ffcf5a8d3ec94b0b73f4e81ad71579c5241719cade60b357b14f8eb18d6017b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Critter.GetItems%23b851260ade7c353c/description",
          "source": "Returns a snapshot of handles to every item in this client-side inventory view",
          "source_sha256": "32df7368801c8c464a9a0835f9e44ca24b6514e3b39922322de84a67f07c0419",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Critter.GetModelAnimDuration/description",
          "source": "Returns the resolved runtime duration of an animation on the critter's loaded 3D model, or zero for a non-model or unresolved tuple; throws off-map or when 3D support is disabled",
          "source_sha256": "bf4e4adc9d8ff2f3621391a60b9ea27fff7e58a95c54e9e220253253a40d681c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Critter.GetMovingContext/description",
          "source": "Returns the current client-side movement context for this map critter, or null when stationary; throws when the critter is not on the loaded map",
          "source_sha256": "486a1b77ba89eba24be6870ca26749cfbb763f7dce5af8e467f829764125d756",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Critter.GetSpriteOffset/description",
          "source": "Returns the current rendered pixel offset of this map critter's sprite; throws when the critter is not on the loaded map",
          "source_sha256": "ffdcebec8a9f5ba7b2ef42622a834a48fbc91110e71ba1b579e29a6e03341188",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Critter.GetTextPos/description",
          "source": "Writes the screen position for name text above a valid map sprite and returns true, or false when no valid sprite is available; throws when the critter is off-map",
          "source_sha256": "748a568786ea2931caf8cca21c4a6387d309ee96456df44cdcf0e514b627cda5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Critter.IsAlive/description",
          "source": "Reports whether the critter's replicated condition is alive",
          "source_sha256": "08910a96a6ae93badb46cebe988e61043560d0b5ccd1e74edcc40e5bc8f0c87b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Critter.IsAnimAvailable/description",
          "source": "Reports whether the current map presentation can resolve the requested state and action animation tuple; throws when the critter is not on the loaded map",
          "source_sha256": "ba539768a4463f5a6e4529d0f5f53a57c80b176589b416dfc57c6031e5694503",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Critter.IsAnimPlaying/description",
          "source": "Reports whether this map critter currently has an active visual animation; throws when the critter is not on the loaded map",
          "source_sha256": "d6bdf6c588afe70dde6594193f6dea360bf3a16eb64979ff1f84b80c837cc1d4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Critter.IsDead/description",
          "source": "Reports whether the critter's replicated condition is dead",
          "source_sha256": "bba717816c28e5febe0eecb1f8eea9026aae5f17166669d47ce874ddfb52c412",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Critter.IsKnockout/description",
          "source": "Reports whether the critter's replicated condition is knockout",
          "source_sha256": "2d5bf6991c59ddc34a20be2a7251ef410c044a0688fb66572634072ecdfc3ea1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Critter.IsModel/description",
          "source": "Reports whether this map critter uses a loaded 3D model; returns false when 3D support is disabled and throws when the critter is not on the loaded map",
          "source_sha256": "1e94dc506edca8e2d1c8763e7853b28637e1f8072686f8c8e84718d7327d2499",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Critter.IsMoving/description",
          "source": "Reports whether this map critter is undergoing client-side movement; throws when the critter is not on the loaded map",
          "source_sha256": "02f7bdc3ab0d3dd4dafe2c913d089b72f8ea06bd80b087204c0023694ef8be5e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Critter.IsOffline/description",
          "source": "Reports whether this critter is player-controlled and its replicated player-offline flag is set",
          "source_sha256": "b341a0016ccb042b8232ad6e31889d21cf67c67073e4ba6f3fe017b978b314c8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Critter.IsOnMap/description",
          "source": "Reports whether this client-side critter view is currently represented on the loaded map",
          "source_sha256": "289e08e656b4e1eec7b1ebdd4fa3c064f8ae0a3cb521b6a3ea76a854aa06d0c7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Critter.IsVisible/description",
          "source": "Returns whether this map critter's sprite currently participates in rendering; throws when the critter is not on the loaded map",
          "source_sha256": "c7d0f05710b3c2d56321aa87847c9ca60e5c24d36ff55671ecef6c0a79b2bb5d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Critter.MoveItemLocally/description",
          "source": "Applies a local predicted drop, slot move, or optional slot swap and refreshes map action and lighting visuals; it does not send an authoritative server request",
          "source_sha256": "b1aeda890483979a51b17fae8857bdd45d3589848f77959d9b2922596ae725de",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Critter.MoveToDir/description",
          "source": "Starts client-side movement of this map critter in the requested direction and at the requested speed; throws when the critter is off-map",
          "source_sha256": "c33b73b10c3265719c046871a30f5c867d7c784903da68697fa9bcd2c667326a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Critter.MoveToHex%238abbda72eb8c68b8/description",
          "source": "Starts local movement exactly to the target hex and clamped sub-hex offset, returning the movement context or null when no movement remains; throws off-map",
          "source_sha256": "d71ea34f84b7d9bc1f6f50933d94b5c13bd34c64d626ab2cf347cd22ca5acb36",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Critter.MoveToHex%23c8ad324f4c60aadb/description",
          "source": "Starts local movement toward the target while retaining the requested cut distance and clamped sub-hex offset, returning the resulting context; throws off-map",
          "source_sha256": "2f3d6b6994b21c6687f10b0c4ba4f70f7555abc5516770777747b772969d8925",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Critter.RefreshView/description",
          "source": "Reapplies the map critter's scale and movement presentation and refreshes its base visual animation when no explicit animation is active; throws off-map",
          "source_sha256": "b37d96d3988fac4e412a1333201420ad831577dc72e50079a6365a72aaec2b14",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Critter.RunParticle/description",
          "source": "Starts a named particle on a bone of the critter's loaded 3D model with the supplied offset; does nothing for 2D or non-3D builds and throws off-map",
          "source_sha256": "f4c3c7c151a7c5a26e6e1b25b281988aa0d971d169ca8241483998e256e6a747",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Critter.SetAlpha/description",
          "source": "Fades a map critter's sprite toward the requested target alpha; does nothing when the critter is outside the map view",
          "source_sha256": "895c54b5a3ba7fd3ddf6ff7595442294bbc39e0e8d21c57fd474e44b39563359",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Critter.SetName/description",
          "source": "Replaces the display name stored in this client-side critter view without updating authoritative server state",
          "source_sha256": "ca34423943c9d0eb1ddd19c455431a37454f6a68457ec09a6a480e0098e6fab1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Critter.StopAnim/description",
          "source": "Clears the active and queued visual animations of this map critter; throws when the critter is not on the loaded map",
          "source_sha256": "91b49ac8af6128e911e43ee0a939f40e14a43b20c85dda95cb45dd5176f40fe6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Critter.StopMove/description",
          "source": "Stops the current client-side movement of this map critter; throws when the critter is not on the loaded map",
          "source_sha256": "824be16c41c9b423790495891e9f6d306d91b6580db59f79e38189543b39ef44",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Entity.CountTimeEvent%2308f3341698dc846a/description",
          "source": "Counts all client time events bound to this entity that use the selected callback",
          "source_sha256": "f2be030fabc1ba7957e8145eacec566e7d6d4bf16e78d38dd8a41ea6b2b11b7d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Entity.CountTimeEvent%235609075e34e56857/description",
          "source": "Counts all client time events bound to this entity that use the selected callback",
          "source_sha256": "f2be030fabc1ba7957e8145eacec566e7d6d4bf16e78d38dd8a41ea6b2b11b7d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Entity.CountTimeEvent%239c7dd3ed70f86a7d/description",
          "source": "Counts all client time events bound to this entity that use the selected callback",
          "source_sha256": "f2be030fabc1ba7957e8145eacec566e7d6d4bf16e78d38dd8a41ea6b2b11b7d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Entity.CountTimeEvent%23ad56856359be786a/description",
          "source": "Counts all client time events bound to this entity that use the selected callback",
          "source_sha256": "f2be030fabc1ba7957e8145eacec566e7d6d4bf16e78d38dd8a41ea6b2b11b7d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Entity.CountTimeEvent%23e41a67022275199d/description",
          "source": "Returns one when a client time event with this id is bound to the entity, or zero when it is absent",
          "source_sha256": "bfdfdf5ebbfb22cb52059ec691b71b1e098f23e64c8bb1a384ee107005efc5ef",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Entity.RepeatTimeEvent%2328154675b58100aa/description",
          "source": "Sets the repeat interval for the event with this id and reschedules its next firing from now; does nothing when it is absent",
          "source_sha256": "e77aa37addb49c72b050667f14e600cc1d1f4465538f18cd6b8cb103cf0390ed",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Entity.RepeatTimeEvent%2335eb685e9352ee97/description",
          "source": "Sets the repeat interval for every matching callback event and reschedules each next firing from now; does nothing when none match",
          "source_sha256": "d6c62265877bdceacbf0cf42bfeafdedfd0801c5eb231a77b3952ce70b7be6ad",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Entity.RepeatTimeEvent%234c1ec6146e414fed/description",
          "source": "Sets the repeat interval for every matching callback event and reschedules each next firing from now; does nothing when none match",
          "source_sha256": "d6c62265877bdceacbf0cf42bfeafdedfd0801c5eb231a77b3952ce70b7be6ad",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Entity.RepeatTimeEvent%23d107502adf65e851/description",
          "source": "Sets the repeat interval for every matching callback event and reschedules each next firing from now; does nothing when none match",
          "source_sha256": "d6c62265877bdceacbf0cf42bfeafdedfd0801c5eb231a77b3952ce70b7be6ad",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Entity.RepeatTimeEvent%23d3e5bb91010a5ee6/description",
          "source": "Sets the repeat interval for every matching callback event and reschedules each next firing from now; does nothing when none match",
          "source_sha256": "d6c62265877bdceacbf0cf42bfeafdedfd0801c5eb231a77b3952ce70b7be6ad",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Entity.SetTimeEventData%2309c025b7150b6bcd/description",
          "source": "Replaces the single payload value for every time event using the selected callback; does nothing when none match",
          "source_sha256": "4532b0af9aff42c8574f6eaaa40705ebb44b818bec129501c4758b15543be703",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Entity.SetTimeEventData%2346ce3a8e59df0b76/description",
          "source": "Replaces the payload array for every time event using the selected callback; does nothing when none match",
          "source_sha256": "6da8bc32354be4de4ffb547eb5fca3c5986817ca459191336f5b45f66ba61adf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Entity.SetTimeEventData%23995b7ca79df38c35/description",
          "source": "Replaces the single payload value for the time event with this id; does nothing when it is absent",
          "source_sha256": "536a15d84c85f32c3a91bfbaa18547248521a0cb9ef99d8016b957122f177bd0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Entity.SetTimeEventData%23adb2b4962b8e3874/description",
          "source": "Replaces the payload array for the time event with this id; does nothing when it is absent",
          "source_sha256": "2e9569a9d22462201fd581020eaec016085c502486bd53ec171098a6c62c131a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Entity.SetTimeEventData%23c02fbdd5c31ecb21/description",
          "source": "Replaces the context payload array for every time event using the selected callback; does nothing when none match",
          "source_sha256": "6a7894558cde6c46a98de8747684a5c532bf81c07f041a162d09e5254ff754fa",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Entity.SetTimeEventData%23c41820f30638ac18/description",
          "source": "Replaces the single context payload value for every time event using the selected callback; does nothing when none match",
          "source_sha256": "815cf545003b176c4dbab9e85444998a45763e5a120af495e2ad202e59402113",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Entity.StartTimeEvent%23170befe9003e3411/description",
          "source": "Schedules a repeating client time event whose callback context exposes one payload value, and returns its event id",
          "source_sha256": "dedefa523e1d3f50c10ca1e554ae92d06cb89a7aecf1e6867cb6e4a25acbbb5c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Entity.StartTimeEvent%231e937a7976df63ac/description",
          "source": "Schedules a one-shot client time event whose callback receives a context for inspecting or modifying that event, and returns its event id",
          "source_sha256": "b8a32384c4ef600edd05f788ddefea7f41b38e39fb6670e00a570a0dcd86cfbb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Entity.StartTimeEvent%23492d95e09fb651ed/description",
          "source": "Schedules a one-shot client time event whose callback context exposes the payload array, and returns its event id",
          "source_sha256": "36a65f53b243f0722a451b9321973fbe53d8226425234bc4508bd5869d097137",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Entity.StartTimeEvent%23494379a91f97d59e/description",
          "source": "Schedules a repeating client time event bound to this entity, with its first firing after delay and later firings at repeat, and returns its event id",
          "source_sha256": "7211ba1144e4e91291c6d5a3aa9693faf805f9a9c75cd20f77d471fd5078ee66",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Entity.StartTimeEvent%2364daaaa7e6125cb3/description",
          "source": "Schedules a repeating client time event whose callback context exposes the payload array, and returns its event id",
          "source_sha256": "3a345f68cfb47909d53e47849944778d111e9c2fe126ef07b9cb53693ad72200",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Entity.StartTimeEvent%23805b4b72ba72a604/description",
          "source": "Schedules a repeating client time event with a callback payload array and returns its event id",
          "source_sha256": "f3168b5a683299d7a94154036abf6b0bcfd25583c2388d8b701065c5c387dead",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Entity.StartTimeEvent%239e1b092a1d7fb963/description",
          "source": "Schedules a repeating client time event with one callback payload value and returns its event id",
          "source_sha256": "0a15057ad4e069b6aded3138c02ce971875b59c06fe0994ed3055dcb8da68907",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Entity.StartTimeEvent%23ae9a39c7d8c1d6fa/description",
          "source": "Schedules a one-shot client time event bound to this entity, passes one payload value to the callback, and returns its event id",
          "source_sha256": "22932363e6559a0a61d260b02ce4ff190eadc8434dd68e4f3bf3383d1cb7516c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Entity.StartTimeEvent%23af2f95f5513a4cfa/description",
          "source": "Schedules a repeating client time event whose callback receives a context for inspecting or modifying that event, and returns its event id",
          "source_sha256": "3f6a6ffbd66881be08cb46e44c5efbf8a513f8a284817de6fcb982ea2c997cf0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Entity.StartTimeEvent%23b494dfd4a4fa81ea/description",
          "source": "Schedules a one-shot client time event bound to this entity, passes the payload array to the callback, and returns its event id",
          "source_sha256": "797f83843d00d084eb1099a5e5281053048d2c8d0f51023a159a4040dfa384e3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Entity.StartTimeEvent%23d9b6635334d5ae05/description",
          "source": "Schedules a one-shot client time event whose callback context exposes one payload value, and returns its event id",
          "source_sha256": "0a29c8d6b86e86e6a2dcd14556774124781be0e5de7a75cf3b08821c7ee6a01b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Entity.StartTimeEvent%23e59548a665ddb838/description",
          "source": "Schedules a one-shot client time event bound to this entity after the requested delay and returns its event id",
          "source_sha256": "c2360e333ec5e97899ba1714030797c361984cb0f3a3f279b99909786ddedaa2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Entity.StopTimeEvent%231ff4e8b7bdb6f35c/description",
          "source": "Stops all client time events bound to this entity that use the selected callback; does nothing when none match",
          "source_sha256": "0a4d3e307ef4bd9437f68de7ccbd41c20991072d06e12c458d059dc19df11aa6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Entity.StopTimeEvent%2358fd464d379e5ea5/description",
          "source": "Stops all client time events bound to this entity that use the selected callback; does nothing when none match",
          "source_sha256": "0a4d3e307ef4bd9437f68de7ccbd41c20991072d06e12c458d059dc19df11aa6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Entity.StopTimeEvent%23be90949683fff93d/description",
          "source": "Stops the client time event with this id when it is bound to the entity; does nothing when it is absent",
          "source_sha256": "880c0aa41f2d61ae207a34ee9d48993487b612b8e8fefe956a217e7b08df028c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Entity.StopTimeEvent%23d792082ed73a8fc8/description",
          "source": "Stops all client time events bound to this entity that use the selected callback; does nothing when none match",
          "source_sha256": "0a4d3e307ef4bd9437f68de7ccbd41c20991072d06e12c458d059dc19df11aa6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Entity.StopTimeEvent%23ddfbd34ed1764f92/description",
          "source": "Stops all client time events bound to this entity that use the selected callback; does nothing when none match",
          "source_sha256": "0a4d3e307ef4bd9437f68de7ccbd41c20991072d06e12c458d059dc19df11aa6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.ActivateOffscreenSurface/description",
          "source": "During RenderIface, pushes a pooled screen-sized offscreen render target, clearing it when forced, dirty, or resized; presentations must consume active surfaces in stack order",
          "source_sha256": "8a63e0febd6d42389f93894f9ed031abc28a4c7f496b2d83c908a3eb3ae6b7b5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.BindFont/description",
          "source": "Binds a .fofnt or .fnt resource to a client font slot with the supplied default scale; throws for any other extension",
          "source_sha256": "ade12409aee8188a4acae1b9bb6adb6bdd15e4712d85cbdda105604d2ebcd934",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.BytesReceive/description",
          "source": "Returns the connection's cumulative received-byte counter narrowed to uint32",
          "source_sha256": "66453fbe37e178a116ba1ce2b2a1cf577b7471623e39bd0bb2ec7e10548f0097",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.BytesSend/description",
          "source": "Returns the connection's cumulative sent-byte counter narrowed to uint32",
          "source_sha256": "2c7eaa32739a8077a235441994bc41c3e61d80d53b4789f4b4248d8a86d0979d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.CaptureScreenshot/description",
          "source": "Returns the last complete frame as compact RGB PNG bytes, downscaled to maxSide when positive",
          "source_sha256": "41811467f6fd9689b362863fb57dd533d280b76d87e002574bca9225275e2096",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.ChangeLanguage/description",
          "source": "Loads the named language pack and makes it current without changing the configured startup language",
          "source_sha256": "76190974123d18f8fdd99a4b761314121f332ac0165225eb1b2afa2a837904b1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.Chosen/description",
          "source": "Returns the chosen critter, or throws when none is currently assigned; check HasChosen first when absence is expected",
          "source_sha256": "ca696abe9623b91ddfb1ac84d62f799d2f7c8926af9a2e2d28c0821fc17a315e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.ClearEffectScriptValues/description",
          "source": "Clears all script values associated with the selected effect instance",
          "source_sha256": "5ed6ed4db0a6bdfa9bd80c15a5ebb96606830878fac9d46adb80824a99896001",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.ClearForcedMousePos/description",
          "source": "Stops overriding the client's logical mouse position after input polling",
          "source_sha256": "4dabcbfbd68a2a534b8fa0c302ef43e748ccd78aecd33a896244c5bfa820dba3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.Connect/description",
          "source": "Queues a client connection request for processing by the main loop",
          "source_sha256": "e22625b8c0d1ad47249841093d7b66c69184b473e4d14c7187f089b61b9e2e27",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.CreateVideoPlayback/description",
          "source": "Creates an independently drawable video playback object from a required resource, configures looping, and transfers ownership to the script",
          "source_sha256": "1c7ce0255e4468b359c028ea756184cc38dd0a836061b4e20f2ca840a00b6d45",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.CurLocation/description",
          "source": "Returns the current Location view, or throws when none is available; check HasCurLocation first when absence is expected",
          "source_sha256": "ab44cc147f9ff8b1614ce4cf2c1a79f5f6bb717afeec44d4fbdad4a8c740bf00",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.CurMap/description",
          "source": "Returns the current local Map view, or throws when none is loaded; check HasCurMap first when absence is expected",
          "source_sha256": "4a4530e9089a5e60af922948fb0ae384e20bbf1e9c6ca74157a6bb750a61a4e1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.CurPlayer/description",
          "source": "Returns the current Player view, or throws when none is available; check HasCurPlayer first when absence is expected",
          "source_sha256": "c3ce5a1e56cdb5bedd8176e5ea11c46092095637d25c4920bef3e8b1ffa12342",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.Disconnect/description",
          "source": "Cancels any pending connection request and disconnects the active transport",
          "source_sha256": "a34ab3162677092a264f7fab3e85487450d62e71a80ae7347422ccd571035201",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.DrawCritter2d/description",
          "source": "Draws the resolved current 2D critter frame into the supplied bounds, forwarding scratch and center scaling modes; unresolved animation tuples are ignored",
          "source_sha256": "3ca4d9d91a2e6a0fb2479e44ae7641ea00f4e8c60bc03463a2b9cf26b87b0562",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.DrawCritter3d/description",
          "source": "Draws a cached 3D critter instance using layers and optional position values x, y, rotations, scales, speed, normalized time, and scissor bounds; throws without 3D support",
          "source_sha256": "a2b2ab184fdc44647dd58154cf2b0994a8cee2a6aae4fc5b0d41648ff669dd72",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.DrawMiniMap/description",
          "source": "Prepares or refreshes the current local-map minimap for the supplied zoom and rectangle, then draws its line primitives",
          "source_sha256": "bae9a4450cc43ec228d31d2dbc6ce6034fb5a656e1db752c4b0e2ff2ab25ee0d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.DrawPrimitive/description",
          "source": "During RenderIface, draws primitive points decoded from complete x, y, packed-color triplets; empty data is ignored and trailing incomplete values are dropped",
          "source_sha256": "22c504aa02e04180717d503825f6e337b165544ffab105660d7ad23f1c657d70",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.DrawSprite%2309e9c2f9becdf091/description",
          "source": "During RenderIface, draws a loaded sprite at an integer position; offs applies bottom-center anchoring plus the sprite offset, and an empty color uses neutral tint",
          "source_sha256": "d398a304d69e6f7244aba7d626fff2f8dc52f1ec4ee85f948dafd46612e876aa",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.DrawSprite%23779a85d218769bd8/description",
          "source": "During RenderIface, draws a loaded sprite at a floating-point position scaled to the supplied size; an empty color uses neutral tint",
          "source_sha256": "22417bcd9f1d7712602627f330d79c5e5fc4fc86c98e2bbb278f086929ca9fc6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.DrawSprite%237bcbb90671d41361/description",
          "source": "During RenderIface, draws a loaded sprite at a floating-point position using its intrinsic size; an empty color uses neutral tint",
          "source_sha256": "0b43c3232a9f44bac9548008c20f4d7e28780cb24b0ffac919a937a240a29b4d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.DrawSprite%23f68df76d1db1b23c/description",
          "source": "During RenderIface, draws a loaded sprite into an integer rectangle with optional fitting and sprite-offset application; an empty color uses neutral tint",
          "source_sha256": "76465a368d68e9099b8a20f8308a32c9fd7b2550fb8ee1b3b4c189d446157d4c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.DrawSpritePattern/description",
          "source": "During RenderIface, tiles a loaded sprite over the supplied rectangle using sprSize as the tile dimensions; an empty color uses neutral tint",
          "source_sha256": "7374dc4a45640bd73e6616fbe865b03e9bc7a2344fde7d379ec45dad4e278bfb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.DrawSpriteRegion/description",
          "source": "During RenderIface, draws a UV region of a loaded sprite into the supplied rectangle and returns the renderer result, or false for an unknown handle",
          "source_sha256": "c8ffc649f3b012565b477fbdf81e7117aca2d7127af5745f49758af2e1773c43",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.DrawText/description",
          "source": "During RenderIface, draws nonempty formatted text in the supplied rectangle; negative dimensions extend left or up, and an empty color uses text white",
          "source_sha256": "b55ffea2dd36c370f10f55dc9dbfe6acbbfacff11c2bb0da22d68a117f3be20c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.DrawVideoPlayback/description",
          "source": "During RenderIface, advances and draws a non-null video playback into a positive-size rectangle and marks the object stopped when its clip ends",
          "source_sha256": "2f07aeaf075d18bf93c8aff846563e2038750ce37a63937faf06a16e52cce1d0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.DumpAtlases/description",
          "source": "Writes every current texture atlas to a timestamped diagnostic PNG directory whose name includes total atlas memory use",
          "source_sha256": "4a33e79192b63c71270794f0f089d138f51490a4c354ec3a793e4d42fdb278fd",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.FlashUnfocusedWindow/description",
          "source": "Requests a taskbar or window-manager attention flash only when the client window is unfocused",
          "source_sha256": "b69d89a173a5282d0498a333c32f32664a626ecff1937f209ab65b78746c7f72",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.FreeSprite/description",
          "source": "Releases a client-local sprite handle, stopping its animation and retaining the resource in the reuse cache; unknown handles are ignored",
          "source_sha256": "5a109f7b2aaf4409ae8f4a6c04706f88c0a244e3d5893f1758fb60acdbab68b1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.GetCacheData/description",
          "source": "Returns the bytes stored under a client cache entry name, or an empty array when the entry cannot be read",
          "source_sha256": "804e4573855dbfc0a44f9d0845abe52bcf0f685ed7092692db7e10897eb0b451",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.GetCacheText/description",
          "source": "Returns the string stored under a client cache entry name, or an empty string when the entry cannot be read",
          "source_sha256": "890f6d6ad823ae04f1e153504445a4f2c4719fce4b9083c23739370878a07267",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.GetCritter/description",
          "source": "Finds a critter by id on the current local map, or among global-map critters when no local map is loaded; returns null for zero, absent, or destroying local-map entries",
          "source_sha256": "1a6aa287063455aeca748d0b3d271017216625c0db70dcc0ea3d1eae98d8518e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.GetCritters%2381d4328569cd9426/description",
          "source": "Returns current local-map or global-map critters that satisfy the requested CritterFindType filter",
          "source_sha256": "c4c9bc59731d7fd62995e0dce4bb6dec78d9201ce0e7194f6cf2a370f195cd6c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.GetCritters%23addc705539406d44/description",
          "source": "Returns current local-map or global-map critters that match the optional prototype id and requested CritterFindType filter; an empty id matches every prototype",
          "source_sha256": "f422e60079c7243b2c5c08d4a4d44a56a656b6819edadb59c13cb6598bd36eef",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.GetCritters%23e79de6b56cb9f3b3/description",
          "source": "Returns current local-map or global-map critters whose prototype id matches the supplied prototype and that satisfy the requested CritterFindType filter",
          "source_sha256": "6f4de0bf62d76e7b3677582af21a01a1f3afdfdee7b8d2cc485ebc9a6f0c9cba",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.GetDistance%231be05ad1508d9bdf/description",
          "source": "Returns center-to-center hex distance between two items on the same map; throws for off-map or different-map inputs",
          "source_sha256": "faabb4ebdb0d9b4ba44ab443e96e53a6ba34cb71339da288c1161361f863e2a6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.GetDistance%23200d823fdf545d92/description",
          "source": "Returns center-to-edge hex distance from an item to a critter on the same map after subtracting the critter multihex radius; throws for off-map or different-map inputs",
          "source_sha256": "1d1b9f50f8397dce536195965e1c8866acd7ef1ec1336ffc061472978d46341f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.GetDistance%2333a4d51ef8eece2a/description",
          "source": "Returns center-to-edge hex distance from a hex to an on-map critter after subtracting its multihex radius; throws when the critter is off map",
          "source_sha256": "49c7483ecd9d8a06c04db92a773e4c3b7de32e79196dd2db9c75c56836286268",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.GetDistance%233dade8869ec8c0ac/description",
          "source": "Returns edge-to-center hex distance from a critter to an item on the same map after subtracting the critter multihex radius; throws for off-map or different-map inputs",
          "source_sha256": "53641953d06f93a42f2729739b3b5fda7dfaac8f955eaa0264f9968e54300b4e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.GetDistance%238298d537bb9c7c37/description",
          "source": "Returns center-to-center hex distance from an on-map item to a hex; throws when the item is off map",
          "source_sha256": "fa31874e04afa6940b4402fbd3596bf5558d4a25f093a638a01c09ef73e74b39",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.GetDistance%238a80a760debf852d/description",
          "source": "Returns edge-to-center hex distance from an on-map critter to a hex after subtracting its multihex radius; throws when the critter is off map",
          "source_sha256": "3ac45cc7e87cdf504d612c8f7b2c5ffb3d8b6e4cd709080d3a03181f68d8a3e8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.GetDistance%23b273c01749f73e8c/description",
          "source": "Returns center-to-center hex distance from a hex to an on-map item; throws when the item is off map",
          "source_sha256": "d086b8fe28d61596281d86769ba291b95b5ef09b25f7fc3d5adca372d78b12fa",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.GetDistance%23dacea0c00ba4c5f1/description",
          "source": "Returns edge-to-edge hex distance between two critters on the same map after subtracting both multihex radii; throws for off-map or different-map inputs",
          "source_sha256": "b7a2629eca0ffd01da26e8aa56a14ccd2d3e32880a38bd7a02c56545731acf61",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.GetDrawCritter3dBounds/description",
          "source": "Returns positive draw and view bounds for a previously loaded 3D critter instance, false when unavailable, and throws without 3D support",
          "source_sha256": "c34c57c8cc26087ba9e1feea0a485c80cf2270f31822756e6662cb5fcee36ddf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.GetGamepadState/description",
          "source": "Returns a snapshot of the active input backend's gamepad state",
          "source_sha256": "e10955a907f45456fffb79a8a990933849d30ee872b528e45726d991b7140589",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.GetItem/description",
          "source": "Finds a live item by nonzero id, searching the chosen inventory first and then visible map/global-map items and critter inventories; returns null when absent or destroyed",
          "source_sha256": "c4521c5c0daa05fe655b7a73638e7c84548af7e95ae0befa714076dbd516dc21",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.GetMusicVolume/description",
          "source": "Returns the live music-volume percentage owned by the audio manager",
          "source_sha256": "d063922abfe23cf36236c1079f8c15956a85bc5b5b45d3d7bd5cbb9e4fd166e3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.GetPing/description",
          "source": "Returns the most recently measured client-server round-trip time in milliseconds",
          "source_sha256": "4801c6a7cb5f77b53f83baf47806149d1b1679ab89d28b3c06ee398f96df4823",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.GetSoundNames/description",
          "source": "Returns the source-backed audio resource paths indexed by Audio.SoundFileExtensions",
          "source_sha256": "6dc3591e4a8b0244dddedf4645133e3e5e8165c27af90f5a5471d4f14f263354",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.GetSoundVolume/description",
          "source": "Returns the live sound-effect volume percentage owned by the audio manager",
          "source_sha256": "f8b92523d44f46dda93cdf8a13a4121813a805a683cf3f81008d6b29648a7d40",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.GetSpriteSize/description",
          "source": "Returns the current sprite size for a client-local handle, or a zero size when the handle is unknown",
          "source_sha256": "d1022814d291930b7591d81bf1cfa597453d6ac6a694db3c3e464e07bcd54fa0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.GetText%2318a1958c0507d2fd/description",
          "source": "Returns the zero-based current-language text variant for a key; an out-of-range index yields an empty string and a negative index throws",
          "source_sha256": "7bb4b8ff74a618993af184c975f46f5a4f38701f93e54fd2ccf08df6b76a32ba",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.GetText%23513ec7ba7fb47b7c/description",
          "source": "Returns the text for a key from the requested language pack, using the current pack for an empty or current language name and caching other loaded packs",
          "source_sha256": "7a028a82868d9385951f386f04617e5317a8ce27b3090c15e4c9c071c8226967",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.GetText%236f20bf83e45a6a6d/description",
          "source": "Returns the first current-language text variant for a key",
          "source_sha256": "f15a8a26f595928a7e20b3b7308d1db0c5738e04d20a484c428e6ea6384a7a01",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.GetTextCount/description",
          "source": "Returns the number of current-language text variants registered for a key",
          "source_sha256": "bed40a8bb69089c09427df69b85702110e0ab2326ca4cc425d44cdbfde5f5461",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.GetTextInfo/description",
          "source": "Measures formatted text inside the supplied size, writing its resulting extent and line count, and throws when the selected font cannot be evaluated",
          "source_sha256": "c005313589906fc1921552bc16cc64c6a4cf7e962d3465b47c19d144ab055966",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.GetTextLines/description",
          "source": "Returns how many complete lines of the selected font fit within a positive-size rectangle, or zero for nonpositive dimensions",
          "source_sha256": "9803a8f71a3c2a3ae2b427675a3ae4828afb202baa16a226edfe0b53581440ff",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.HasChosen/description",
          "source": "Returns whether the client currently has a chosen critter",
          "source_sha256": "b5dab3e169c7bf78b0d1bb387c132907073dcbbf11711ba90e4f19a810941244",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.HasCurLocation/description",
          "source": "Returns whether the client currently has a Location view",
          "source_sha256": "efb1d981191d1d1f7d8d5d723fbc423bd32ae486037fb4d4a4cfc7413d14e4f9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.HasCurMap/description",
          "source": "Returns whether the client is currently displaying a local Map view",
          "source_sha256": "e105b55fa1cdf49cafde02778c43ccda1b680a0a4c4a85be22d2dbb09892bb9d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.HasCurPlayer/description",
          "source": "Returns whether the client currently has a replicated Player view",
          "source_sha256": "08c50da92f60d7621b42f6aa0b9634cd425e9fe25610abdc2d6e4be135b77046",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.IsAlwaysOnTop/description",
          "source": "Reports whether the client window currently stays above other windows",
          "source_sha256": "c4b909960b91b36d940c0d195ff17a87fc21818637d419b34a8bf5b5aa02a37e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.IsCacheEntry/description",
          "source": "Returns whether the named client cache entry exists",
          "source_sha256": "1eec7b9b1674582a6e73573e16fb521ead4ec9b86a893c7c5b56ec5cf7bee8a5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.IsConnected/description",
          "source": "Returns whether the client connection is currently established",
          "source_sha256": "823ecba326c85debdd672a6686a6211518ac9b9ef9a33fc4445d0d2fd9631a40",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.IsConnecting/description",
          "source": "Returns whether a connection attempt is currently in progress",
          "source_sha256": "205554d7a4bb57575ab20f980923330483bf61e322c5e0a6e887d4b7b6eac4c7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.IsFullscreen/description",
          "source": "Returns whether the client window is currently fullscreen",
          "source_sha256": "7c994aeb47101deb7fa2942c47424f0b765cdcfb59d267216c41add7993932bc",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.IsMouseAvailable/description",
          "source": "Returns whether the active input backend currently exposes mouse input",
          "source_sha256": "b6c9e3824012ffb5fc586de754d6320a8390d43e2a8f810af9b20cbdbcf8e570",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.IsSpriteHit/description",
          "source": "Hit-tests a client position against the current sprite frame and returns false when the handle is unknown",
          "source_sha256": "f0f1b2e30f51491618a0c9d905ef2cc37a7444130ee1052b4b90d456e1dc576f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.IsTextPresent/description",
          "source": "Returns whether the current language pack contains the supplied text key",
          "source_sha256": "af8a55b27a5e4e304e8c95a9077a962236e80a660be9be817d90cb3af26acf86",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.IsVideoPlaying/description",
          "source": "Returns whether a fullscreen video clip is currently active",
          "source_sha256": "799c817ea36342d83f9df6f25cb79c1a78b388807217ae39dbc5d848ff4da961",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.LoadMapSprite%237a0d7d6483239069/description",
          "source": "Loads a named sprite into the map-sprite atlas, starts its default animation, and returns a client-local handle, or zero when unresolved",
          "source_sha256": "d140249cd729f2a393eeb975d63b2c1a3dbf265c36063aa5040970a5fca47a34",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.LoadMapSprite%23aefb44cb240c9375/description",
          "source": "Loads a hashed sprite resource into the map-sprite atlas, starts its default animation, and returns a client-local handle, or zero when unresolved",
          "source_sha256": "7f68e1b166936662dc87864ea6dcdc1434b4ab2e6c5b9c37aad9560d289cab1f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.LoadSeparateSprite%237a0d7d6483239069/description",
          "source": "Loads a named sprite as a separate one-image texture, starts its default animation, and returns a client-local handle, or zero when unresolved",
          "source_sha256": "3f43c720ea45837b1963dfb67cc8a14f1b62837b4732795d4cb7728401eaf6aa",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.LoadSeparateSprite%23aefb44cb240c9375/description",
          "source": "Loads a hashed sprite resource as a separate one-image texture, starts its default animation, and returns a client-local handle, or zero when unresolved",
          "source_sha256": "560b127a5bd83c0d794e1b5d8847d5fe63f39a056d696cc35db51c18d23ef91c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.LoadSprite%237a0d7d6483239069/description",
          "source": "Loads a named sprite into the interface atlas, starts its default animation, and returns a client-local handle, or zero when unresolved",
          "source_sha256": "2c018eab473d0d735794a2dfa2109bfb302384b85149f042862c14e829e0bcfb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.LoadSprite%23aefb44cb240c9375/description",
          "source": "Loads a hashed sprite resource into the interface atlas, starts its default animation, and returns a client-local handle, or zero when unresolved",
          "source_sha256": "8b7b64031fd0efd1cdf4f01c50188f4283f084e618855bc9f61d0b284590ba6e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.MinimizeWindow/description",
          "source": "Requests minimization of the client window",
          "source_sha256": "c556fdc93c9a7d30bff43479b793d5eeb7263a15aa20649eb2062d06844674f8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.MousePos/description",
          "source": "Returns the latest mouse position processed by the client input pipeline",
          "source_sha256": "99e533c255619359ec29d032d997be5938da33ee1bfc32cf9b0ac12dea91c8a4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.PlayMusic/description",
          "source": "Starts named music with the supplied repeat delay and returns whether playback was accepted; an empty name stops current music and returns true",
          "source_sha256": "1550019d929e010d5f5b2b258df0656538a6104bab37e5dc93367a25e2b4b2f7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.PlayParticleWithSeed/description",
          "source": "Starts a loaded particle sprite with a deterministic seed and returns false for an unknown handle, non-particle sprite, or rejected playback",
          "source_sha256": "a7534906e170c368239ec722ba8f056d7ea35cb10094e9c98e0e59558eb4c65f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.PlaySound%231aa5e922f54f38a5/description",
          "source": "Starts the exact baked audio resource with initial attenuation and pan and returns its lifetime handle, or zero on failure",
          "source_sha256": "e58597871c214ca0d1b7e72095f3ee99adb9ade7c6286df64c5d4a3ad2384ec4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.PlaySound%23fac885e1d1fb5d17/description",
          "source": "Starts the exact baked audio resource and returns its non-reused lifetime handle, or zero when no live sound starts",
          "source_sha256": "41b80d3eb859ec2e7d4695c366dc34fd53b0cc961f525ec558ab5deb68939ab0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.PlaySprite/description",
          "source": "Starts the named animation on a client-local sprite with the requested looping and reverse flags; unknown handles are ignored",
          "source_sha256": "b7498a178b482ae900ea3ecc0db5e7b92f85e7f937f85e4ceaad6e4ae2c0c2b7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.PlayVideo/description",
          "source": "Starts fullscreen video playback, optionally queueing behind an active video; a nonqueued request replaces playback and clears the queue, and an empty name stops it",
          "source_sha256": "a73a34f1445c72f033ecbbc5ad2be4051feeaa055a47b5861d1d6bace30637c0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.PopDrawScissor/description",
          "source": "Pops the top drawing scissor rectangle from the client renderer stack",
          "source_sha256": "75a344efc0777c7b286a2df08659fb8f55937bf849baa61f106ed37bffce5586",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.Preload3dFiles/description",
          "source": "Preloads each named model through the 3D model manager; throws when the 3D submodule or model sprite factory is unavailable",
          "source_sha256": "fe46a4adb23f82a640acc2070619d7ee4d8499ce551939afefb29ec675d6efeb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.PresentOffscreenSurface%232119d712f785fe8c/description",
          "source": "During RenderIface, consumes the active offscreen surface and draws independently clamped source and destination rectangles with the selected effect",
          "source_sha256": "e3ed0a1199d5a189d15b7104a330043da54bf192bd143ad13a6d088aba87a7ab",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.PresentOffscreenSurface%233c10a5be709fae45/description",
          "source": "During RenderIface, consumes the active offscreen surface and draws the clamped same-position source and destination rectangle with the selected effect",
          "source_sha256": "aa1cd701ebfaa1930ef4c87ed431f71d2522cf8e0a7c61a580388ba91276308d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.PresentOffscreenSurface%235ec3a0fd048629a1/description",
          "source": "During RenderIface, sets the first four script values when supported, then consumes and draws the active offscreen surface in the clamped rectangle",
          "source_sha256": "1a616e86775f028aa9b5fad5da2d0f91babc148cc3e85e89c6cfb0c21e30b038",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.PresentOffscreenSurface%2381efefba57ca2d31/description",
          "source": "During RenderIface, consumes the active offscreen surface and draws it over the screen with the selected offscreen effect",
          "source_sha256": "f45b6c40db45eb7f6d1fac387fbaf0f8f4b22d006805e641cba2bab140411d39",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.PrewarmParticle/description",
          "source": "Advances a loaded particle sprite through its prewarm phase and returns false for an unknown handle or non-particle sprite",
          "source_sha256": "a6420fd91233ca538a75a0a34756e5d10bdf507d4a76cd35723fe14ede365d89",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.PushDrawScissor/description",
          "source": "Pushes a drawing scissor rectangle onto the client renderer stack",
          "source_sha256": "22e66a2b4e6a8e1d534ed312919b0131469eadaa8089af2abc2d1462de8abdb9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.RemoveCacheEntry/description",
          "source": "Removes the named client cache entry when present",
          "source_sha256": "dc5024f70d8b16cb00c43303e1248b1c94e0cf772b79c0a95cd9a0a70c96e717",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.ReplaceText%23587f96d5350d1194/description",
          "source": "Returns a copy of text with occurrences of the supplied substring replaced by another string",
          "source_sha256": "8ae96edf10237877ae86ba09dacbb956ce7cb94168105e4190f83a0bcbfa986e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.ReplaceText%2375a7b30c3e8c914d/description",
          "source": "Returns a copy of text with occurrences of the supplied substring replaced by the decimal representation of an integer",
          "source_sha256": "c269b457a7aafd690ac891600e731c28fa9666721c6db0821dcc3ed5d35124d8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.SaveScreenshot/description",
          "source": "Reads the last main render target, corrects backend vertical flipping, and writes a PNG to a required nonempty path",
          "source_sha256": "28ae6015f128b9f35dca8e466264a4cde57a81da131c7c2c3e4d9c9ed07b319f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.SaveText/description",
          "source": "Creates parent directories and truncates the target file before writing the supplied text bytes; write and directory failures throw",
          "source_sha256": "3440e88dd91852342a3cf3ebfcc691ddfafb873055293653e5ba047d1527071c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.ScreenSize/description",
          "source": "Returns the current logical screen size",
          "source_sha256": "968aa8219b319efe1a9aeb63557690108de86f84f9b9a96343e9bb1a535fc12c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.SetAlwaysOnTop/description",
          "source": "Enables or disables the client window's always-on-top mode",
          "source_sha256": "aecdee852ba9f8bd9edb55282236fbb220a241bc7c129577a86fcd02ab3adbf2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.SetCacheData%2334c4e9183aea7e54/description",
          "source": "Stores a resized copy of the byte array under a client cache entry, truncating or zero-extending it to a required nonnegative dataSize",
          "source_sha256": "d19201e2742594ac9a0cd3a9d33498d52b5374cd6c9c9aa6136753ff4ba17a5f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.SetCacheData%234fb7a51531e48788/description",
          "source": "Stores the complete byte array under a client cache entry name",
          "source_sha256": "d41d6b79ed138853a1b74bee67903308fa24c3ad1cb7a3fec5e98605d2ef62f5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.SetCacheText/description",
          "source": "Stores a string under a client cache entry name",
          "source_sha256": "b77beb5d826052905a111bc4b92087001992b97eb89f1228f6d4b83c17e09aa8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.SetEffect/description",
          "source": "Rebinds effect slots selected by EffectType to an effect resource; subtype selects entity, font, or offscreen instances where that effect class requires one",
          "source_sha256": "065e452abbf19985af4cdad7da1cf8a9fb20b03250d83055ebf0765d0ae3112d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.SetEffectScriptValue/description",
          "source": "Writes one script float at a validated index in the selected effect instance's script-value buffer",
          "source_sha256": "bc7b58e4a0e39125524cae93e93c4789cb072b6458f0898e9f8003005119f01e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.SetEffectScriptValues/description",
          "source": "Copies a validated slice of the supplied values into the selected effect instance's script-value buffer starting at valueStartIndex",
          "source_sha256": "85fb95e6360b428fd6b2445484e88d26df9304db6d00ac941fb7ed7fa0b1e1c6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.SetForcedMousePos/description",
          "source": "Forces the client's logical mouse position to the supplied value after each input poll without moving the native cursor",
          "source_sha256": "4c13e945168fdcb67194b2ae92bda924009a9a1bc968b3b024942f243f092b04",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.SetMousePos/description",
          "source": "Moves the native input backend's mouse cursor to the supplied client position",
          "source_sha256": "64c66eceef3669c1e6be7a7538c8cd0e3db3a9d36014d48bc118dd96f3f1fe41",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.SetMusicVolume/description",
          "source": "Changes the live music-volume percentage without mutating startup settings",
          "source_sha256": "8d88ccf12fdc3d9868cd76cd4e5520215d9cf68d7ea9fedd37587cfc9a5f3f75",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.SetParticleScale/description",
          "source": "Changes the scale of a loaded particle sprite and returns false for an unknown handle or non-particle sprite",
          "source_sha256": "4ee74bce3d66361d3a3e3db26a66c169b4ada2d07116b85aa9961a870fdcce4f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.SetResolution/description",
          "source": "Changes the logical screen size and, for a non-virtual window, the native client window size to the supplied dimensions",
          "source_sha256": "df262ecc00279a5c5681d422f3970701c8473bd74596620828f58aea8f4ebca6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.SetScreenKeyboard/description",
          "source": "Enables or disables the active input backend's on-screen keyboard",
          "source_sha256": "bb638295b68a6f0f90edabcc1c753ca402b612c2c3acaad228e1c8de3223ca03",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.SetSoundVolume/description",
          "source": "Changes the live sound-effect volume percentage without mutating startup settings",
          "source_sha256": "52ae1b6995ada3fc96832117dcf98cd2cef9a1237c37e6c7b30f214597770ff6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.SetSpriteTime/description",
          "source": "Sets the normalized playback time of a client-local sprite; unknown handles are ignored",
          "source_sha256": "9366570c6374b89611bc4b34971d796f46e637dd516340c6c6519a681821e9b4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.SetUserConfig%23404272fae1b8c4d2/description",
          "source": "Replaces the cached user configuration with consecutive key/value pairs serialized as `key = value`, ignoring an unmatched final element",
          "source_sha256": "5de990be46a5997ae1c1cafae81af30c88b47574d80221e5aac79de4ff097754",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.SetUserConfig%2383f675b8f444529f/description",
          "source": "Replaces the cached user configuration with key/value lines serialized as `key = value`",
          "source_sha256": "fcd5248b8851013ac1b5782a8be2b3b2bac0f5e0b701586cd84eab454ec470c3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.SimulateConnectingFailed/description",
          "source": "Raises the client connecting-failed event as the transport would deliver it",
          "source_sha256": "334e297fb6e683f250753943864b0a4733a847530190c2e0aa0593b454e203c7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.SimulateDisconnect/description",
          "source": "Raises the disconnect notification without touching the connection itself",
          "source_sha256": "7302720f000725e46802e3d4d0aa3abf89e70e7ddee224f283530ed2c61ab42c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.SimulateInfoMessage/description",
          "source": "Raises an engine info message with optional extra text, as the server would deliver it",
          "source_sha256": "d47de8fb4dd89c0a2c012d39546587ce2fce424a856d00b6dcb00e7abef7894c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.SimulateKeyPress/description",
          "source": "Injects a key-down event carrying optional text followed by key-up; KeyCode::None is a no-op",
          "source_sha256": "52ccaa2e359d54efb0a61575f5645fe9b89caf25796277be09439827fb83bddb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.SimulateKeyboardPress/description",
          "source": "Injects key1 down, a complete key2 press, then key1 up, skipping either KeyCode::None value and doing nothing when both are None",
          "source_sha256": "9aea84818f0faccff563c08b950f1e18e896af2ff4fdaa1c4cd0ef01d14cb217",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.SimulateMouseClick/description",
          "source": "Moves the simulated mouse when needed and injects either a wheel step or a matching button-down/button-up pair",
          "source_sha256": "42e30d4db63add47ae22faeefa3bf20a4770ae1ae9e66f357ebd70621f43e244",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.SimulateMouseDown/description",
          "source": "Moves the simulated mouse to the requested position when needed, then injects a button-down event",
          "source_sha256": "adc5b16ad709d57b070cf2c7aa2441a2df2b2246c480a60f0e7c651cb90df366",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.SimulateMouseMove/description",
          "source": "Injects a mouse-move input event when the requested position differs from the current client mouse position, including the computed delta",
          "source_sha256": "433275a9edd20cdf9c88ad55c495dbb3a4caf5aca1010ec6937b85aa486b1d9f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.SimulateMouseUp/description",
          "source": "Moves the simulated mouse to the requested position when needed, then injects a button-up event",
          "source_sha256": "844f2b3ed464c023ec0c997e4942795277d5db1889e85d1f20df7adfb1c6a373",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.SimulateTouchDown/description",
          "source": "Injects a touch-down event for the supplied finger id and client position",
          "source_sha256": "d7a5536966e2c178420f966f49bb80fb841726af95bc448b6f8e584bf8e02f37",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.SimulateTouchMove/description",
          "source": "Injects a touch-move event with the supplied finger id, position, and movement offset",
          "source_sha256": "db7b3665cff44b4cec354182c291fb1f5bb39ad1cbd75a2685e752236db0939e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.SimulateTouchTap/description",
          "source": "Injects a touch-tap event at the supplied client position",
          "source_sha256": "2fe12632ec01d8c70f1f217244b53bb3992caacf53104e347bc7b655506fb1e1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.SimulateTouchUp/description",
          "source": "Injects a touch-up event for the supplied finger id and client position",
          "source_sha256": "d9c852fccf04ace7412e55a74f99136f36396edac45ffee0d4126f36a7b19b74",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.SortCrittersByDeep/description",
          "source": "Drops null handles and stably sorts critters by map render depth: hex Y, hex X, then sprite sort value when available, with handle order as the final tie-breaker",
          "source_sha256": "6963c7c1470ba366a9c619e01177b7b7d34476046c28d5e6cd725e528cec7e49",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.StopSprite/description",
          "source": "Stops animation for a client-local sprite handle; unknown handles are ignored",
          "source_sha256": "75adc08a7db2a5c813d51b9142986b63ac5dd7117e34630b57a7dbae0dfbc356",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.ToggleFullscreen/description",
          "source": "Switches the client window between fullscreen and windowed modes",
          "source_sha256": "5c85665696f0b3bf6790ddd382bd6ec64e240c2af69414e5d62b59d15d094cc1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Game.UpdateSound/description",
          "source": "Updates attenuation and pan for a live sound handle and returns false after that sound has ended",
          "source_sha256": "0057312d93a1004e028f7149375df9e75e180e2e77d0472248c711a2d7c84810",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.ImGui.Image/description",
          "source": "Draws a client sprite in an ImGui layout slot at the requested positive size and UV range; partial UV drawing requires an atlas sprite, while a missing sprite leaves the slot blank",
          "source_sha256": "4d6d01bcf5874139cec4648b7fed7dc524b4d2383ea2a94aa853dedba0d39cd6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.ImGui.ImageButton/description",
          "source": "Creates a uniquely identified ImGui image button, draws its standard state frame plus optional background and sprite tint, and returns whether it was pressed; size and UV validation match Image",
          "source_sha256": "0559997b47310c40918fd9824aca896f180f923afc9afed779c9d1ce47a4616d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Item.Clone/description",
          "source": "Creates a standalone client-side clone with the same id, prototype, and property values without inserting it into a map or inventory",
          "source_sha256": "7876ef10ae0377f31006d11698f21f3e0c423ca065f76f7daff5e85edfa9c9e1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Item.Finish/description",
          "source": "Starts the standard fade-out and finish sequence for a map item once; does nothing for items outside the map view",
          "source_sha256": "b6ef87620b33ad620629c6fcc0a8304a17fa1c9a6a00212458351eb773d7c9af",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Item.GetAlpha/description",
          "source": "Returns the map sprite's current rendered alpha, or 255 for an item outside the map view",
          "source_sha256": "dea00c9c304a1a1c8c14875fde4c3ee3e862428e62de3d2f8e486fda72ea30b7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Item.GetInnerItems/description",
          "source": "Returns a snapshot of handles to the item's immediate contained items, without recursively flattening nested containers",
          "source_sha256": "8ebb583cd8dd423b09789e24cce67cbaa972b6dae614a95a65a12999ee27b85c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Item.GetMapPos/description",
          "source": "Resolves the item's map hex from direct map ownership, its owning critter, or recursively through containing items; throws when the map or ownership chain is invalid",
          "source_sha256": "62fe94b1bb8c20978d1bd63c1e0c11aef117df87d6762fca7bb5b8a7c0d7d20c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Item.GetSpriteOffset/description",
          "source": "Returns the current rendered pixel offset of this map item's sprite; throws if the item is not on the loaded map",
          "source_sha256": "7cab4238c43f01415a6ac15bd12f77c116b3c37e51db7d2eaf4ed2e094c3bf07",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Item.IsAnimPlaying/description",
          "source": "Reports whether this map item's sprite animation is playing; returns false for items outside the map view",
          "source_sha256": "edadf9f5c2415baba74d24ec85ed03168900de718f2a98167a45e6098a24e862",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Item.IsMoving/description",
          "source": "Reports whether this map item is undergoing client-side visual movement; returns false for items outside the map view",
          "source_sha256": "9dcbebb0266c4e1b74c894193b0e6a9dc8cdb1d0b381e538a792886d51375bd3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Item.IsVisible/description",
          "source": "Returns whether this map item's sprite currently participates in rendering; throws if the item is not on the loaded map",
          "source_sha256": "0297682fb0f3a0dcc31e20f5776e659a7aad953760442e1b4e20e072385ed324",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Item.MoveToHex/description",
          "source": "Starts client-side visual movement of a map item toward the target hex at the requested speed; does nothing for items outside the map view",
          "source_sha256": "09652340e447e7184ab4594660086e90a5e555c17a7abb8f60f0edd662ab8f01",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Item.PlayAnim/description",
          "source": "Starts the named sprite animation for a map item with the requested looping and reverse modes; does nothing for items outside the map view",
          "source_sha256": "51fa2e7198d5805d2669750b3969af878c02afb894b0730685d7437a97444353",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Item.SetAlpha/description",
          "source": "Fades a map item's sprite toward the requested target alpha; does nothing for items outside the map view",
          "source_sha256": "2f930980fd893b2784ab4c34e9de2e6cc7e807ad9f98087c65976b3a1da6dd3c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Item.SetAnimDir/description",
          "source": "Sets the directional variant used by a map item's sprite animation; does nothing for items outside the map view",
          "source_sha256": "8589a66ec8b38576567a1a7a9c5a4cf0f084d2e450ecf37ce397d92569ffdf73",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Item.SetAnimTime/description",
          "source": "Sets the normalized playback position of a map item's sprite animation; does nothing for items outside the map view",
          "source_sha256": "a8975b67cd07c8efa133e0ad719ce67ca0888b58e7d48fe26039e48e99cc8efa",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Item.StopAnim/description",
          "source": "Stops the current sprite animation for a map item; does nothing for items outside the map view",
          "source_sha256": "700cb7b56627183d99e5154d467493de7bdbe6bac51ee77c38695b568b17c21a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.AddFog%232b31b535aa5f8b00/description",
          "source": "Adds and returns a fog layer attached to an optional critter at the requested draw order, using an offscreen flush effect when its subtype is nonnegative",
          "source_sha256": "7a86fcd2a60d82c1c37cd6fdfe50eb3c877e347e1b4948c04b67448e34944889",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.AddFog%23d8badb89913d2e1b/description",
          "source": "Adds and returns a fog layer at a valid hex and draw order, using an offscreen flush effect when its subtype is nonnegative; an invalid hex throws",
          "source_sha256": "5cdc64bcf8d3b8d88bff65bfacc25da8e0aa2719914e566f9fcd2508e0282c03",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.ApplyScreenScroll/description",
          "source": "Applies a pixel scroll delta using the requested speed and interruption policy",
          "source_sha256": "d894467b84a0f43148addaf3abf5e7d5252434c4455d07f8a28538204c371e67",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.ChangeZoom/description",
          "source": "Starts a zoom change anchored under the mouse cursor, or the screen center when mouse input is unavailable; an unchanged target is ignored",
          "source_sha256": "fa60ac9c284ed932f7c7a49b9731b0d30036d4858c4da352e3ce929019a89889",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.ClearTransparentEgg/description",
          "source": "Clears the selected transparent-egg slot from this map view",
          "source_sha256": "7fc36fc85b4a8e11aec582048488097aef829f33a6dac073e260d3281b717991",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.CreateLocalItem/description",
          "source": "Creates and attaches a client-local item of a known prototype at a valid map hex; invalid prototypes or coordinates throw",
          "source_sha256": "8bee64e5cc98611b914069476b37651808b2eea809640a0cf7560eec15680022",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.DrawEntitySprite/description",
          "source": "Draws a client entity through the selected offscreen effect during a render event and returns whether drawing succeeded; throws outside rendering or for negative padding",
          "source_sha256": "c5c4d1bf07cbe84b6c069c24d14701e7c0229c72b1c335124359d5f3312c46c9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.DrawMap/description",
          "source": "Draws the loaded map during the RenderIface event; throws when called outside that render callback",
          "source_sha256": "cb39141d8160103ea137eb4211519e51fc3df6850452526c4b78242667044002",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.DrawMapSprite/description",
          "source": "Adds a holder-defined sprite to this map draw, silently skipping invalid, offscreen, or unresolved sprites and applying referenced item-prototype rendering rules when present",
          "source_sha256": "bb973ead3728041e1604a054507de96f3d105f06939ae57370046a020448f66c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.GetCritter/description",
          "source": "Returns the critter with the supplied runtime id, or null for a zero or unknown id",
          "source_sha256": "92fc36c66b646342fa432031066462e6bf0df158dbfb56ef422c2fafc96e6aff",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.GetCritterAtScreenPos/description",
          "source": "Returns the pixel-precise critter hit at a screen position, optionally retrying with an expanded range when the exact lookup finds none",
          "source_sha256": "5092034c833efceb6de610a3f2191da75684db88da36f0363346181d8b724ed1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.GetCritterInRadius/description",
          "source": "Returns the matching critter nearest to a valid center hex within the requested radius after accounting for multihex size, or null when none match",
          "source_sha256": "7ea2c8b7731fe1210e2933cc739692e1621f71346c703e27dec1e939a7d5c93e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.GetCritterOnHex/description",
          "source": "Returns the matching critter nearest to a valid hex after accounting for multihex size, or null when none match; an invalid hex throws",
          "source_sha256": "ae5c415931c56fbe59597ae09a88d390df250c6b099eb2afa06a1a9b35fc0ddd",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.GetCritters%23addc705539406d44/description",
          "source": "Returns every critter on this map whose prototype id and find-type state match the supplied filters",
          "source_sha256": "d27e162fd4c53e5ae84b502b54a6b33a1c47c7bb26908baf5169a4e8741a029b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.GetCritters%23d593b4ce96170bb4/description",
          "source": "Returns every critter on this map that passes the requested find-type filter",
          "source_sha256": "57f9fc83846639490c4f68bfef889338acf5a21bcab87d109785dd9155c0d4c0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.GetCritters%23e79de6b56cb9f3b3/description",
          "source": "Returns every critter on this map whose prototype and find-type state match the supplied filters",
          "source_sha256": "387d0e89ca4e661239b4b22380848e68bad3ae30668337f38abaf791a85e7948",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.GetCrittersInPath/description",
          "source": "Traces the requested path corridor and returns matching critters intersected along it; invalid endpoint hexes throw",
          "source_sha256": "c445b0750c579a57f3e24d5e1afc31c9e046fc109deceb9238db9fc53e0d3ad2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.GetCrittersInRadius/description",
          "source": "Returns matching critters within the requested radius of a valid hex, ordered by multihex-adjusted distance from it; an invalid hex throws",
          "source_sha256": "b01b3fd6c82d04c7c53580686262ae757f579cd2ccb52e77ff4b84bd25dedbae",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.GetCrittersOnHex/description",
          "source": "Returns matching critters overlapping a valid hex, ordered by multihex-adjusted distance from it; an invalid hex throws",
          "source_sha256": "51769fe4e00239d07dbcd610eea0c89d2629ff0019bfb0f0dd889de6b2cf7f93",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.GetCrittersWithBlockInPath/description",
          "source": "Traces the requested path corridor, returns matching critters, and writes the last pre-block and first blocking hexes; invalid endpoints throw",
          "source_sha256": "c7b8c4fb46d3381461c9f2841dc420b55023845e76fd2f406a697147cc32ab42",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.GetEntityAtScreenPos/description",
          "source": "Returns the top selectable client entity at a screen position using pixel-precise hit testing, or null when none is hit",
          "source_sha256": "61d0b502a17dfa8cbd17311f90f9df6d70ed62597215f794255b6a7055eb4be2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.GetHexAtScreenPos%238257da98c48140a5/description",
          "source": "Resolves a screen position to a map hex and its pixel offset within that hex, writes both outputs on success, and reports whether resolution succeeded",
          "source_sha256": "a3c0279fdb2c3094344d82c97f0d6427664b17204ceda6c32c568d224b31c17f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.GetHexAtScreenPos%23858322c2894be6b9/description",
          "source": "Resolves a screen position to a map hex, writes the hex on success, and returns whether the position maps to the view",
          "source_sha256": "ec077a6567cfaa65e16845590f1ee9f33ab53850443f34dd5a1819a147416f89",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.GetHexContentSize/description",
          "source": "Returns the aggregate pixel size of content associated with the supplied hex in this map view",
          "source_sha256": "3469616043641c100fa67bb2ad718b05aaa258b178ffd93358ea4c0690b6b45e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.GetHexInPath/description",
          "source": "Traces toward a valid destination and replaces it with the last hex before the path is blocked or reaches its distance limit; invalid endpoints throw",
          "source_sha256": "a4e9c3e19656f446c890098cf88bba793f4405dd871b2580ef6539794500e961",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.GetHexMapPos/description",
          "source": "Returns the integer map-space position of the top-left of a valid hex cell; an invalid hex throws",
          "source_sha256": "adef5836406cdb1c836caee912a7530eba028146d6ea2c6ed1254c32cede840f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.GetHexScreenPos/description",
          "source": "Returns the integer screen position of the visual center of a valid hex after current scrolling and projection; an invalid hex throws",
          "source_sha256": "0a4f422436f3abf8f00ea2fbb5cd2567a9eb0d87ba52131db34bae5dfc5b59af",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.GetHexScreenPosF/description",
          "source": "Returns the floating-point screen position of a valid hex center after current scrolling and sprite zoom; an invalid hex throws",
          "source_sha256": "bfdd5461daae3f9de90571b72c6127b9b632e1939abe065a929c34535a64f67c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.GetHiddenRoofNum/description",
          "source": "Returns the roof group currently hidden by this map view's roof-hiding logic",
          "source_sha256": "34f18359469bbd42b66d3a347f65c98b0fa3b4d9dc03b2b2a5d4bdbeb9140d0a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.GetItem/description",
          "source": "Returns the map item with the nonzero runtime id, or null when this map does not contain it; a zero id throws",
          "source_sha256": "c24602d9c1a67029f4bb4e9f6cf2529fdd74da17ba38c969bdad5b1e3c167cf8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.GetItemAtScreenPos/description",
          "source": "Returns the top selectable map item at a screen position using pixel-precise hit testing, or null when none is hit",
          "source_sha256": "3cdc39e7ab38446fdbd086237aea98e43341b4b1dac7b22777e8dcfa088a58be",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.GetItemOnHex/description",
          "source": "Returns the map's single-item lookup result for a valid hex, or null when no item is selected there; an invalid hex throws",
          "source_sha256": "046b65f0997dbeb856005e3a41e46f7cbe5ab8a09d802157def454d9cc8caff2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.GetItems/description",
          "source": "Returns all client item views currently attached to this map",
          "source_sha256": "5ca61ed12a5fc2c4e432be8e3e40ec71a514bc7fd7c9e9b280a462adf2878b20",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.GetItemsOnHex/description",
          "source": "Returns all client item views occupying a valid hex; an invalid hex throws",
          "source_sha256": "3ad1ff1a7c6de66dbfd43953a9cc8d206682d62059a980195e2aa2c8c0092062",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.GetManualScroll/description",
          "source": "Returns the manual-scroll direction flags currently consumed by this map view",
          "source_sha256": "228806237f7cba7a3b2a841009d6cb3822115fbfa40dd487c4e15037406349db",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.GetPath%2311a78e57794a1f73/description",
          "source": "Finds movement directions between valid hexes, optionally stopping the endpoint cut hexes short; returns an empty array when no movement or path is available",
          "source_sha256": "73877b069154140458df6ed8654fba7fa8fade40cd03e12d21350ee3f0f05da3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.GetPath%232f15d4b55a4ef07c/description",
          "source": "Finds movement directions between valid hexes while the callback may pass gag items; returns an empty array when no movement or path is available",
          "source_sha256": "38ced14548115216f431ea5a129442fc4fa911ab198463222a39018f40edbe7b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.GetPath%239abc1ca3612a809e/description",
          "source": "Finds movement directions from an on-map critter to a valid hex, accounting for its multihex and optionally stopping cut hexes short; returns an empty array when no movement or path is available",
          "source_sha256": "f77f0c2a85a897b879244e38a26419b31454927d81378368fdff040aca72e60e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.GetPathLength%2339f192296d8a7003/description",
          "source": "Returns the number of movement steps between valid hexes, optionally stopping cut hexes short; returns zero when cut removes the move or no path is available",
          "source_sha256": "4445bf54807bce0f0876328c1e92ad3271d99c6fd2c2f23e7e3de201bf8bb2bf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.GetPathLength%23b62c50c709a20fb8/description",
          "source": "Returns the number of movement steps from an on-map critter to a valid hex, accounting for its multihex and optional cut; returns zero when no movement or path is available",
          "source_sha256": "97493d51ff308d63cf568119a3669f102be8b3efc109b8444f1f2c616fff90c9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.GetRoofNum/description",
          "source": "Returns the roof group number at a valid map hex; an out-of-range coordinate throws",
          "source_sha256": "a1868e09f99e26c7b00406e654e1dec94d341340770c6344ef63cee963ed0044",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.GetScreenSize/description",
          "source": "Returns the current pixel size of the map view's rendering viewport",
          "source_sha256": "f9ad4f3f792815e7b8504db177a09f029be85e21ef2e37e91561fde36fe0ec5f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.GetVisibleHexes/description",
          "source": "Returns every map hex currently selected for drawing by this view",
          "source_sha256": "405236e72866f39de76e9df74279e73d7e1f02bf1b494b0e7f924f1fe6a41224",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.GetVisibleLayers/description",
          "source": "Returns the set of layers currently visible in this map view",
          "source_sha256": "736f71b53bbf0b66e5fe692549decded5cb111a877ffca9964ea878c17880007",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.IsAutoScrolling/description",
          "source": "Returns whether this map view is currently performing an automatic scroll",
          "source_sha256": "3247cf270b4569f107e1b8f24b78ea54c80887f1eff10a2ef5489651a4de03cd",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.IsHexMovable/description",
          "source": "Returns whether movement is currently unblocked on a valid hex; an invalid hex throws",
          "source_sha256": "460059ed95c038607a7f24e6251b7b35c0bee53cf2fec54a37dd64f78fcbcf56",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.IsHexShootable/description",
          "source": "Returns whether shooting is currently unblocked through a valid hex; an invalid hex throws",
          "source_sha256": "e6c00f6d77ae901afbd47ea01f61196f7f49247158c58149744faf1c89cac2fa",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.IsHexValid/description",
          "source": "Returns whether the supplied hex lies inside this map's dimensions without throwing for an invalid coordinate",
          "source_sha256": "7d1b1236f385c708578fb0da13e435bb076274016743de482efb8ec93126d566",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.IsHexVisible/description",
          "source": "Returns the client visibility flag stored for a valid hex; an invalid hex throws",
          "source_sha256": "8761160ba54927942377171e2559b465f2e67a564e01c2b31a471af07a8cb1ec",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.IsOutsideArea/description",
          "source": "Returns whether a valid hex lies outside the map's configured playable area; an invalid hex throws",
          "source_sha256": "985e3e5b327cd30164ed484e5cad9f775bea40d43038b0b7eb113de4d46db095",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.IsScrollCheck/description",
          "source": "Returns the map view's current scroll-check flag",
          "source_sha256": "7e50fccf6338d4bc8976bdd4b1489b8662c8da42795433c2757b0fe0e6b4e467",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.MoveHexByDir%2362392271e1b42030/description",
          "source": "Moves a hex one cell in the requested direction when the destination remains inside the map, updates the argument, and reports success",
          "source_sha256": "bf3d396b2e51d1c84def1baf9d12d10a071a67c92d7d35912b4e8db9ebb83df5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.MoveHexByDir%23b39016610645244b/description",
          "source": "Moves a hex up to the requested number of in-bounds cells in one direction, updates the argument, and returns the completed step count",
          "source_sha256": "9206f0cbf8749471a9d7267ab1a11cd5dae9f749f066065022804b924e0e4bbb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.MoveScreenToHex/description",
          "source": "Scrolls the view toward a valid hex using the supplied offset and nonnegative speed; speed zero jumps immediately and ignores the offset",
          "source_sha256": "6edd3c4c1b1b8f69f0a4bb9d2b4d33780adf7c5f85b62cb9bb4a28cc9bd16f66",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.RebuildFog/description",
          "source": "Rebuilds this map view's fog geometry and rendering state from its current fog layers",
          "source_sha256": "2b3ba5b978303590b058f82f28ac023a3696b14f33b172220c66d395199c94ae",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.RedrawMap/description",
          "source": "Rebuilds the map view's renderable map state from its current client-side contents",
          "source_sha256": "925f75a76d06ac5195871190c45743500f7938aa8d3b282992f8c46304604a35",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.RunSpritePattern/description",
          "source": "Starts a named sprite pattern with a positive frame count and returns its controller, or null when the pattern cannot be created",
          "source_sha256": "e319337e171efb581f8405532ca073d5eb81554adaff5818e416f09639f91f01",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.SetDayColors/description",
          "source": "Replaces the map-local and global day colors together with their light-capacity values for this client map view",
          "source_sha256": "c8c8cb231e252151c8542ccbfec33e88b3d2ec624b9943d2ee878a3b26ef5038",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.SetExtraScrollOffset/description",
          "source": "Sets a script-owned transient camera offset applied on top of ordinary map scrolling",
          "source_sha256": "0da194bf52e5983d9ff55dab4f85f3ccfc868dad8a588ba3cf5aee70f72be785",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.SetHiddenRoof/description",
          "source": "Sets the hex used by this map view's roof-hiding logic",
          "source_sha256": "1b3197ec931f796a5fd946aae4eecc736094a3b9ea024e6182487e7122cb398e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.SetManualScroll/description",
          "source": "Replaces the manual-scroll direction flags consumed by this map view",
          "source_sha256": "a60d39b67eaae51899e3d82ff067c0bef39798e64773c45064918a87c4fd2cea",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.SetScreenSize/description",
          "source": "Sets the pixel size used by this map view for projection, visibility, and rendering",
          "source_sha256": "06484604545873216c2890b234a3832afbce136321edab1fa9cf7905d55a8a88",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.SetScrollCheck/description",
          "source": "Enables or disables the map view's scroll-check behavior",
          "source_sha256": "df9cb6085f19e1df598072f00ba6b7a78fa5c23df97cc83fb591c380f6b435f5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.SetTransparentEgg%23b6b974b26dd5da96/description",
          "source": "Configures a transparent-egg slot around an explicit hex-relative rectangle without attaching it to a critter",
          "source_sha256": "adec292a242911f9f3018a4e3b730030552254205ff96316f12673ab981647c5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.SetTransparentEgg%23d4f73ea0d2898f79/description",
          "source": "Configures a transparent-egg slot around an on-map critter's current sprite bounds, or clears the slot when the critter is absent, foreign, or not drawable",
          "source_sha256": "458357f0cf52776c71dd6802047e4997d88498000bb77c814bff59944f69ddc4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.client.Map.SetVisibleLayers/description",
          "source": "Replaces the set of layers visible in this map view",
          "source_sha256": "21d4d1661087088874996cfaf76755294c917eb128ba371abfaf39c2a52ead51",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.AndroidBuild/description",
          "source": "Reports whether this binary targets Android",
          "source_sha256": "3db581a240a4a9044c0bb2836762ab57eb407acf4e1286399c233ca10e68e14f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.BreakIntoDebugger/contract/notes",
          "source": "Development-only debugger trap; intentionally not an embedding-project compatibility contract",
          "source_sha256": "454a289e2434edc126c92e13fa55a8cc1f5cbb6b7a59ff08d7e7af5eed623a53",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.BreakIntoDebugger/description",
          "source": "Triggers the platform debugger break primitive for the current process",
          "source_sha256": "ee1dba4d5d2b6e253e20861d146db1670af0ff582026a2348e3cec807ddb4de2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.CheckProtoCritter/description",
          "source": "Returns whether a critter prototype with the supplied id is registered",
          "source_sha256": "d392e5fc3d7a5c19c2dca04fc60e0b6b4fe50056086fcde0b326a803d7b44c89",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.CheckProtoItem/description",
          "source": "Returns whether an item prototype with the supplied id is registered",
          "source_sha256": "c0ffb25b742aac6b1876ac53d6da8b44f047faf5584dcaec81a14acc360d8ff3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.CheckProtoLocation/description",
          "source": "Returns whether a location prototype with the supplied id is registered",
          "source_sha256": "31489eee6717379e1077643bf1ce8616c1daf641d99bef9f07f4d119b640dc5c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.CheckProtoMap/description",
          "source": "Returns whether a map prototype with the supplied id is registered",
          "source_sha256": "35c1249228e398b1ab9c790a553f983f27416fa5b4fe5ed1fef9449b1fc737cc",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.CountTimeEvent%233f402d7af9d733a8/description",
          "source": "Counts all time events on this Engine instance that use the selected callback",
          "source_sha256": "cba42b1876c2d34809e377483eb6fd6d637b6943c9778a7481de42c9d5e25573",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.CountTimeEvent%2393f88715f57381d8/description",
          "source": "Counts all time events on this Engine instance that use the selected context callback",
          "source_sha256": "6b1dc6b7dc2aef135804d3ae1c29cbfe8194267ca25e908c5443662684d50549",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.CountTimeEvent%23a7d6bf3965b779f9/description",
          "source": "Counts all time events on this Engine instance that use the selected callback",
          "source_sha256": "cba42b1876c2d34809e377483eb6fd6d637b6943c9778a7481de42c9d5e25573",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.CountTimeEvent%23b5319e6dc3f86b0f/description",
          "source": "Counts all time events on this Engine instance that use the selected callback",
          "source_sha256": "cba42b1876c2d34809e377483eb6fd6d637b6943c9778a7481de42c9d5e25573",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.CountTimeEvent%23e41a67022275199d/description",
          "source": "Returns one when this Engine instance owns a time event with the supplied id, or zero when it is absent",
          "source_sha256": "8f21e527dda545f65dd4df71b761a07f6eaeaba1820e8a7332083e7562a92f7e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.CurrentLanguage/description",
          "source": "Returns the language pack currently owned by this Engine instance",
          "source_sha256": "f18efaaf80322525d0ca917530b0bbe5c132cc7a8e0ba7fb89695dc49c69b6a6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.DebugBuild/description",
          "source": "Reports whether this is a native Debug build",
          "source_sha256": "c85c7ecd83da496d15d8cd7ac0fe1e512e471d52ebcf8584264c0e3302815ac8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.DecodeUtf8/description",
          "source": "Decodes the first UTF-8 code point from the supplied text, writes the consumed byte count, and returns the Unicode scalar value",
          "source_sha256": "6f3475b6d2717497d0c3e36bf36f8aec12c04704f7177deae64016512c5fe31f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.DesktopBuild/description",
          "source": "Reports whether this binary targets a desktop platform",
          "source_sha256": "b68f13b813a20241d166ad7e57864e70fbf9fa30569b225834cef05ee7094535",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.DivRem/description",
          "source": "Divides two signed integers, writes the remainder, and returns the quotient",
          "source_sha256": "7aa55c9423e8aa595cbc5fd473494e7eb1a0563fcf84d0a383bd50cb399eefde",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.EncodeUtf8/description",
          "source": "Encodes one Unicode scalar value as a UTF-8 string",
          "source_sha256": "5d1baa130db90fde9edb988a67356a1438e054303c3eec497f0fc2def0ef2e8b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.GetAllocatorStatistics/contract/notes",
          "source": "Opt-in diagnostic snapshot; availability and allocator scope are not a whole-process memory contract",
          "source_sha256": "05a8d37e8d9ca973e37124b10c59b52d27ca58f566e85a0494f818824d145d4b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.GetAllocatorStatistics/description",
          "source": "Returns module-global rpmalloc pages and calling-thread size-class capacities, or an empty dictionary when diagnostics are unavailable",
          "source_sha256": "27d45edfc63bfe220b251265e41bd9e27ee3f533cb3801a5b94c992697690582",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.GetClipboardText/description",
          "source": "Returns text currently provided by the host application's clipboard integration",
          "source_sha256": "630e3699f519aa753d39b7dedb83d2ecc2bcf9f65f6c0fd186b21efa205bfd0e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.GetDirAngleDiff/description",
          "source": "Returns the rounded signed shortest angular difference between two map directions in degrees",
          "source_sha256": "8f98feece1043eca13638d6e391328f22a2cb5891522323ea161023124cf2192",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.GetDirection/description",
          "source": "Returns the rounded angular map direction from one hex to another after applying the optional degree offset",
          "source_sha256": "dc38cce8cd6a649b104cc7c72cd6d247cc1dea5ff2ce8fc5cf953afb13779345",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.GetDistance/description",
          "source": "Returns the hex-grid distance between two map positions",
          "source_sha256": "8bf3e63803498fd966beb306494ccf952d238162e98d20ac6817dd8f0a467557",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.GetHexInterval/description",
          "source": "Writes the pixel-space hex-grid offset from one map position to another",
          "source_sha256": "7707ef6636fe2887a5f87fd630094ac06d3695343a1e93ba8c2780f3ef1b8715",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.GetLanguage/description",
          "source": "Returns the language configured for this Engine instance as a hashed LanguageName",
          "source_sha256": "ff32f2d006e7bc9b2da608c99e7827d36e96d7c851123462a0b6963810bfa13b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.GetLineDirAngle/description",
          "source": "Returns the rounded angular direction of a line between two integer pixel positions",
          "source_sha256": "3306c70859d3dda2d1babe56f81ec101eebc1e1d4992f4350e6b6a5ab85f37de",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.GetModelAnimDuration/description",
          "source": "Returns the baked duration for a model's state/action animation tuple, or zero when the model metadata, tuple, or 3D support is unavailable",
          "source_sha256": "db5d453bad90f3057a6b13878c5c579d3dfe0850d17a56116888eb01df00bb14",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.GetPrecisionTime/description",
          "source": "Returns the current high-resolution monotonic time point for measuring process-local elapsed time",
          "source_sha256": "cc5e9e0a0ce394ac20857248d1b5a87da02e5e0f0a077c8054b8a52795036f1a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.GetProtoCritter/description",
          "source": "Returns the registered critter prototype for the supplied id; an unknown id throws and can be tested first with CheckProtoCritter",
          "source_sha256": "a8bafb339cca1319e0f686a653a4b42b1e073e64bcc434a02a9f6b41b5acda90",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.GetProtoCritters%235e6c5c33c1f46eab/description",
          "source": "Returns handles to every registered critter prototype",
          "source_sha256": "30c33756ac651b11b9f4c79eaab232157137e10896df7ad8bd0c58000b676c97",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.GetProtoCritters%23b2a34033b30fd6e4/description",
          "source": "Returns registered critter prototypes whose selected integer-convertible property equals the supplied value",
          "source_sha256": "01f9b4d41a29f3853b7395be3f600509e0d5884724fb69ad3efc613458fa4732",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.GetProtoItem/description",
          "source": "Returns the registered item prototype for the supplied id; an unknown id throws and can be tested first with CheckProtoItem",
          "source_sha256": "abae9b57155c9907413b6ed208498d77864a984775186acf77d9071415ce672e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.GetProtoItems%23dadf6ac4c721c1c3/description",
          "source": "Returns handles to every registered item prototype",
          "source_sha256": "7606b53fc47e366074cf73cf3a721163aadff274b1c4ba1fec367d0e1a1a30b7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.GetProtoItems%23ebadf2a9b94bef13/description",
          "source": "Returns registered item prototypes whose selected integer-convertible property equals the supplied value",
          "source_sha256": "453f941e2597342c949d9134f06ae64258938a856500d7ec2de4bb5da965e985",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.GetProtoLocation/description",
          "source": "Returns the registered location prototype for the supplied id; an unknown id throws and can be tested first with CheckProtoLocation",
          "source_sha256": "78f4df6146e6efb96ced2672e516b1e634198bed7f7117cb803bba9a3ce603f2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.GetProtoLocations%231b5286830c6298ad/description",
          "source": "Returns handles to every registered location prototype",
          "source_sha256": "065a7c5b8bee29d5b77dc3167e1dec7a65e6577e1d9c4baf07dd18edc38219c9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.GetProtoLocations%2377f203867b4d1242/description",
          "source": "Returns registered location prototypes whose selected integer-convertible property equals the supplied value",
          "source_sha256": "bc36a4c8776bd2ade2cab44d168418089a4d8bfe71d1165f16d873929215793f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.GetProtoMap/description",
          "source": "Returns the registered map prototype for the supplied id; an unknown id throws and can be tested first with CheckProtoMap",
          "source_sha256": "77290a0cc832bce1c325ffaee4b4dd309fc65aebc19328679f8f43f831db762c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.GetProtoMaps%23278f6581638f2219/description",
          "source": "Returns handles to every registered map prototype",
          "source_sha256": "fcf259e360b9a3a5bf8b5dfbd0bb9ae6fa5940954d6f7bdae0c09cc68401ef0e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.GetProtoMaps%2354a26bee3bd9428d/description",
          "source": "Returns registered map prototypes whose selected integer-convertible property equals the supplied value",
          "source_sha256": "1fa17a03d1434b85abb6fc3e245f4baa78ba9cfd16c094ed2e1b113ff0bb8535",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.GetUnixTime/description",
          "source": "Returns the current Unix timestamp in whole seconds",
          "source_sha256": "b953bb0f23ded8ae51657811b9f507f8078a573ae4edc47dcbc3066cc80158b5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.GitBranch/description",
          "source": "Returns the source branch recorded when this binary was built",
          "source_sha256": "55f097b06cf5bfd651a6cf5db369fff40369862be6db3d8c28361873f67a46d2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.GitCommit/description",
          "source": "Returns the source revision recorded when this binary was built",
          "source_sha256": "c163ff4503d0a6c3d00f63404758925ed1bd0dab708b7cff486b140094ad458f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.IOsBuild/description",
          "source": "Reports whether this binary targets iOS",
          "source_sha256": "576b2fc5372bd082e05efc448171454a4b45f5678d54fcb31196575a68f4a9eb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.ImGui/description",
          "source": "Returns the Engine ImGui script facade during an active ImGui frame; throws when no context or frame scope is available",
          "source_sha256": "fbd04aa4518d9827fe168152d2a12303a5078f08e1f4a54090cb37b2bb12f60e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.IsImGuiAvailable/description",
          "source": "Returns whether an ImGui context exists and is currently inside an active frame scope",
          "source_sha256": "00b21701975efcef505fed04b054e18b7528d649bcb25074b822708eec8490bf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.IsResourcePresent/description",
          "source": "Returns whether the Engine resource provider can resolve a file at the supplied resource path",
          "source_sha256": "104055d8f03f9c43105d273ff39f6a6998f555f806473de2e098983441ff8e9e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.LinuxBuild/description",
          "source": "Reports whether this binary targets Linux",
          "source_sha256": "26909169e37bbe36e7538e86a4c829554f67fce544206d906805e6be2dbf1336",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.Log/description",
          "source": "Writes the supplied text as one Engine log message",
          "source_sha256": "d007f4620b8a9644ef1c7d995e6900a80db91390d7f72ec4a4d244ed32a3c183",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.LogError/description",
          "source": "Writes the supplied text as one error-level Engine log message",
          "source_sha256": "1029e4d2c7b9cc6d6fa2b9853246dbc0e40a9b18f615b2234071e2bac8b23eb6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.LogWarning/description",
          "source": "Writes the supplied text as one warning-level Engine log message",
          "source_sha256": "8678c874479e9c880c54464cda7aef17bd6112bfda7826b39bf3231dff93a2de",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.MacOsBuild/description",
          "source": "Reports whether this binary targets macOS",
          "source_sha256": "035078f5d159423872f7211633c168ab9c0abf50bdef8b52bb6b338f7753109b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.MapDirCount/description",
          "source": "Returns the compile-time number of movement directions for the configured map geometry",
          "source_sha256": "7e74cf87e212b4d16ddcab7070cf610e39d4bd4bcaf24c490c8c2371da7f31cf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.MapHexagonal/description",
          "source": "Reports whether the configured map geometry is hexagonal",
          "source_sha256": "29a8cd2af651efa8d450c829717c0841db4682702895180b03e1598c85dda4eb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.MapSquare/description",
          "source": "Reports whether the configured map geometry is square",
          "source_sha256": "716e4726bf2580d735bab82f23421827a4a1f1caef34fde17cce853e946a1dd9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.OpenLink/description",
          "source": "Asks the host application to open the supplied link using its platform integration",
          "source_sha256": "51e7d1fc4b359366d5c84aeb327225d0b853e4f207b725608f88aed74c225eeb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.PackSynchronizedTime/description",
          "source": "Converts a local calendar date through milliseconds into the Engine synchronized-time domain; an invalid date throws",
          "source_sha256": "ba6bb6f665577280d4716059e0a0a1900dfd19f392b04baec7afe66510d0cbd3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.PackTime/description",
          "source": "Converts a local calendar date and subsecond fields into the corresponding high-resolution time point; an invalid date throws",
          "source_sha256": "a27e0b5d75d4ef740d9fbcb2335fca0704d09ff96f0ef2c6b5857e9209808cd8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.Random/description",
          "source": "Returns an Engine random integer in the inclusive range defined by the supplied minimum and maximum",
          "source_sha256": "9f8c5a1d40330dad1988459660e997fc72fa4e863732ebdc0b45ef29f6943551",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.ReadConfigSection/description",
          "source": "Reads a resource as Engine config syntax and returns the requested section as key/value strings, or an empty map when that section is absent",
          "source_sha256": "c2fe745dc5a80eff57689a958a5425e94789627dad45bdc9ca715cd6c9764389",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.ReadResource/description",
          "source": "Reads and returns a text file through the Engine resource provider",
          "source_sha256": "8bf58ffe0ea0840251766a7d15e3ed757feb0190307157baaf72c9e08ff2dfa0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.RepeatTimeEvent%2328154675b58100aa/description",
          "source": "Sets the repeat interval for the event with this id and reschedules its next firing from now; does nothing when it is absent",
          "source_sha256": "e77aa37addb49c72b050667f14e600cc1d1f4465538f18cd6b8cb103cf0390ed",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.RepeatTimeEvent%23652b690f3dfe13f6/description",
          "source": "Sets the repeat interval for every matching callback event and reschedules each next firing from now; does nothing when none match",
          "source_sha256": "d6c62265877bdceacbf0cf42bfeafdedfd0801c5eb231a77b3952ce70b7be6ad",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.RepeatTimeEvent%239e12c325ddb90694/description",
          "source": "Sets the repeat interval for every matching callback event and reschedules each next firing from now; does nothing when none match",
          "source_sha256": "d6c62265877bdceacbf0cf42bfeafdedfd0801c5eb231a77b3952ce70b7be6ad",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.RepeatTimeEvent%23a65d2cbccf611310/description",
          "source": "Sets the repeat interval for every matching context-callback event and reschedules each next firing from now; does nothing when none match",
          "source_sha256": "823ca3aaefde56ee64f5454e389eb452fdddacecb3fd9ea3ce1d498acc35f67c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.RepeatTimeEvent%23fc48af159fae9e5d/description",
          "source": "Sets the repeat interval for every matching callback event and reschedules each next firing from now; does nothing when none match",
          "source_sha256": "d6c62265877bdceacbf0cf42bfeafdedfd0801c5eb231a77b3952ce70b7be6ad",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.RequestQuit/description",
          "source": "Requests application shutdown and marks the eventual process result as success or failure according to the argument",
          "source_sha256": "feb42c32fefa1fa50e54d519bfb32cbaf339ef6a5e6e7541a9993e7702353c97",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.RotateDirAngle/description",
          "source": "Rotates an angular direction clockwise or counterclockwise by the supplied degree step and normalizes it to the zero-through-359 range",
          "source_sha256": "06032f42822d12a818cc6062a57d402d6b2e3970f0dfac945be530580ceaac2d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.SetClipboardText/description",
          "source": "Replaces text in the host application's clipboard through its platform integration",
          "source_sha256": "3e6e97869362215911eb992f152dd47428e9f5435e896450f2feabf1868500b5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.SetTimeEventData%23663f5a321c3707f7/description",
          "source": "Replaces the single context payload value for every time event using the selected callback; does nothing when none match",
          "source_sha256": "815cf545003b176c4dbab9e85444998a45763e5a120af495e2ad202e59402113",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.SetTimeEventData%23995b7ca79df38c35/description",
          "source": "Replaces the single payload value for the time event with this id; does nothing when it is absent",
          "source_sha256": "536a15d84c85f32c3a91bfbaa18547248521a0cb9ef99d8016b957122f177bd0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.SetTimeEventData%23adb2b4962b8e3874/description",
          "source": "Replaces the payload array for the time event with this id; does nothing when it is absent",
          "source_sha256": "2e9569a9d22462201fd581020eaec016085c502486bd53ec171098a6c62c131a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.SetTimeEventData%23f050f171334586b4/description",
          "source": "Replaces the context payload array for every time event using the selected callback; does nothing when none match",
          "source_sha256": "6a7894558cde6c46a98de8747684a5c532bf81c07f041a162d09e5254ff754fa",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.SetTimeEventData%23f19e035707634deb/description",
          "source": "Replaces the single direct payload value for every time event using the selected callback; does nothing when none match",
          "source_sha256": "8d729c8761bd8cee14622ea86116914ff7e115db29080d5d389fdc908f87fb2e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.SetTimeEventData%23f70e313f0f2186e1/description",
          "source": "Replaces the direct payload array for every time event using the selected callback; does nothing when none match",
          "source_sha256": "f1d161fc3e5da2dcb4dcbccf9e4176dd3da6b96fc062a73a8612284f7d888409",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.StartTimeEvent%230f8d3281846b110f/description",
          "source": "Schedules a one-shot time event on this Engine instance after the requested delay and returns its event id",
          "source_sha256": "e9b78ea3513b15923fe539f1347ee424604f496a6a0ef83f7c506d671c84433d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.StartTimeEvent%232e2e75ee1f40e7ce/description",
          "source": "Schedules a repeating Engine time event with a direct callback payload array and returns its event id",
          "source_sha256": "94e0118f1f139a591be2903c465aafd95ab5422681bece319d0a3b98c938a370",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.StartTimeEvent%233a6c8eb0039422c6/description",
          "source": "Schedules a repeating Engine time event whose callback context exposes the payload array, and returns its event id",
          "source_sha256": "cd55a8f42cdaceceaef355ebda67f98a79014e9d1dd12bdcbfa535dafc8c3ba3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.StartTimeEvent%2360478fb435a8d90e/description",
          "source": "Schedules a one-shot Engine time event whose callback receives a context for inspecting or modifying that event, and returns its id",
          "source_sha256": "89b94d4ba6f490d2f1ce428328cbf55c9653aa6ea0220ce4613798dd8bb0ef00",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.StartTimeEvent%2369df693441c071bc/description",
          "source": "Schedules a one-shot Engine time event whose callback context exposes the payload array, and returns its event id",
          "source_sha256": "86b36cd6757c16cb093aee7145febf215677cbd6495faef65f1393621fd49a88",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.StartTimeEvent%23803750a4ea861cf2/description",
          "source": "Schedules a repeating Engine time event with one direct callback payload value and returns its event id",
          "source_sha256": "06e2d1804eced9054ab850797547d37e72098ece101744406cd910576875c3c1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.StartTimeEvent%238ff2132c2ddcab3e/description",
          "source": "Schedules a repeating Engine time event whose callback receives a context for inspecting or modifying that event, and returns its id",
          "source_sha256": "c8db90b06962c4ec68d7466d5faba5ee28ef87d7a7b7d2613484b4fa4e6a5177",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.StartTimeEvent%239c79861746d77659/description",
          "source": "Schedules a repeating time event on this Engine instance, with its first firing after delay and later firings at repeat, and returns its id",
          "source_sha256": "09cab8faf45eb052a64af3940e789b62e37f5d58c5537e2225c43aed4bc1bac7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.StartTimeEvent%239f7fe12a272e5705/description",
          "source": "Schedules a repeating Engine time event whose callback context exposes one payload value, and returns its event id",
          "source_sha256": "abbfa6cae10a60e4e8d92028f8d1650f6443b9a2b75ed2f694b2bb905d3327f2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.StartTimeEvent%23d2339300efa9e872/description",
          "source": "Schedules a one-shot Engine time event, passes the payload array directly to the callback, and returns its event id",
          "source_sha256": "56e7d0458442eb4cb71a8f86af434f342edae02dabe08d117215740899d2911a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.StartTimeEvent%23e60987dfd50cb4e5/description",
          "source": "Schedules a one-shot Engine time event, passes one payload value directly to the callback, and returns its event id",
          "source_sha256": "ac51194ec90a7ce0f3332b1c54440d1b289d4f3dd58138989cb1653bc038b512",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.StartTimeEvent%23fa4e11482a1cdbc0/description",
          "source": "Schedules a one-shot Engine time event whose callback context exposes one payload value, and returns its event id",
          "source_sha256": "46b0c8461fc8f3ceffdcc0b197fe1c326470304166db646db3f8edcd353ed786",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.StopTimeEvent%231ed76dd699da2d1f/description",
          "source": "Stops all time events on this Engine instance that use the selected callback; does nothing when none match",
          "source_sha256": "076115394067ed056f6b8085aab65ca1b3f5d0ceee700d8fe02723c4f84be6e9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.StopTimeEvent%2323bd9c39e1e601b4/description",
          "source": "Stops all time events on this Engine instance that use the selected context callback; does nothing when none match",
          "source_sha256": "4b5e31032e6ba722a3f87504a6fbc7765c0fd337b68c3f4c729d11f69a45dd67",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.StopTimeEvent%23a22b85adc04c5b0a/description",
          "source": "Stops all time events on this Engine instance that use the selected callback; does nothing when none match",
          "source_sha256": "076115394067ed056f6b8085aab65ca1b3f5d0ceee700d8fe02723c4f84be6e9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.StopTimeEvent%23bc872e42a8dfd6ad/description",
          "source": "Stops all time events on this Engine instance that use the selected callback; does nothing when none match",
          "source_sha256": "076115394067ed056f6b8085aab65ca1b3f5d0ceee700d8fe02723c4f84be6e9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.StopTimeEvent%23be90949683fff93d/description",
          "source": "Stops the time event with this id on the Engine instance; does nothing when it is absent",
          "source_sha256": "343ceb1a31791efa8989a4cf6b178184865c53442b35ae5511144af336953b9d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.TabletBuild/description",
          "source": "Reports whether this binary targets a tablet or mobile platform",
          "source_sha256": "d8d447085b6c1fa34623079d958bfb29b4e06ec8b789e858476ea261f42088a2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.TraceHexLine%238955c6e7c8318b5a/description",
          "source": "Traces up to a nonnegative number of in-bounds hexes toward a target with angular and pixel offsets, excluding the start hex and stopping when the tracer cannot advance",
          "source_sha256": "8d2fdeeed6c45bfea3b1ef3d33fad32b987b9a35bc81b76836cc7741554a7453",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.TraceHexLine%23a8077f78b077a5f9/description",
          "source": "Traces up to a nonnegative number of in-bounds hexes at an explicit angle, excludes the start hex, and writes the last reached hex or the start when no step succeeds",
          "source_sha256": "c7712f205beb52856b30e62be5cf6ea1594c758195cae1dc8edf35a3dfb4cc38",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.UnpackSynchronizedTime/description",
          "source": "Decomposes an Engine synchronized time point into local calendar fields through milliseconds",
          "source_sha256": "5bfa3c4412a3f20fed55845530f1fb6b81ae88c51612984b52bff21586f99d2e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.UnpackTime/description",
          "source": "Decomposes a high-resolution time point into local calendar and subsecond fields",
          "source_sha256": "4e62b9c1823abc43bf543096624466511760a7170ebbe3e01c1cc1fa0bdd03e7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.WebBuild/description",
          "source": "Reports whether this binary targets the Web platform",
          "source_sha256": "877a71eb9b580f1cc5dca93228e37c8d5ed3fd9a30958db33233c440fd659fe0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.Game.WindowsBuild/description",
          "source": "Reports whether this binary targets Windows",
          "source_sha256": "ddde059a2e58d894900c6cf1813e5d265e756f6885414f80abf48fd4c45f6c0d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.AlignTextToFramePadding/description",
          "source": "Advances the current line baseline so subsequent text aligns vertically with framed widgets",
          "source_sha256": "5897183d0cf7424e53842f4d5979f2cbc4fd09b6b5ffea154e9b9eb8bb74c3fa",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.ArrowButton/description",
          "source": "Draws a square arrow button with a required nonempty ID and returns whether it was activated",
          "source_sha256": "8e5eb983ddffb0d4e55825e6a6e3090fafcd6d5e2ad32aa0d0a5b030c1f2ef61",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.Begin%23432e0a449bff3d19/description",
          "source": "Begins a required nonempty-label window and returns whether its contents should be submitted; always pair the call with End, even when it returns false",
          "source_sha256": "b6db23af266f2470383f5b60e0a19b7cfc5ae04c591241950c49f851efc6556d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.Begin%23d84f88f92ac145e9/description",
          "source": "Begins a required nonempty-label closable window, updates opened when the close control is used, and returns whether to submit contents; always pair with End",
          "source_sha256": "dad75e3a5cfb8467b92b717899c47559100f7bb1d3210cf0f07ffdaccc94fc78",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.BeginChild%2391e43db0a33e8f18/description",
          "source": "Begins a required nonempty-ID child region with explicit child and window flags; always pair with EndChild regardless of the return value",
          "source_sha256": "fadd0d9cdbbf4ceab41b2be7a80fe56f24683855ba9d04e8885971e86bad8fd2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.BeginChild%23ec21177b87910173/description",
          "source": "Begins a required nonempty-ID child region with optional border and supplied size; always pair with EndChild regardless of the return value",
          "source_sha256": "21e6b7988a3f199f438985694027d2169206f098fdd4d419efee7b3890f41ebd",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.BeginCombo/description",
          "source": "Begins a required nonempty-label custom combo using previewValue and flags, returning whether popup contents may be submitted; call EndCombo only when true",
          "source_sha256": "d8b41f20f6f7508988ca19c8b8228bc36ad316fbfb1c4b0bf980c6b816ac74ff",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.BeginDisabled/description",
          "source": "Begins a disabled scope when requested while still pushing a balanced scope when false; always pair with EndDisabled",
          "source_sha256": "c81aa607712631e50092ae918e7ce79451d77ac203d765fd399a89c189ca0eab",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.BeginGroup/description",
          "source": "Begins grouping subsequent items into one composite layout and interaction bounding box",
          "source_sha256": "00d00089938424a62b42e9fc3ab44d74722b67538434898fa89ee7dc4d9fb20f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.BeginItemTooltip/description",
          "source": "Begins a tooltip when the last item is hovered and returns whether it opened; call EndTooltip only when true",
          "source_sha256": "6c5176c9eacba1fff4e2cc4c356761d326868b8f0ae75ce5de509afd956f5188",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.BeginListBox/description",
          "source": "Begins a required nonempty-label list box of the supplied size and returns whether contents may be submitted; call EndListBox only when true",
          "source_sha256": "1fb03bb9a8596ebbe32ad10d8283c73cbe45f7403fe9d22d65cfa604de864ae7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.BeginMainMenuBar/description",
          "source": "Begins the main viewport menu bar and returns whether contents may be submitted; call EndMainMenuBar only when true",
          "source_sha256": "f3966a1358dd40d57f7ec965f7f8d6607fc4e433b1bfaa353e08df7977580531",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.BeginMenu/description",
          "source": "Begins a required nonempty-label enabled or disabled menu and returns whether it is open; call EndMenu only when true",
          "source_sha256": "249511b2c6cba840b4e239d83be26da044413716a5332b478ea5da1918ef1732",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.BeginMenuBar/description",
          "source": "Begins the current window's menu bar and returns whether contents may be submitted; call EndMenuBar only when true",
          "source_sha256": "df75f2701e79068131052340cc86d0fda0cdc0544c983bbf9c01a84c6fefde08",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.BeginPopup/description",
          "source": "Begins a required nonempty-ID nonmodal popup and returns whether to submit its contents; call EndPopup only when true",
          "source_sha256": "e154068b2e48ecc48c09b269045c6fc11dc6df4a977b055e9b6b9597907b6b8c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.BeginPopupContextItem/description",
          "source": "Opens and begins a context popup for the last item under the supplied flags, using the last item's ID when strId is empty; call EndPopup only when true",
          "source_sha256": "9262941e0272193996d13715c1559d57e7343d151847ff3e55c02155073632d3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.BeginPopupContextVoid/description",
          "source": "Opens and begins a context popup over empty space under the supplied flags, deriving an ID when strId is empty; call EndPopup only when true",
          "source_sha256": "641c86742acfdb709bdd36f4854d479d4568909db88d4be23a763de035a97051",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.BeginPopupContextWindow/description",
          "source": "Opens and begins a context popup for the current window under the supplied flags, deriving an ID when strId is empty; call EndPopup only when true",
          "source_sha256": "58601eba7d6d193187c79b60295baf6671a7e424e28bd70f3f751b4d5097cbc5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.BeginPopupModal%231e97b73df215a7fc/description",
          "source": "Begins a closable required nonempty-name modal popup, updates opened from its close control, and returns whether to submit contents; EndPopup is conditional on true",
          "source_sha256": "ec857822e5aae29a4b9d4b579abbba7ba029e5346f0c2f30413b5a7e8b6de363",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.BeginPopupModal%23d6ec4d0ad6e4297f/description",
          "source": "Begins a required nonempty-name modal popup and returns whether to submit its contents; call EndPopup only when true",
          "source_sha256": "ab0109a7ead6e86a1113062a6266c6de988e9718605c2c174acca2b8be66b644",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.BeginTabBar/description",
          "source": "Begins a tab bar with a required nonempty ID and returns whether contents may be submitted; call EndTabBar only when true",
          "source_sha256": "7de4fcf914e1e29bc61443e4099b60fda33d9c015d526de566a1a6fe1bbec920",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.BeginTabItem%238769abbb356a8660/description",
          "source": "Begins a required nonempty-label tab item and returns whether its contents are visible; call EndTabItem only when true",
          "source_sha256": "ac994e30ea68882e9f95d68caece9e431c556a790632ef870e9449a243aa5ac0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.BeginTabItem%2399825a7be7e7e25c/description",
          "source": "Begins a closable required nonempty-label tab item, updates opened from its close control, and returns whether contents are visible; EndTabItem is conditional on true",
          "source_sha256": "d27aecd67cf43a6d6e0cc3d82aab15c1a69051b205b60e465706c87e645fc8cc",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.BeginTable/description",
          "source": "Begins a table with a required nonempty ID and positive column count, returning whether contents may be submitted; call EndTable only when true",
          "source_sha256": "0cfc1e59adf0cc9c7bcf115eddbf2a348b5ad02640e493ad61c50696df1b63ae",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.BeginTooltip/description",
          "source": "Begins an unconditional tooltip window; pair it with EndTooltip",
          "source_sha256": "0dca85bacde4f4cbbb6ad17ef0ad0dd6e3b87e745359d8cdb77efffe262085a3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.Bullet/description",
          "source": "Emits a standalone bullet and advances the cursor on the same line for following content",
          "source_sha256": "fb789eca7b2fda9cd6a1c2cfc3d42faa0a4d06c97ec57911c1da31c960671f8a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.BulletText/description",
          "source": "Renders the supplied text preceded by an ImGui bullet",
          "source_sha256": "713c31bfd13592b6d6e887d2dcf5f46f7222bc0f9c4ea7661762bb53804cfd29",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.Button/description",
          "source": "Draws a required nonempty-label button and returns whether it was activated",
          "source_sha256": "50a98c5084e68ce82e8d934ae092d23cffc4654f76357d98de67764c35b1e53f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.CalcItemWidth/description",
          "source": "Resolves and returns the width ImGui would use for the next item",
          "source_sha256": "4f62eca9f610b46e3ff4765a853e7b6b0fe52f7ff9574cbc9cf188bc3579ab37",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.CalcTextSize/description",
          "source": "Measures text using the current font, optionally hiding the ID suffix after ## and wrapping at the supplied width",
          "source_sha256": "c29bef6b0d926a03dfbba4e3ba58e97cfd294c9416ca23e12996b30cdcd67f85",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.Checkbox/description",
          "source": "Draws a required nonempty-label checkbox, updates value on interaction, and returns whether it changed",
          "source_sha256": "92c9e9a20375fa8c09f3101e206fb53467f9132448d790577bc24c75b76960b4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.CheckboxFlags%23458f2952235bd5d1/description",
          "source": "Draws a required nonempty-label checkbox that toggles the selected signed flag bits and returns whether flags changed",
          "source_sha256": "f6748aa0324deba60c7de131304102a8359d36c7cdfdd83c0c2fa6dde5c006ca",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.CheckboxFlags%23f574f68257656ebd/description",
          "source": "Draws a required nonempty-label checkbox that toggles the selected unsigned flag bits and returns whether flags changed",
          "source_sha256": "c1e695b05cc96f862aa7fa66420051f111de9a4160bd28d8037811db5afa741b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.CloseCurrentPopup/description",
          "source": "Requests closure of the current popup at the end of the frame",
          "source_sha256": "423370fe8c5adedb3b2d4868da3d93357aea2397c820d920f8b660f457c1e600",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.CollapsingHeader/description",
          "source": "Draws a required nonempty-label collapsing header and returns whether its contents are visible; it does not push a tree scope",
          "source_sha256": "030b9c34ffd12f5f9873ddde2fb064e56cb4af869c3b59e66eedf063fc9abff3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.ColorButton/description",
          "source": "Draws a color preview button with a required nonempty description ID, packed ucolor, flags, and optional size, returning whether it was activated",
          "source_sha256": "cf65db394d82ee27c7e478fff712ce20873b4524c046c288fc574af6711bb015",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.ColorEdit3/description",
          "source": "Draws a required nonempty-label RGB editor, converts ucolor channels to floats, preserves alpha, and stores clamped 8-bit RGB only when changed",
          "source_sha256": "b9d32b9e6dc1082ffb49a467bb7f324cb6621e74d01d15ed037bf3ad7aeac638",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.ColorEdit4/description",
          "source": "Draws a required nonempty-label RGBA editor, converts ucolor channels to floats, and stores clamped 8-bit RGBA only when changed",
          "source_sha256": "f20f5dda8372daf8d8c8ead2c91b8ead1a585669b7e86f62dd6ee9a92df5bdd5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.ColorPicker3/description",
          "source": "Draws a required nonempty-label RGB picker, converts ucolor channels to floats, preserves alpha, and stores clamped 8-bit RGB only when changed",
          "source_sha256": "d493e4ba6e2d8076e5d34fe2fa8b92331f3c0f2e2efb305e62260aca0aba64da",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.ColorPicker4/description",
          "source": "Draws a required nonempty-label RGBA picker, converts ucolor channels to floats, and stores clamped 8-bit RGBA only when changed",
          "source_sha256": "0ce9241b5782f74d308a43ea395fbbb7bc931c3052d511963a4aa7134a090cc8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.Combo/description",
          "source": "Draws a required nonempty-label combo from a NUL-separated item string, updates currentItem on selection, and returns whether it changed",
          "source_sha256": "f88d97d288cbb171ff013e724dbd9415c339637a4a90cb4682ab54c9cf950828",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.DragFloat/description",
          "source": "Draws a required nonempty-label float drag editor with speed, bounds, three-decimal display, and slider flags; updates value and reports changes",
          "source_sha256": "0f907285bf68700d005152619bb26adafa0101fb4549fe4dcab81a1069b73dd1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.DragFloat2/description",
          "source": "Draws a required nonempty-label two-component float drag editor and writes both components back only when they change",
          "source_sha256": "79ee06c0a5cbb34ad3d8176bc03f9ffaa829c6064a7381914bf342e15ae46054",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.DragFloat3/description",
          "source": "Draws a required nonempty-label three-component float drag editor and writes all components back only when they change",
          "source_sha256": "c3771c7e5fbb8a2e2edc44acb2ae9482bdd4fd67b376e39293dcc0a9c21bce06",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.DragFloat4/description",
          "source": "Draws a required nonempty-label four-component float drag editor and writes all components back only when they change",
          "source_sha256": "079a0c1e02cca26ada3abbcda47d75069efd2116257b8c5347ec630f0cf8b079",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.DragInt/description",
          "source": "Draws a required nonempty-label integer drag editor with speed, bounds, and slider flags; updates value and reports changes",
          "source_sha256": "f456ded13fb8c6c1d75652129bb3bc5d45f1f7d242e1fc6afd9d7ca1b9766631",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.DragInt2/description",
          "source": "Draws a required nonempty-label two-component integer drag editor and writes both components back only when they change",
          "source_sha256": "d1a39954acd30a9fb609dfece7225ef4d0f03a77c7f05da5a0326c57d4eeb4f8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.DragInt3/description",
          "source": "Draws a required nonempty-label three-component integer drag editor and writes all components back only when they change",
          "source_sha256": "0c467915666b2fa15be7fcb48acb85f4a91ab4bfa3b23b088cd34b494bd4f6d5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.DragInt4/description",
          "source": "Draws a required nonempty-label four-component integer drag editor and writes all components back only when they change",
          "source_sha256": "add26288bf020bca434efc3df442d1ce19c90cec240e77b9ea78d978634036aa",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.Dummy/description",
          "source": "Submits an invisible layout item of the supplied size",
          "source_sha256": "8f3e35952c32cc7104d394788463b6df2056cbe34bf77d10e046b73124407417",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.End/description",
          "source": "Ends the current window begun by Begin; this is required regardless of Begin's return value",
          "source_sha256": "a79ba6b71b0dce5b919645de1626db36a9a8d0a6013201e41b5087b9ecc66e5a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.EndChild/description",
          "source": "Ends the current child region begun by BeginChild; this is required regardless of BeginChild's return value",
          "source_sha256": "34e2ef5595b7a2b919d3a309c182b74d407a25f9be55ef7972cedee40014d71d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.EndCombo/description",
          "source": "Ends custom combo contents begun by a successful BeginCombo call",
          "source_sha256": "9bd102049981be3e1c008df647ec8c94f7858579b1cf5fc389a4dfff84c3ec3d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.EndDisabled/description",
          "source": "Ends the current scope begun by BeginDisabled",
          "source_sha256": "35808a479fd5a677f3f6701694b3ec1e12336e0ae59dee76ad9d829c2ead47aa",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.EndGroup/description",
          "source": "Ends the current group and exposes it as the last submitted item",
          "source_sha256": "b902b2c1147c8ec0916a560d7ccd1b5c7bfc36bdf18e35261c33d28fa3ad31f9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.EndListBox/description",
          "source": "Ends a list box begun by a successful BeginListBox call",
          "source_sha256": "75fafd67b48969bc13eb97ae768bdc243075b034c7f37f9a40d4f92d9edb1cf4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.EndMainMenuBar/description",
          "source": "Ends a main menu bar begun by a successful BeginMainMenuBar call",
          "source_sha256": "52e4097448146c9145beae5430e595261288aa14ddf9f9636d4a0c164c41ab77",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.EndMenu/description",
          "source": "Ends a menu begun by a successful BeginMenu call",
          "source_sha256": "ae7029d8fa065dabb0b6e5571b5d6a87c27ddeb81ae4118bc5d36313782a3d61",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.EndMenuBar/description",
          "source": "Ends a window menu bar begun by a successful BeginMenuBar call",
          "source_sha256": "c6a0241289e82383e2e1cbc19ce6e20586ac752d6beedea7d5859fecca87cc92",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.EndPopup/description",
          "source": "Ends a popup begun by a successful BeginPopup, BeginPopupModal, or context-popup call",
          "source_sha256": "ff089f4b72c6f755bd47b3c28617c506ed2de53e980c2e713ca01123b9ea58e6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.EndTabBar/description",
          "source": "Ends a tab bar begun by a successful BeginTabBar call",
          "source_sha256": "617d2d643723a84ab2015804712058fe2c59f82392ce833e9014c4923f612655",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.EndTabItem/description",
          "source": "Ends a tab item begun by a successful BeginTabItem call",
          "source_sha256": "b494a554d9851a45d7088ca28ac54ac3b677b89163b0fba2d6892d2483976ae2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.EndTable/description",
          "source": "Ends a table begun by a successful BeginTable call",
          "source_sha256": "c49537cc0d189bfe124b1ac916525fd239275ea1061856c914bab522325555db",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.EndTooltip/description",
          "source": "Ends the current tooltip begun by BeginTooltip or a successful BeginItemTooltip",
          "source_sha256": "714158dd5b3e8b1ae4d3dbf9c7909b5e1be79bb6564d819e848acfb508f858af",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.GetClipboardText/description",
          "source": "Returns text from ImGui's platform clipboard backend, or an empty string when the backend returns null",
          "source_sha256": "6361f86b245f8c0447c9c1f1099c461c47c3c21781d0c15c83ddb136ac8f6c46",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.GetContentRegionAvailX/description",
          "source": "Returns the horizontal space available from the current cursor to the content-region boundary",
          "source_sha256": "33a4ec76f9aac1b9dd38918b836a5801c12b6b34844a7f3575cc7f7768b400e5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.GetContentRegionAvailY/description",
          "source": "Returns the vertical space available from the current cursor to the content-region boundary",
          "source_sha256": "8ed38b6c92073283c0ae96101024d3c7ca362a8be0dc9287cdc5b0ec95dfca98",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.GetCursorPosX/description",
          "source": "Returns the current cursor's local X coordinate within the window",
          "source_sha256": "7031606140a1b9edce4ed8e60ca863b2a02e9f8c70838fe6da4fadbddaa228ac",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.GetCursorPosY/description",
          "source": "Returns the current cursor's local Y coordinate within the window",
          "source_sha256": "30c1aa025e3e44dc00fed99a0890b5169294daf94e92473aaceb9e370028c7aa",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.GetCursorScreenPos/description",
          "source": "Returns the current cursor position in screen coordinates",
          "source_sha256": "2b707cfba7396725b5e1a92d6a11f26514b698bede0cd413c19c9480637d658f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.GetFrameCount/description",
          "source": "Returns the ImGui frame counter narrowed to int32",
          "source_sha256": "28701a5b4f230843369dd376491fc9525b494fc11e19824696da06a6171c1f9e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.GetFrameHeight/description",
          "source": "Returns the standard framed-widget height for the current font and style",
          "source_sha256": "3170fde6f5da2928b5d0490a7a892aeb7783c8e6715a73339a5aeea49799bf69",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.GetFrameHeightWithSpacing/description",
          "source": "Returns the standard framed-widget height plus vertical item spacing",
          "source_sha256": "bad9d1bb3a6608d6939fce5aa9fc74a7e6d46a6471ac157dc62e3c65e2059f54",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.GetItemRectMax/description",
          "source": "Returns the maximum screen-space corner of the last submitted item's bounding rectangle",
          "source_sha256": "3738de8641d4396d2101ebe605bd09441700b895b1c38fee8d2b2f40fd7cfcac",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.GetItemRectMin/description",
          "source": "Returns the minimum screen-space corner of the last submitted item's bounding rectangle",
          "source_sha256": "ff980fc522bf006883afd33942aeea275b68ea77e6ba4837c83c73472584cecc",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.GetItemRectSize/description",
          "source": "Returns the size of the last submitted item's bounding rectangle",
          "source_sha256": "dc0aa49a9b62acafc285d77b94b94dfedd1f77f33d3439c388511c5db017da34",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.GetMouseDragDelta/description",
          "source": "Returns mouse displacement since the selected button was clicked after crossing the supplied or configured drag threshold",
          "source_sha256": "ddd9fb5fd367ab304660c8081df23e0cd85e462a7c7c527d450f83ea5889d87a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.GetMousePos/description",
          "source": "Returns the current ImGui mouse position in screen coordinates",
          "source_sha256": "b309a45d3b1df454f9fab943387425bc006fdc2605381b8abcae52bc6fa1249b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.GetMousePosOnOpeningCurrentPopup/description",
          "source": "Returns the mouse position captured when the current popup was opened",
          "source_sha256": "47bb48264b85bac33b82784375ebc47999b9f919bd6c848afe3ca5978bea65a0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.GetScrollMaxX/description",
          "source": "Returns the maximum horizontal scroll offset of the current window",
          "source_sha256": "06c315c318cc6d79f4fc87d2e450b4373d9d9d447fdeaec745008157dc9da7ab",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.GetScrollMaxY/description",
          "source": "Returns the maximum vertical scroll offset of the current window",
          "source_sha256": "73b909117e9c299017fda990289571c46ff57af4f3a9db540844f8d3602393c9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.GetScrollX/description",
          "source": "Returns the current window's horizontal scroll offset",
          "source_sha256": "9e88c2f0ba7078427152529cbed0a9cc778a8396ebae30ec9911b51b8a717505",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.GetScrollY/description",
          "source": "Returns the current window's vertical scroll offset",
          "source_sha256": "76732e1cdea3ec0e13a2af48a1b3d085c89cbd3ace72504c369471864e588cc9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.GetTextLineHeight/description",
          "source": "Returns the current font's text-line height without inter-line spacing",
          "source_sha256": "19eedd18169c9bd7f9f3e6231971fbe11200074f83ab447778986c45a704672d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.GetTextLineHeightWithSpacing/description",
          "source": "Returns the current font's text-line height including ImGui item spacing",
          "source_sha256": "a6596e0e12462a1f05462816fbdf6dca1020fc8f38d4386252074a9f377efbaa",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.GetTime/description",
          "source": "Returns elapsed ImGui time in seconds since context initialization",
          "source_sha256": "b1d8edb87a3e7bc1bb843b82c49f01721847a81022fd41ea838e08d0fdc5c143",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.GetTreeNodeToLabelSpacing/description",
          "source": "Returns the horizontal spacing from a tree-node arrow or bullet to its label",
          "source_sha256": "5eeccac1d8325d2b5d58f5e528cbf07326a0c88d7782cb4f1ff674563df428e0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.GetWindowHeight/description",
          "source": "Returns the current window height",
          "source_sha256": "61135d9c4e43ce80d464d5faddefe7662f8e87a138a55cf689d39fc249288d33",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.GetWindowPos/description",
          "source": "Returns the current window's top-left position in screen coordinates",
          "source_sha256": "ed1d256dafd41deb728bc721f7af7aa7c8ba221841bb68bd0bcb755ca0cd0122",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.GetWindowSize/description",
          "source": "Returns the current window's size",
          "source_sha256": "de4f7049de5ff0ac4dcbb022598a74b1e1468438b25c8727caf3ab16e5a63c19",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.GetWindowWidth/description",
          "source": "Returns the current window width",
          "source_sha256": "4b1cac48a09e78fac5ff3307f261d0924ab3a520b4ec77bc6697ca843088ee7c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.Indent/description",
          "source": "Increases the current line's horizontal indentation by the supplied amount or the style default when zero",
          "source_sha256": "08ca80cdf27c4f3b50152ff08c87693c82481882cd12a23bdb44eb010a9296d5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.InputFloat/description",
          "source": "Draws a required nonempty-label float input with step controls, three-decimal formatting, and text-input flags; updates value and reports changes",
          "source_sha256": "1214c94f071845032c5aa73b954d1caa69f16e8afd2ade62ab8e63bfa82e3909",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.InputFloat2/description",
          "source": "Draws a required nonempty-label two-component float input and writes both components back only when editing changes them",
          "source_sha256": "a33a1f464ee289ab3b910c6a453272163c5ea075d597501b9aa52626be639f81",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.InputFloat3/description",
          "source": "Draws a required nonempty-label three-component float input and writes all components back only when editing changes them",
          "source_sha256": "9da2e7d7edfad691699b800082cd7af64a07843b748c9bb8e38cdd7fad0074de",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.InputFloat4/description",
          "source": "Draws a required nonempty-label four-component float input and writes all components back only when editing changes them",
          "source_sha256": "581bce9315385bdf787faf24059a1d7bda33bfec21b6eb4fdd2d283a35eee821",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.InputInt/description",
          "source": "Draws a required nonempty-label signed integer input, updates value, and returns whether editing changed it",
          "source_sha256": "29e70b140196677950740fb2bfc1aaafba17964e6b605e2a57f755e8a216e9f3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.InputInt2/description",
          "source": "Draws a required nonempty-label two-component integer input and writes both components back only when editing changes them",
          "source_sha256": "e3a9050267be3d69a21b697d67876aa178bf583ea1d4989b6ffe0caf0ed3ce08",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.InputInt3/description",
          "source": "Draws a required nonempty-label three-component integer input and writes all components back only when editing changes them",
          "source_sha256": "16cf8fc8a58045eda3436f5abe30af140863727a47086077622c7f13a7cfccb6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.InputInt4/description",
          "source": "Draws a required nonempty-label four-component integer input and writes all components back only when editing changes them",
          "source_sha256": "eb5df34e37221c3edd397ed531e757ebf620453c1cfe1dc98d0cee0638cd02c5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.InputText/description",
          "source": "Draws a required nonempty-label single-line text input backed by maxLength bytes, rejecting zero capacity or an oversized initial value and writing back only on change",
          "source_sha256": "4d64d249150338ca5600150676e2eb9be832fd34cf4ecfee37fffab3ad1526ec",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.InputTextMultiline/description",
          "source": "Draws a required nonempty-label multiline text input of the supplied size backed by maxLength bytes, rejecting invalid capacity and writing back only on change",
          "source_sha256": "305c2c8bee8ee9cf2045615e222459429d24e72d7e670ce5f75df2c59da218cf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.InputTextWithHint/description",
          "source": "Draws a required nonempty-label text input with hint backed by maxLength bytes, rejecting invalid capacity and writing value back only on change",
          "source_sha256": "7f66da7f9bd7f58088bbfc4590f6be5516b9113c7e9fe7b02f58211b0619de40",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.InvisibleButton/description",
          "source": "Submits an invisible button with a required nonempty ID, explicit size, and button flags, and returns whether it was activated",
          "source_sha256": "ef563c9531d06433cdc9e6c49c91bb147b7659196ad1271ce6a3bd944a5c55e9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.IsAnyItemActive/description",
          "source": "Returns whether any ImGui item is currently active",
          "source_sha256": "bea6950679c94c16d10bcf7ffdf0f3a7376c49011ca99b604ba79e173446ed75",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.IsAnyItemFocused/description",
          "source": "Returns whether any ImGui item currently owns keyboard focus",
          "source_sha256": "66f65b0f645bb574a2d379573b938d0fd1fdad9fc16c1e6909ba4d74460458c0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.IsAnyItemHovered/description",
          "source": "Returns whether any ImGui item is currently hovered",
          "source_sha256": "88d2a71cd975dc7bb3788928b3cffaa6af13a08dfc9624200ec0f0a066be8517",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.IsItemActivated/description",
          "source": "Returns whether the last submitted item became active this frame",
          "source_sha256": "405e6b9d07cb9fa858dfe4f368d4418236507f45f98b5e5c09e3c0a19beb3f63",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.IsItemActive/description",
          "source": "Returns whether the last submitted item is currently active",
          "source_sha256": "26d37d0cc5c3f121291eb626cdb9689278465b073a55337f158c8fe8f4da7185",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.IsItemClicked/description",
          "source": "Returns whether the last submitted item was clicked with the selected mouse button this frame",
          "source_sha256": "7118925596fe8671a9511e15e3922e1d1992ba8cad155743c0323c6a8ce4f926",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.IsItemDeactivated/description",
          "source": "Returns whether the last submitted item stopped being active this frame",
          "source_sha256": "54e6bd95dff0da2eadea17a55589230eadb903908a50e26132cfc1907b09258e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.IsItemDeactivatedAfterEdit/description",
          "source": "Returns whether the last submitted item stopped being active this frame after its value was edited",
          "source_sha256": "15c269650b30de11fc053eef95c5cccbeb258e4fb823beed47613ea9771754bf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.IsItemEdited/description",
          "source": "Returns whether the last submitted item's value was edited this frame",
          "source_sha256": "4eec0deb5b812c30f13cbdb542470b0745d17230aa45ce71f2aab07621210efb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.IsItemHovered/description",
          "source": "Returns whether the last submitted item is hovered under the supplied hover flags",
          "source_sha256": "50f60064c46e8feffd905653ec5956499f5e574e96b7a7f2f8d096ba3ad2cbbe",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.IsItemToggledOpen/description",
          "source": "Returns whether the last submitted tree node or collapsing header toggled its open state this frame",
          "source_sha256": "1119b83e9a58cbb4cb770a1ba74915ba99ba3fbcf9a569dc67d0f3201e4a2445",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.IsItemVisible/description",
          "source": "Returns whether the last submitted item overlaps the current clipping rectangle",
          "source_sha256": "ed75ee06d63e6e92e91d94e716158889bcacf3edcec2904f93ce9081bfc49d67",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.IsMouseClicked/description",
          "source": "Returns whether the selected mouse button was clicked this frame",
          "source_sha256": "0b61e7a5810eee148528b093b7778c5931963306edcbf3e130599299af9cb6f9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.IsMouseDoubleClicked/description",
          "source": "Returns whether the selected mouse button registered a double-click this frame",
          "source_sha256": "0f22f97dab01a99ea0e5749c5e3bafab2b09e91bd2ee1b8092e1365566e6b315",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.IsMouseDown/description",
          "source": "Returns whether the selected mouse button is currently held down",
          "source_sha256": "14bbd147ddea64866929ee35c223573569153b79cd71a3d4e9c02c5ceafe83ff",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.IsMouseDragging/description",
          "source": "Returns whether the selected mouse button is dragging beyond the supplied threshold, or the configured threshold when negative",
          "source_sha256": "1e630f3409da194ce8f2dd56a7d56e47f06d61a82ef548b13e10728d0182ed29",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.IsMouseHoveringRect/description",
          "source": "Returns whether the mouse is inside the supplied screen-space rectangle, optionally intersected with the current clip rectangle",
          "source_sha256": "19ab0dad4fff1592c4478c44ee5be3daa4b9f966f3d583d4ad6dc077a26ee364",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.IsMouseReleased/description",
          "source": "Returns whether the selected mouse button was released this frame",
          "source_sha256": "4bec2d6427966fe9e82ff511f784998d85d2dd6571c32fdea007bc3a0f11c70f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.IsPopupOpen/description",
          "source": "Returns whether a popup matching the required nonempty ID is open under the supplied query flags",
          "source_sha256": "f6ae555f6ae1074faa38f726d750bb7a8f50c017f2a97a913687ae4fe4801d79",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.IsRectVisible%2305fb9e94e4abfe05/description",
          "source": "Returns whether a rectangle of the supplied size at the current cursor position overlaps the current clipping rectangle",
          "source_sha256": "92e990c89fdfda0c0f6dee0a7009d77c81b1551c0fd8d6c6b9604fb7a9b955f4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.IsRectVisible%23417dc43e9e79eea8/description",
          "source": "Returns whether the supplied screen-space rectangle overlaps the current clipping rectangle",
          "source_sha256": "408414b105aa8dab2ba6f1a74986f6037990b132f31b45446f2c92b2f1c7f271",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.IsWindowAppearing/description",
          "source": "Returns whether the current window has just appeared after being hidden, inactive, or newly created",
          "source_sha256": "9ccd7e30e0dfb2eb3f6b7e5c6501c1940a10739752d4010fa9c0fedc27fb6375",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.IsWindowFocused/description",
          "source": "Returns whether the current window is focused under the supplied focus flags",
          "source_sha256": "dfdcba8a84e3932781835c12008280a08a5bb645a3fc06bedcacf3ea8fb5e472",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.IsWindowHovered/description",
          "source": "Returns whether the current window is hovered under the supplied hover flags",
          "source_sha256": "69578a4ccdad30b07c7760998289ee29ad2c5e3f33ff02263d3333ea1ec8004f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.LoadIniSettingsFromDisk/description",
          "source": "Loads ImGui window and table settings from a required nonempty filesystem path using ImGui's direct disk API",
          "source_sha256": "82bae6ddd991d23875f56f9678b1e8506d24560ce4034b5801683242c824977f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.LoadIniSettingsFromMemory/description",
          "source": "Replaces ImGui window and table settings from the exact supplied in-memory ini bytes",
          "source_sha256": "320ee2b9892bfe087b12700c22e051db1453b64f16810a154808b390b49de23d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.LogButtons/description",
          "source": "Draws ImGui's logging controls for starting and stopping supported log destinations",
          "source_sha256": "ff8482e2d17f77e7ece4e6b253bb33d7e58affaaa7ce04288051ba7dac804a62",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.LogFinish/description",
          "source": "Finishes the active ImGui logging session and flushes its destination",
          "source_sha256": "64cc7fe912eef15c585f8d20073552cc47cfb8594feefbdac6cdaa3f8cc3a76b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.LogText/description",
          "source": "Appends the supplied text verbatim to the active ImGui logging destination without rendering a widget",
          "source_sha256": "0eabc30131d6560ee99e502372f4a3393e346508a59351dc97750115fc07e4a9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.LogToClipboard/description",
          "source": "Starts automatic ImGui text logging to the clipboard with optional tree auto-open depth",
          "source_sha256": "7df221f85ceac508fb40a6805e5a5119987059b1aaac98ca1c7b42db29b49a1d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.LogToFile/description",
          "source": "Starts automatic ImGui text logging to the optional filename, or the configured default when empty, with optional tree auto-open depth",
          "source_sha256": "70d36fa29f89eff6bf76201e2a62ad3a356c27c44b7d982ceb9f553ed44751dc",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.LogToTTY/description",
          "source": "Starts automatic ImGui text logging to the terminal, optionally auto-opening tree nodes to the supplied depth",
          "source_sha256": "bd8343c18bb2002c1fbe797bcb7d7bca2ee5e2cd13b0ad01d4906ec032c58cd9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.MenuItem/description",
          "source": "Draws a required nonempty-label menu item with display-only selected state and enabled state, returning whether it was activated",
          "source_sha256": "11f66a2ebbeb7c8aeb4e6ca76d5f9ee3cfa3a8f3a982b5b62c92e495920f8612",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.NewLine/description",
          "source": "Ends the current line and advances the layout cursor to a new line",
          "source_sha256": "406daa90361a07bdcfc4fcba7174fdb0a8af8604844890afbc2cdb48721ad20b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.OpenPopup/description",
          "source": "Marks a popup with the required nonempty ID to open on the next matching BeginPopup call",
          "source_sha256": "62276aab35e9251f737f7ec4ceeceb1ef7921f8ab52eb37ff04dfefd2b5deaff",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.OpenPopupOnItemClick/description",
          "source": "Opens a context popup when the last item is clicked under the supplied flags, using the last item's ID when strId is empty",
          "source_sha256": "56111964a896755b4c2bda6086c2e486289b76c89dd8d55a0e79d856fb0a3b64",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.PlotHistogram/description",
          "source": "Draws a required nonempty-label histogram over the supplied values with offset, optional overlay, scale bounds, and graph size",
          "source_sha256": "14112a2128bea09dde383097402483e9f94b554df5bdf882c3380474b0b5904b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.PlotLines/description",
          "source": "Draws a required nonempty-label line plot over the supplied values with offset, optional overlay, scale bounds, and graph size",
          "source_sha256": "aadaedc73a60fb8d6505bd17693189cd55f5bcbecf639e33b6b53d071b611df7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.PopID/description",
          "source": "Pops the most recently pushed component from the ImGui ID stack",
          "source_sha256": "33b57a11a8f97af880ef850550352065d40a628809528b7d4b58542f482fa9af",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.PopItemWidth/description",
          "source": "Restores the previous default item width",
          "source_sha256": "c50355a6222ef4fd17a4b923eecf080267be639d21874c606171d9290d278c46",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.PopStyleColor/description",
          "source": "Pops count entries from the ImGui style-color stack",
          "source_sha256": "2037482ba14fffe924a4aa243778251433a56b5d98b3d626fe88a617a5b57104",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.PopStyleVar/description",
          "source": "Pops count entries from the ImGui style-variable stack",
          "source_sha256": "7420521a40387f889b855e044a43b22928aa64b813ef1841b2463fcb5c02b8c0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.PopTextWrapPos/description",
          "source": "Restores the previous text-wrapping position",
          "source_sha256": "41f7275c4f7eb8d355ceb040bc0e3f3330abcbb8e95a6f2499ec7e57b67df799",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.ProgressBar%23815e8744ccf75287/description",
          "source": "Draws a progress bar using fraction as the completion ratio and ImGui's default size and overlay",
          "source_sha256": "206289f985fa7c7f235f4bcf59eb3c875ea85bad6d432e70d6be00eb71e2122d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.ProgressBar%23f96f13b84ae54c68/description",
          "source": "Draws a progress bar with the supplied completion ratio and size, using an explicit overlay or ImGui's percentage text when empty",
          "source_sha256": "65d26192dfac6c4d096136e1b333ba802376d48daf146bf1d2863e08782ca8db",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.PushID%23a0aa657cec446999/description",
          "source": "Pushes a required nonempty string component onto the ImGui ID stack",
          "source_sha256": "bab9b72ec2577935518a929e72b0f5d8e9eecddf54ad7e565a8ef8bda2567020",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.PushID%23e81ac04f2708cf59/description",
          "source": "Pushes an integer component onto the ImGui ID stack",
          "source_sha256": "c6219385caaf008ad9840de29ac8c2fbb66a5295eadcf45a34ae7b094ada8f95",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.PushItemWidth/description",
          "source": "Pushes a default width for subsequent items; restore it with PopItemWidth",
          "source_sha256": "8f50c6ff4d687277fa6914f90aa4bf1242dd94b9a2cbc4efcb210f82f871295f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.PushStyleColor/description",
          "source": "Pushes an RGBA override for the selected ImGui style color; restore it with PopStyleColor",
          "source_sha256": "e5ac6b0e5edad408b17846b186e5f204eb4dbe45198ee01b75262b88dcbad44f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.PushStyleVar/description",
          "source": "Pushes a scalar override for a scalar-valued ImGui style variable; restore it with PopStyleVar",
          "source_sha256": "8ece02b736c4942b489316088afc8c844d6f3ebee178284bb8c3be638ab08759",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.PushStyleVarVec2/description",
          "source": "Pushes a two-component override for a vector-valued ImGui style variable; restore it with PopStyleVar",
          "source_sha256": "ddf6e7f5a907939d42834aa2cd4baa3355bca22dd83fc2b78474f3a1dfbbfc72",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.PushTextWrapPos/description",
          "source": "Pushes a local X coordinate at which subsequent text wraps; zero uses the content-region boundary",
          "source_sha256": "7c566f154e28b036d4338d61a746a42ec8fee46ef3d8572590961e176a9d38e1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.RadioButton%2391a4f0c54483dccb/description",
          "source": "Draws a required nonempty-label radio button, assigns buttonValue to value when activated, and returns whether the assignment occurred",
          "source_sha256": "20e12a9d7b5fb85ae9824e712da236de12f19756409a635015197d813ac829e6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.RadioButton%23d8d7646ac97bdd7b/description",
          "source": "Draws a required nonempty-label radio button using active as display state and returns whether it was activated; active is not written back",
          "source_sha256": "2382134c2eef5664a0e1c84341231d52484ea5423091ae3089f0c719a5f14ba8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.ResetMouseDragDelta/description",
          "source": "Resets the accumulated drag origin for the selected mouse button to the current mouse position",
          "source_sha256": "24d55360b3913e69c2b56afbc303934090d7db203d2c2115539501d8f346e854",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.SameLine/description",
          "source": "Places the next item on the current line with optional start offset and spacing overrides",
          "source_sha256": "52d9ef29fb5320db8d6ee6ac13093e3826a2db2197946fc3ce2f13a35aa1bfe6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.SaveIniSettingsToDisk/description",
          "source": "Saves current ImGui window and table settings to a required nonempty filesystem path using ImGui's direct disk API",
          "source_sha256": "6a7a8ac260e50af620a4c4c54fcfc2b9aa5db1c4eaef97ba340957f80c733e0d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.SaveIniSettingsToMemory/description",
          "source": "Serializes current ImGui window and table settings to a string, or returns an empty string when ImGui supplies no buffer",
          "source_sha256": "20ae465c94c10d13b148004ff331733892e7e48874b3e5dd36a3e8c014651854",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.Selectable/description",
          "source": "Draws a required nonempty-label selectable using selected as display state and returns whether it was activated; selected is not written back",
          "source_sha256": "6e5308b29b52b0b15f1e31e31fb7c1ca6f5ac1ac192ffcd7c9a80cf1dbe546e2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.Separator/description",
          "source": "Draws a separator appropriate to the current horizontal or vertical layout context",
          "source_sha256": "3f572436789bfe18a00c36bdd76ddff6155e94cf61d5963bff18944a4d9dfc1d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.SeparatorText/description",
          "source": "Draws a separator carrying a required nonempty label",
          "source_sha256": "29cc0ede2702459c5f3349b4395da60f006d5d3c4186427e2e98597e58699b40",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.SetClipboardText/description",
          "source": "Replaces text in ImGui's platform clipboard backend",
          "source_sha256": "ab3948789f60018981f8bc829696ff714a7bbb1ed3989e235d90f31ce5269287",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.SetColorEditOptions/description",
          "source": "Sets default display, data-type, picker, and input options for subsequent color editors and pickers",
          "source_sha256": "e2933125626a220821961c2ea11e1789c272156fdb7f86948c1f46cfc284f457",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.SetCursorPos/description",
          "source": "Sets the current cursor position in window-local coordinates",
          "source_sha256": "4bff5f4036a486998553d0483c3994e4e87cf6e20e73490290fac716aa9a018f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.SetCursorScreenPos/description",
          "source": "Sets the current cursor position in screen coordinates",
          "source_sha256": "6f0e3ec59000173ecb10cd2cfab6a05e9d8fb714334abf5c6f54a2a9543867c6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.SetItemDefaultFocus/description",
          "source": "Gives the last submitted item default focus when its appearing window has no restored focus state",
          "source_sha256": "6651dda89f747e6d8284333a0e8bd7f002d26b883d9af9eb50b61a7bc15d03a3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.SetItemTooltip/description",
          "source": "Shows a text tooltip for the last item when ImGui's item-tooltip hover policy is satisfied",
          "source_sha256": "fea2dece5f7bcc88cf46a6893065fb010dc098016909c6cf7ecad12e76fbf6f5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.SetKeyboardFocusHere/description",
          "source": "Requests keyboard focus for a focusable item at the supplied offset relative to the next submitted item",
          "source_sha256": "6791c80c42ec211c836214a0c858f8ef861df665697b5f120be87efd4d28b02d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.SetNextItemOpen/description",
          "source": "Sets the next tree node or collapsing header's open state subject to the supplied ImGui condition",
          "source_sha256": "b5357b5dacc0d17876d098ba3915f4c427613076a4a0616875f5a81be90bb791",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.SetNextItemWidth/description",
          "source": "Overrides the width of the next submitted item",
          "source_sha256": "1d15d61aa13dde39a1600e419b7d47f708bcc54d5a2c0d556de9305d6f1bbd9e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.SetNextWindowBgAlpha/description",
          "source": "Overrides the background alpha of the next window",
          "source_sha256": "d5adaf2492ff0455bb73e774053de3b6539e24daba05a290d813336ca007df0f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.SetNextWindowCollapsed/description",
          "source": "Sets whether the next window is collapsed subject to the supplied ImGui condition",
          "source_sha256": "8b5f44fdd405bffb9fcf243c6d340105604d943f9a59f007f6007630838a24b0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.SetNextWindowContentSize/description",
          "source": "Sets the explicit content size of the next window, controlling its scrollable extent independently of the window size",
          "source_sha256": "6ccf2a9a6e4845df80cd48881f7fd8c00b09b943d506de4eb85d8c3523851f0c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.SetNextWindowFocus/description",
          "source": "Requests focus for the next window begun in the current frame",
          "source_sha256": "c0b2fcf269890255b258d144f6536f049ce5bfbab9bad76013cdafc1312d09f4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.SetNextWindowPos/description",
          "source": "Sets the next window's screen position subject to the supplied ImGui condition",
          "source_sha256": "3eaf752d60913375b5338ed7ddd41a49e2250fcc9f97aaa5fb69dd977d1db2f4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.SetNextWindowScroll/description",
          "source": "Sets the next window's initial scroll coordinates; negative components leave the corresponding axis unchanged",
          "source_sha256": "dcb44036f90bc4a5475d94a1a0ae78ce1d27eabaf0b237fd29cafda612137ba5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.SetNextWindowSize/description",
          "source": "Sets the next window's size subject to the supplied ImGui condition",
          "source_sha256": "af748ef747eebd2085f99eeae5c8e452fc44eed2e8900328a76a58bf6d43f3e3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.SetNextWindowSizeConstraints/description",
          "source": "Constrains the next window's size between the supplied minimum and maximum dimensions",
          "source_sha256": "626a14f05055a416656cb226006601dde59fe9209718747be23f169f11246bff",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.SetScrollFromPosX/description",
          "source": "Adjusts horizontal scrolling so a local X position appears at the requested viewport ratio",
          "source_sha256": "c56b223fe516a48d69182659e935639aa7376916429d1fe7e50b837613b8a9aa",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.SetScrollFromPosY/description",
          "source": "Adjusts vertical scrolling so a local Y position appears at the requested viewport ratio",
          "source_sha256": "ffdbbcf014f54e3cfd54d1527e165535de41d5455bfd0cf1f2a02d435840183d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.SetScrollHereX/description",
          "source": "Adjusts horizontal scrolling so the current cursor position appears at the requested viewport ratio",
          "source_sha256": "23e432e0181dc4652e21dd08473f69440cbb01bec8c5341e0fdfbbe6565849da",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.SetScrollHereY/description",
          "source": "Adjusts vertical scrolling so the current cursor position appears at the requested viewport ratio",
          "source_sha256": "dceac32eb8d5a76f891eb559125a140b879747a8dcf16210a86798f010f1da8f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.SetScrollX/description",
          "source": "Sets the current window's horizontal scroll offset",
          "source_sha256": "38a0dd9f3c9c3e9a52d954262c66cc415a9e710ac3a10a76202666fb3167baf6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.SetScrollY/description",
          "source": "Sets the current window's vertical scroll offset",
          "source_sha256": "e6974cd6bfa1ad9ba5e1f7f2b40a69167d32f91dc84523c6ac052a27034d51a4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.SetTabItemClosed/description",
          "source": "Notifies ImGui that a required nonempty-label tab was closed externally so its tab-bar state can be updated",
          "source_sha256": "8707f6d8836d939a181d6b0652ed7041a6c3cc62eda80025e8b2e4ea8e6fdd42",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.SetTooltip/description",
          "source": "Immediately renders a tooltip containing the supplied text verbatim",
          "source_sha256": "f4480cdadc34bfa952959bfa314e3fb8983bea23e84dcb0c62aa2081e600997b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.SliderFloat/description",
          "source": "Draws a required nonempty-label bounded float slider, updates value, and returns whether it changed",
          "source_sha256": "1f681666e4c6594c75aba08cb7756770b99713fd58430a30efaee52796e19e4b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.SliderFloat2/description",
          "source": "Draws a required nonempty-label two-component bounded float slider and writes both components back only when they change",
          "source_sha256": "210d595a60e5a3fe6b90e988b24f0609fb7fe40afcd58564102db1f3f4fd43d0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.SliderFloat3/description",
          "source": "Draws a required nonempty-label three-component bounded float slider and writes all components back only when they change",
          "source_sha256": "656ddb6f91dea73f2d8ca67f72c2fd65cb8ec56817b7171bd0fd65c0ee9e111c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.SliderFloat4/description",
          "source": "Draws a required nonempty-label four-component bounded float slider and writes all components back only when they change",
          "source_sha256": "1c4899ecba03fdc949a853322543e81da414ad4afb2908566abff88bca6d93b4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.SliderInt/description",
          "source": "Draws a required nonempty-label bounded integer slider with the supplied flags, updates value, and reports changes",
          "source_sha256": "d12c238962e43a3a5bd427efef6655af9da89d21efa7fa8d5b394a957f6b780b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.SliderInt2/description",
          "source": "Draws a required nonempty-label two-component bounded integer slider and writes both components back only when they change",
          "source_sha256": "542191105b9a7de7ce63a4a97ca30817fca1d43b384100315836d06f0798bb36",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.SliderInt3/description",
          "source": "Draws a required nonempty-label three-component bounded integer slider and writes all components back only when they change",
          "source_sha256": "cac058c90d61b84051c0f0637dbce5f35b070ca2aa3a66c659651bc63dc2accb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.SliderInt4/description",
          "source": "Draws a required nonempty-label four-component bounded integer slider and writes all components back only when they change",
          "source_sha256": "9fc913941bd2ee1b80ed1021582de421dc72c05c89ba5529bdd1c9ba0f61e481",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.SmallButton/description",
          "source": "Draws a required nonempty-label button without standard frame padding and returns whether it was activated",
          "source_sha256": "e858b3499516462c886effcacf3390257a741a475c7e6fa32cf44b45adb429f2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.Spacing/description",
          "source": "Adds one standard vertical spacing unit to the current layout",
          "source_sha256": "3801bee4127f4e25260a6d7f3d0cc6252b16a620b40803bd702abb5308a05b35",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.TabItemButton/description",
          "source": "Draws a required nonempty-label tab-bar button and returns whether it was activated; it does not create a tab contents scope",
          "source_sha256": "fa8a541802be3b33cb6126545f9187b29ed52a4bb7ab84fb05bb2fafdd7ea9db",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.TableAngledHeadersRow/description",
          "source": "Emits an angled-header row for columns configured with angled-header flags",
          "source_sha256": "f24d50d0e038852352de549a24b591063afe7faaa55e88776f45e6f47963d253",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.TableGetColumnCount/description",
          "source": "Returns the current table's column count, or zero outside a table",
          "source_sha256": "b513e544d126d93c72f8173e2e1c3bda0786f4ab5a7521950113a683c303a1f3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.TableGetColumnFlags/description",
          "source": "Returns the requested table column's current status flags, using the current column when columnN is negative",
          "source_sha256": "20cef99e94fcf406b06f16b582ebd0d3922fa24cae0afae76bd88650627848c9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.TableGetColumnIndex/description",
          "source": "Returns the current table column index, or -1 before selecting a column or outside a table",
          "source_sha256": "6bce24905b854e2f364c6243ab47a93a21db5bcf1e333274359877409fcb2d4a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.TableGetColumnName/description",
          "source": "Returns the requested table column's configured name, using the current column when columnN is negative",
          "source_sha256": "70c6d275dff71a7c0660a27a1ff4467c89f99109cb58a1f9d1271dd75c5a3353",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.TableGetHoveredColumn/description",
          "source": "Returns the hovered table column index, with ImGui sentinel values for none or unused trailing space",
          "source_sha256": "1c474b547477e392de127c7b02b782ddde36f53ba898744d04873af9adf9504f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.TableGetRowIndex/description",
          "source": "Returns the current table row index, or -1 before starting a row or outside a table",
          "source_sha256": "cbdf52c71a5a47e33cfb7028dc5c2d22120dac1d2db962b59f46310badfa1350",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.TableHeader/description",
          "source": "Emits a required nonempty-label header cell for the current table column",
          "source_sha256": "9c41c46f04e0c1de984cf1762e78085957096cb85be76c898194027c98514199",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.TableHeadersRow/description",
          "source": "Emits one table header row from columns configured by TableSetupColumn",
          "source_sha256": "f8ac4d688de74f92a4adc620d2a7ce018a8af273ca77765e278ca94640b0b8cf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.TableNextColumn/description",
          "source": "Advances to the next table column, creating a row when needed, and returns whether the destination column is visible",
          "source_sha256": "f92ef164c83986b49f5bc492b3e1256bb743cb881064cce9dc38595911be1123",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.TableNextRow/description",
          "source": "Advances the current table to a new row using the supplied row flags",
          "source_sha256": "c330c4904d43107cbe87924ac248493aa5b16335d4cc8462adbd819b343f84e6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.TableSetBgColor/description",
          "source": "Overrides a table row or cell background target with the supplied packed color, using the current column when columnN is negative",
          "source_sha256": "095036d42f5c8237a83e23e1b4c37046eaaa2bbfbf1ff4d953834b397fad12ad",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.TableSetColumnEnabled/description",
          "source": "Enables or disables a table column by zero-based index",
          "source_sha256": "fcd6e2d8257c474b476dded8abee631522a236a745a8658c6b58705ae3268a17",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.TableSetColumnIndex/description",
          "source": "Selects a table column by zero-based index and returns whether that column is visible",
          "source_sha256": "05c559f15847ea42973d368bc29ec120166767f08173568181be83a3b0f02869",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.TableSetupColumn/description",
          "source": "Configures the next table column with a required nonempty label and column flags before the first row is submitted",
          "source_sha256": "e6c233fd7db2fbb007c861df4aba21ae23edf72eafe3d50471fd3e52219825fb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.TableSetupScrollFreeze/description",
          "source": "Freezes the requested leading table columns and rows when the table scrolls",
          "source_sha256": "48082232b33835c941eb1ed200d36a440da4e9c44741f26bcbad8a0b8be77aa6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.Text/description",
          "source": "Renders text verbatim without interpreting it as a printf-style format string",
          "source_sha256": "4a9b69e3ab9f482ac6416f52ba2bf35f338a1345cc72426122126360c5ec9179",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.TextColored/description",
          "source": "Renders the supplied text with an explicit RGBA color",
          "source_sha256": "876b11ed2b552977dd8bd0fe36538f87ec09fc93d385760d58df07f476b0f944",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.TextDisabled/description",
          "source": "Renders text using ImGui's disabled-text style",
          "source_sha256": "6ce0d21b28af2af86cf3e87c6ae662480edea96ac4d05cd99814e9141daaffbe",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.TextLink/description",
          "source": "Draws a required nonempty-label text link and returns whether it was activated without opening a URL itself",
          "source_sha256": "4b362892ac383931dcf26b1c8c5c9af09c46faa36759fff913705c353aa822e0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.TextLinkOpenURL%236af05af1a530865a/description",
          "source": "Draws a required nonempty-label link, asks ImGui's platform URL handler to open the required URL when activated, and reports activation",
          "source_sha256": "2393d1bd0940247fc359860e67947a6515923826a0d3c790581cabf9de8b1312",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.TextLinkOpenURL%23b52d43bc02aa8901/description",
          "source": "Draws a required nonempty-label link, asks ImGui's platform URL handler to open the label when activated, and reports activation",
          "source_sha256": "3711e2437fdb4eea29f86103b6637dc0fedace976809ffb7b2a3b84e7b822d06",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.TextWrapped/description",
          "source": "Renders text with wrapping at the current content-region boundary",
          "source_sha256": "e05f065e86bf0d00edbb6d7c55c27d53b68d17740a5c3a2cb9fc6c1b3c489e67",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.TreeNode/description",
          "source": "Draws a required nonempty-label tree node and returns whether it is open; call TreePop only when true",
          "source_sha256": "1cb8296a1839f40069ac9f6a3c579b28be03eb6976d5a1c24538fdb63e61d036",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.TreeNodeEx/description",
          "source": "Draws a required nonempty-label tree node with explicit flags and returns whether it is open; call TreePop only when true unless NoTreePushOnOpen is set",
          "source_sha256": "47d63cbfea5868ebf7e4adef0d3cbfb6b6897e233e1421f27eb0daa5d575c877",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.TreePop/description",
          "source": "Pops the tree scope pushed by an open TreeNode or TreeNodeEx call",
          "source_sha256": "f496c3dcfbb980bb4d3e62428af13a34fdba28c1fdb86d4494cd29161fc0adc5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.Unindent/description",
          "source": "Decreases the current line's horizontal indentation by the supplied amount or the style default when zero",
          "source_sha256": "1bfebabe524fc754f053fa78120088dba3df3ace6da18e2ae831b4eba1bdca38",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.VSliderFloat/description",
          "source": "Draws a required nonempty-label vertical float slider of the supplied size and bounds, updates value, and reports changes",
          "source_sha256": "64150b8f3e895198059c94cd1cd72fec05dc56584a126b2da2aebcd3ae41c9de",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.VSliderInt/description",
          "source": "Draws a required nonempty-label vertical integer slider of the supplied size and bounds, updates value, and reports changes",
          "source_sha256": "0010768be59a61ce0e6269e5a0a0d04397b12f623bad83f037a3decd4695dd5c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.Value%23031100c2fda9013e/description",
          "source": "Renders a boolean value after a required nonempty prefix using ImGui's standard value formatting",
          "source_sha256": "4b078a67503022a77cccf4b5011d79517c0f443ff4bf8ce83501edf3f7642803",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.Value%2311dff794976df969/description",
          "source": "Renders a signed integer value after a required nonempty prefix using ImGui's standard value formatting",
          "source_sha256": "53efd3bdf941817da32233f6f2423a72930e59c9b62cb7e3a1969b0e470fac71",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.Value%2369d025366813cd9a/description",
          "source": "Renders an unsigned integer value after a required nonempty prefix using ImGui's standard value formatting",
          "source_sha256": "b339e53d4a6aa9612af131f144b07af945d632e800666b634e1877d3d9951fed",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.common.ImGui.Value%2390152b1c9fa83617/description",
          "source": "Renders a float value after a required nonempty prefix using ImGui's standard value formatting",
          "source_sha256": "d67e0b855b412ad3ec9c1c7444302b7c18a522a78a853b0a3bdcf5f580924904",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.AddCritter%237053965abb306d1b/description",
          "source": "Creates a critter from the supplied prototype id on a valid hex of the currently shown Mapper map and returns its editable client view",
          "source_sha256": "fcce77c377498a3088d85ff63cbb7f282a4a33f97e7f3258cd960f821e70b378",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.AddCritter%23fa5e6a45b39828c0/description",
          "source": "Creates a critter from the supplied prototype on a valid hex of the currently shown Mapper map and returns its editable client view",
          "source_sha256": "ef6719a256e9ce3e953b8349c770edf623164fc380d0edda7d2464ef9c69c3ee",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.AddItem%23659cb03d0e702e66/description",
          "source": "Creates an item from the supplied prototype on a valid hex of the currently shown Mapper map and returns its editable client view",
          "source_sha256": "2a46459901caba2b6a4399d2259dfe6cfbdc5916006bcd121f51f5e9b4e06fe2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.AddItem%23f08c1b76d0bf34c1/description",
          "source": "Creates an item from the supplied prototype id on a valid hex of the currently shown Mapper map",
          "source_sha256": "b87cf9e940ade02090b9248005e21d6535de04a0056fafb14acd414fb0c4b022",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.AddMapperIgnoredItemPids/description",
          "source": "Adds item prototype ids to the current map's Mapper ignore set and rebuilds the map view so the filtering takes effect",
          "source_sha256": "2a9f9def0537506019171ac62986f9f8d8a757519363f432602000a1481d66b2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.AddMessage/description",
          "source": "Appends a message to the Mapper's on-screen message log",
          "source_sha256": "729241ed86f234a8f680a394a631fd7922d2aae4fe32760ed1d0d2361ef0c2a8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.AddTile/description",
          "source": "Adds an editable floor or roof tile of a known item prototype to a valid current-map hex, clamping its layer to the supported zero-through-four range",
          "source_sha256": "53f7e1f6d31b7533d62a0d233e125b9028012cffe41427a8b9ff64e4b1ccb726",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.CalcMapperFitZoom/description",
          "source": "Calculates the smaller horizontal or vertical zoom needed to fit the configured playable area, or the full map bounds, inside a positive viewport",
          "source_sha256": "59827a53585e268ea3032ad05a46e5aac3ac80f3bc25b1552f5e004966059efb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.CenterMapperOnHex/description",
          "source": "Centers and rebuilds the current Mapper view on a valid in-map hex; an invalid hex or missing current map throws",
          "source_sha256": "ac82678a21e2c5f98bff79215ca2f828bb4fe0e8e6ce80e9548b9dd479e0232a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.CenterMapperOnPlayableArea/description",
          "source": "Centers and rebuilds the Mapper view on the configured axial playable area, including off-map coordinates, or on the map dimensions when no area is configured",
          "source_sha256": "9d9fddddff017ffa335bbeaea6d600a5d8e937c0eb82a2cc8a9dc815e8a9caaf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.CenterMapperOnRawHex/description",
          "source": "Centers and rebuilds the current Mapper view on an unclamped raw hex coordinate, allowing authored playable areas outside the map rectangle",
          "source_sha256": "e24ecd72cfd15e4481283ef8472865768d650fcad1b4d3a8e1da663e5670b466",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.DeleteEntities/description",
          "source": "Deletes each non-null, non-destroyed editable entity in the supplied collection and skips unusable entries",
          "source_sha256": "53f6ee166c8bbce6556dc4fac2a517b3827219c988ab62050d0d1423965066fd",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.DeleteEntity/description",
          "source": "Deletes one editable entity through the Mapper's normal deletion path",
          "source_sha256": "104f937d8b26f7723866fe885b2d13585c28d535d171e918d39712cf7b374f6e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.FindEntityById/description",
          "source": "Finds an editable entity by runtime id on the currently shown Mapper map, or returns null when it is absent",
          "source_sha256": "fa51f6a39efcaaaf8d2a3eb01da37476a4518b556c6de3ac6962fd7478e52441",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.GetCritterOnHex/description",
          "source": "Returns the first critter on a hex that passes the requested find-type filter, or null when none match",
          "source_sha256": "5b3cd45353c351f088ffaf034b862d358c084d9d6d798ff02a6e980f2fb382e1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.GetCrittersOnHex/description",
          "source": "Returns all critters on a hex of the current Mapper map that pass the requested find-type filter",
          "source_sha256": "2f1bc70251b79bec36a174b0c147a0455d2efa4b078e66aba2c8d55a1bfaf797",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.GetCurMapHexSize/description",
          "source": "Returns the current Mapper map's dimensions in hex cells; throws when no map is shown",
          "source_sha256": "0caa31c77d7660d6b1b47ec16fae99d6b666df50ad815e522756c1d7fa322df9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.GetCurMapPixelSize/description",
          "source": "Returns the current Mapper map's full hex-grid bounding size in pixels; throws when no map is shown",
          "source_sha256": "7b1653b85e50dbdcb6317eaa069e7304d4904c006cd3b7c5e90b711ce5f2c4eb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.GetItemOnHex/description",
          "source": "Returns the current Mapper map's single-item lookup result for a hex, or null when no item is selected there",
          "source_sha256": "3da7b47a8f5bc5385674ae0c5fb8355282701638510c005f86d818c8e4e1c5a3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.GetItemsOnHex/description",
          "source": "Returns all editable item views occupying a hex on the currently shown Mapper map",
          "source_sha256": "09634a3dcdf632e3e21d79df8c8c893d50feaa585c848e7c44cabce787e2e83a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.GetLoadedMaps/description",
          "source": "Returns all loaded Mapper maps in load order and writes the current map's index, or -1 when no returned map is current",
          "source_sha256": "6d1842bc41a33104afe3361175dd3beae86de91be6690cc3acd066f2c5073e02",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.GetMapFileNames/description",
          "source": "Enumerates declared map names from prototype files under a Mapper maps directory, optionally descending recursively",
          "source_sha256": "4952edd4d388ee5639b30e08770dd3c5c5a25c34ddb4ea059d9ae7260ca1369d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.GetMapperScrollBorderHexes/description",
          "source": "Returns drawable in-map hexes lying on the configured axial scroll-area border, or an empty array when no map or border is available",
          "source_sha256": "d72d5d7f008a64b9e7b085bf4fb96ecb5b055d9dbfee4edaac96aac9dfff904d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.GetMapperTrackOverlayHexes/description",
          "source": "Returns the hex sequence currently exposed by the Mapper track overlay",
          "source_sha256": "d6cb878d5b45cb010c2e903aa2111105e0950a1f728efe86332d193c669b662e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.GetMapperTrackOverlayKinds/description",
          "source": "Returns the per-entry kind values aligned with the Mapper track overlay hex sequence",
          "source_sha256": "ac96a8c22a87c9062d52f7842d5aafe6949115279fea0d33e9b639276bf155cd",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.GetSelectedEntities/description",
          "source": "Returns a snapshot of all entities in the Mapper's current selection order",
          "source_sha256": "9e0d36a8fa9fa35455fc2b157fbee3506f9e96d7ab3828d3f38add8e88173fa5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.GetSelectedEntity/description",
          "source": "Returns the first selected Mapper entity, or null when the selection is empty",
          "source_sha256": "0070cdb67ac1494cdff6b264e02a3ca022780d465de145cb0f4cf3d64aba4a35",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.GetVisibleMapLayers/description",
          "source": "Returns the map layers currently visible in the Mapper viewport",
          "source_sha256": "f5bf58a32a924503bfdbdf8097a9b67bfb1992a7442a1f771154ead14e3d3976",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.IsMapperHexOverlayVisible/description",
          "source": "Returns whether the Mapper-wide hex overlay is visible",
          "source_sha256": "f667c86bf1cfadfaad9d1e57afff3c97a2a2d1906db7f6f325c95d94006ff052",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.IsMapperOverlayVisible/description",
          "source": "Returns whether the current map's general Mapper overlay is visible, or false when no map is shown",
          "source_sha256": "cdb959d4d136440ca6f68e7c245898a4edb62d50c763c26cb9d25f9f3572ba19",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.LoadMap/description",
          "source": "Loads a map from the Mapper file system by file name and returns its view, or null when loading fails",
          "source_sha256": "febde10bba5b9a59de29c15f9a45bff7fa72d68f960e9ce12656c1ab403c9ad7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.MoveEntity/description",
          "source": "Moves a non-null editable entity to a valid hex of the current Mapper map; a null entity is ignored",
          "source_sha256": "89bd1c338c98913ebdded2a608b1f2b258d758e1f0d4057138b4d3c34e1f7b37",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.NewMap/description",
          "source": "Creates and loads a minimal named map with dimensions clamped to Engine limits and its work hex at the center; an empty name throws",
          "source_sha256": "398b46f7aa42783346de9e8ddd7d9e664fddc9d3d808198910831e8a92010a68",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.NewMapFromText/description",
          "source": "Loads a named map from authored text that contains a ProtoMap section; an empty name or missing section throws, while parse failure may return null",
          "source_sha256": "4e524e9e8eec5ee35c38b522f5d6b25d327edca4ed35308ff991efa51519a5f8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.ResizeMap/description",
          "source": "Resizes the currently shown Mapper map to the requested dimensions through the editor's normal resize operation",
          "source_sha256": "8d4da3ea1ab2ccb54895739b45fb48d6f99116e0b0f693f57e4a1440c3f036cd",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.SaveMap/description",
          "source": "Saves the supplied Mapper map using an optional custom name through the normal map-save path",
          "source_sha256": "509eb34e727cb4a950af8e36902f1899ee31bd6483a67b33c81274b0af04e3a5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.SaveMapToPath/description",
          "source": "Saves a map beneath the Mapper maps root using a subdirectory and separator-free name; empty names and parent traversal are rejected",
          "source_sha256": "836607831bb088a04886cb75100508397a317161494327a8058816f942c2664c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.SaveMapperScreenshot/description",
          "source": "Saves the current map rendering as PNG to a nonempty file path using the Mapper's map-only screenshot path",
          "source_sha256": "7640a65faec1e89e8e1014864ee9b12893696447d700df6824c7e33a1b5340bb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.SelectEntities/description",
          "source": "Adds or removes every non-null entity in the supplied collection from the Mapper selection according to set",
          "source_sha256": "c1937c271464384bb0eb7ae04086e556660934eb81f0b463ea51e22055cb142e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.SelectEntity/description",
          "source": "Adds one editable entity to the Mapper selection when set is true, or removes it when false",
          "source_sha256": "02873ec42d6e4b0f20a1ccaa120b23983cf6616187be7990970d01d647085ec4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.SetEntityProperty/description",
          "source": "Parses and applies a named property value to an editable entity, returning whether Mapper accepted the text; an unknown property name throws",
          "source_sha256": "bc15170fe62f68f24e10f6c491c9bd065eaafb3b16f479672b439da27295a8cf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.SetMapperHexOverlayVisible/description",
          "source": "Shows or hides the Mapper-wide hex overlay",
          "source_sha256": "0fbb49a8f30b6f668d41491fed182e08653248af36d3ce01e0a3f5c543d54321",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.SetMapperHiddenSpritesVisible/description",
          "source": "Shows or hides sprites marked as hidden on the currently displayed Mapper map",
          "source_sha256": "bc22d481a0a2f525dcd1448e500f5593516f5212fb025e7c3e0597067c5be96e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.SetMapperOverlayVisible/description",
          "source": "Shows or hides the general Mapper overlay on the currently displayed map",
          "source_sha256": "acfa1462bd9b40058a62104255ebedd0514f0f8d8055224a6669d8788fc9778c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.SetMapperScrollCheckEnabled/description",
          "source": "Enables or disables scroll checking on the current Mapper map and rebuilds its view",
          "source_sha256": "1ca31415d844c65f841c5fb119cac14fcc515726ca81188195ca3ebc7e787395",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.SetMapperViewSize/description",
          "source": "Sets a positive rendering viewport size on the currently shown Mapper map; nonpositive dimensions or a missing map throw",
          "source_sha256": "5bf58e29a1ffc9b461a068b344f45cbd6530d8db46d2436ec837b9e996851a3d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.SetMapperZoom/description",
          "source": "Applies a positive zoom immediately to the current Mapper map and updates its zoom target; nonpositive values or a missing map throw",
          "source_sha256": "5fae536035a8e225189068b9b52c247e9373adc47dba0b9fd348e976a3d8ac03",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.SetMouseScroll/description",
          "source": "Configures whether edge-driven mouse scrolling is enabled in fullscreen and windowed Mapper modes",
          "source_sha256": "251f1938e88e68883eac09d1abdcd9e12145da789396bb2dd443685319ea522e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.SetVisibleMapLayers/description",
          "source": "Replaces the map layers visible in the Mapper viewport and applies the visibility state",
          "source_sha256": "c2c3b23a59aeffd005c2fc362f3091b10998a02425253de20df53a6cccf72774",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.ShowMap/description",
          "source": "Makes the supplied loaded map the map currently shown by the Mapper",
          "source_sha256": "35736580af13347a0ba580bd65e08d9b1e92f01b815837c2fccd7762084cfe08",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.TabDelete/description",
          "source": "Clears a valid Mapper content tab, recreates its empty aggregate default subtab, and makes that subtab active",
          "source_sha256": "344bab545b086f60c403e48c328bb98ebee07c6dfe432ffd888db203ee9f6248",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.TabGetCritterPids/description",
          "source": "Returns critter prototype ids from a valid Mapper tab and named subtab, using the aggregate default subtab when the name is empty; an unknown named subtab returns an empty array",
          "source_sha256": "e438e14dcfb77d9a3c6d1ef08f8a03f59e0766199a7f8a99ef5d055386b8c2c8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.TabGetItemPids/description",
          "source": "Returns item prototype ids from a valid Mapper tab and named subtab, using the aggregate default subtab when the name is empty; an unknown named subtab returns an empty array",
          "source_sha256": "54f4701f2e8f1d20ed0ab9c5d50b4076642e9116c0cf7b06a120653e973f763f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.TabSelect/description",
          "source": "Optionally shows a valid Mapper panel mode and selects an existing named or default content subtab when that mode owns content tabs",
          "source_sha256": "bce89ac624f19aa527411f4a937db33e868948eee5c35508d8a026fe9d5fed51",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.TabSetCritterPids/description",
          "source": "Replaces a custom Mapper subtab's critter prototypes, or deletes that subtab for an empty list, then rebuilds the aggregate default list and active prototype palette; unknown ids throw",
          "source_sha256": "b6c3d8b11439d815dba6c18eaebe87802e453ff8f7134800ceaa7699f5c85b1f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.TabSetItemPids/description",
          "source": "Replaces a custom Mapper subtab's known item prototypes, or deletes that subtab for an empty list, then rebuilds the aggregate default list and active prototype palette",
          "source_sha256": "d08e753469bb6d19233e17ceea0e338476d85bdac254fd5937f8564a46f82821",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.TabSetName/description",
          "source": "Replaces the display name of a valid Mapper panel mode",
          "source_sha256": "bc4dfb0e0a2ea70a2df4bc31d41f77a7240089cbef7b715bc428dbf626e34673",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.mapper.Game.UnloadMap/description",
          "source": "Unloads the supplied map view from the Mapper",
          "source_sha256": "074b7247d3dcc9f471c83f025ec21ce0cb83043ff884297f8b3a7841c0bbcc8e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.Action/description",
          "source": "SyncScope: requires self + context item when non-null; sends/broadcasts action only",
          "source_sha256": "df25be4b33912abf15c5ff1c92dd8df6a3f2668125ce30ff215a09a696696e11",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.AddItem%236029176d1f44719d/description",
          "source": "SyncScope: requires self; creates and attaches a new inventory item under self's cover",
          "source_sha256": "977e780a5bab468f190e646b8b229b3aa2635b7d582b22b4f45c98d010e8174e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.AddItem%23e8b1d5e540061d17/description",
          "source": "SyncScope: requires self; creates and attaches a new inventory item under self's cover",
          "source_sha256": "977e780a5bab468f190e646b8b229b3aa2635b7d582b22b4f45c98d010e8174e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.AttachToCritter/description",
          "source": "SyncScope: requires self + cr, and both must be on the same covered map",
          "source_sha256": "13be31b8d09e8c416e7db4dd4c9b8713c7bfd86c80431e965da222f35f4afb10",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.ChangeItemSlot/description",
          "source": "SyncScope: requires self + inventory item; mutates item slot and fires movement/equipment events",
          "source_sha256": "ea67d7ce3e262ed54626ccdb0481ebed476d75e4b787eca6e1f9005e07aaf57d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.ChangeMovingSpeed/description",
          "source": "SyncScope: requires self; changes current movement speed",
          "source_sha256": "54b5d524cb609a4fe04e3e025a0ec8dcde035eff96ae169adffa19d3e5d01775",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.DetachAllCritters/description",
          "source": "SyncScope: requires self and attached critters; detaches each attached critter and refreshes visibility",
          "source_sha256": "12152c22ddf49ca8afe278a7fdcd22e32f232f154edf2f245ecbd7921b3d0223",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.DetachFromCritter/description",
          "source": "SyncScope: requires self + current map; detaches self and refreshes visibility",
          "source_sha256": "8293a2cd5d9865a6ed5a452d1d35ee9a6b1fdb3f45eef252bca2d0973be0a55d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.Disconnect/description",
          "source": "SyncScope: requires self + its auto-widened Player link; closes that player's connection",
          "source_sha256": "b962cd0328645944922506405ac7ebde0e1b3ad3218eb1c6286db5b62b737942",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.GetAttachedCritters/description",
          "source": "SyncScope: requires self; returned attached critters need their own cover before mutation",
          "source_sha256": "0cb627b09ef46e999822d51ca2bb53b04c75f7a32e52ce69368102c2db558b98",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.GetCritter/description",
          "source": "SyncScope: requires self; observer lookup may need self's map covered when self is mapped",
          "source_sha256": "c08c37040138faf30b373834e4490dedf4339d920673fbd76ff67b8795b3c150",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.GetCritters/description",
          "source": "SyncScope: requires self and current map when mapped; returned critters are covered only while that cover remains",
          "source_sha256": "66ba723944b3d05e627702fe66958720c1fc052fb9ac7824ed71283b9b5fcfa3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.GetGlobalMapCritterIds/description",
          "source": "SyncScope: requires self; returns the ids of self's current global-map group together with the group's\nmembership revision (empty with revision 0 when self is mapped). Group members are independent Critter roots\nthat self's cover does not include, so a caller that sends initial info to, transfers, or destroys a\nglobal-map critter resolves and covers the returned ids and then re-reads ids plus revision to prove the\nmembership did not change while it was acquiring that cover",
          "source_sha256": "e9db444dd02cbe448eac7643992f964fff375bc2685a356664c76c67147d7715",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.GetItem%2320907df3571a66a9/description",
          "source": "SyncScope: requires self; returned inventory item is covered by self while the cover remains",
          "source_sha256": "dc24010e57679c4a2143f77b882012c74d0a0a5a0fc81ec843e15309a6e41392",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.GetItem%233e4a8f273e418d3b/description",
          "source": "SyncScope: requires self; returned inventory item is covered by self while the cover remains",
          "source_sha256": "dc24010e57679c4a2143f77b882012c74d0a0a5a0fc81ec843e15309a6e41392",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.GetItem%235042179ea08a430e/description",
          "source": "SyncScope: requires self; returned inventory item is covered by self while the cover remains",
          "source_sha256": "dc24010e57679c4a2143f77b882012c74d0a0a5a0fc81ec843e15309a6e41392",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.GetItem%238eedde0030f87e84/description",
          "source": "SyncScope: requires self; returned inventory item is covered by self while the cover remains",
          "source_sha256": "dc24010e57679c4a2143f77b882012c74d0a0a5a0fc81ec843e15309a6e41392",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.GetItems%2383c145745774df22/description",
          "source": "SyncScope: requires self; returned inventory items are covered by self while the cover remains",
          "source_sha256": "06333c1cb2e48f6df1e28bf7c936c96876cbd5f9ab39fa6b08705271e70a00c8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.GetItems%23a6ae510092488b1e/description",
          "source": "SyncScope: requires self; returned inventory items are covered by self while the cover remains",
          "source_sha256": "06333c1cb2e48f6df1e28bf7c936c96876cbd5f9ab39fa6b08705271e70a00c8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.GetItems%23b851260ade7c353c/description",
          "source": "SyncScope: requires self; returned inventory items are covered by self while the cover remains",
          "source_sha256": "06333c1cb2e48f6df1e28bf7c936c96876cbd5f9ab39fa6b08705271e70a00c8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.GetItems%23ef66ddcc26718dfe/description",
          "source": "SyncScope: requires self; returned inventory items are covered by self while the cover remains",
          "source_sha256": "06333c1cb2e48f6df1e28bf7c936c96876cbd5f9ab39fa6b08705271e70a00c8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.GetMap/description",
          "source": "SyncScope: requires self; returns the current parent map handle, but does not cover it for later reads",
          "source_sha256": "16a61d0098a2b759df7289ae057f665e39f91c8e9f26557f618bbc30f0000ea3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.GetMovingContext/description",
          "source": "SyncScope: requires self; returned movement context is a snapshot handle for self's active move",
          "source_sha256": "81e7ad78e0bd15001aaaba4ca9ca3dcba4c9a6d11a72c38e89656353a5a91bfd",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.GetMovingState/description",
          "source": "SyncScope: requires self; reads current movement state only",
          "source_sha256": "1e0e1ccf947e93de42c41832bc26370fd2acb5b6ddc21b7484daa098d8d9f4b4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.GetMovingUid/description",
          "source": "SyncScope: requires self; reads current movement uid only",
          "source_sha256": "2eb5acb3659322dda750c7d52af0b31439a635b8f9aba6605429a871dc662e5c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.GetPlayer/description",
          "source": "SyncScope: requires self; returns the auto-widen partner Player when one is attached",
          "source_sha256": "2445760762f011e07a34d3e44b7ad9635d3a7d1ee6de82a935651787b94cacc6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.GetPlayerOfflineTime/description",
          "source": "SyncScope: requires self; reads offline state for this critter's player link only",
          "source_sha256": "6f2652490a6f7acad3ad74babe797642c2d91ef14d350b94e80c46d8a21d42f1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.GetVisibilityMode/description",
          "source": "SyncScope: requires self + cr; reads self's visibility-mode cache for a covered critter",
          "source_sha256": "22d54cc2364f9c3e7ffdf4d4b0ec1193f9d7dc75d936c45fc0fcd0bcdcc2ecad",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.IsAlive/description",
          "source": "SyncScope: requires self; reads current condition state only",
          "source_sha256": "31f16872432aff91d8e66a0c939b43f8ed0a3cd04d5be2680d695ac90b3dbe37",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.IsDead/description",
          "source": "SyncScope: requires self; reads current condition state only",
          "source_sha256": "31f16872432aff91d8e66a0c939b43f8ed0a3cd04d5be2680d695ac90b3dbe37",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.IsKnockout/description",
          "source": "SyncScope: requires self; reads current condition state only",
          "source_sha256": "31f16872432aff91d8e66a0c939b43f8ed0a3cd04d5be2680d695ac90b3dbe37",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.IsMoving/description",
          "source": "SyncScope: requires self; reads current movement flag only",
          "source_sha256": "bf00b1ccb06fd36b447af91b4fd08889c7d56873c8a71ee6097edf5eacd712fd",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.IsOnline/description",
          "source": "SyncScope: requires self + its auto-widened Player link; reads online state only",
          "source_sha256": "50660c8e76bfc3a0c023f0e40c0b340accd7712e0f7624dec782a195e8405fc2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.IsSee%2311f3357f2df75c38/description",
          "source": "SyncScope: requires self + cr; checks self's visibility cache for a covered critter",
          "source_sha256": "f2ed688aec948c49c111a49aaec89c997bce3f290697a2fd99879b8d8b38c279",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.IsSee%23c05ec9ee4a1d9b41/description",
          "source": "SyncScope: requires self + item; checks self's visible-item cache for a covered item",
          "source_sha256": "07967f9c5510ecd64e45e0a1c7a2c04fccf65d9a3b46caaad643b178c36f042c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.IsSeenBy/description",
          "source": "SyncScope: requires self + cr; checks cr's visibility cache for this covered critter",
          "source_sha256": "13174c86890ed953b1fed97330e6650326a331133b56c6ac3f73ca77ea1b368d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.MakeControllable/description",
          "source": "SyncScope: requires self + current map; changes controllable/player state and may self-sync map",
          "source_sha256": "ce08c4f56944912262a45c94170e948e887491d02350137346c6c99d4af4e2e1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.MoveToHex%2359785332969dbd15/description",
          "source": "SyncScope: requires self + current map; starts movement and returns the new movement context",
          "source_sha256": "39d2aca067c8c98e2d98b8e5d32f383eba69c257e6a551cff40bd32431fef03f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.MoveToHex%23877a3be2a55ba41a/description",
          "source": "SyncScope: requires self + current map; starts movement and returns the new movement context",
          "source_sha256": "39d2aca067c8c98e2d98b8e5d32f383eba69c257e6a551cff40bd32431fef03f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.MoveToHex%23b27a6e0f0f8ceddb/description",
          "source": "A request whose route would be longer than maxPathLength steps is refused as HexTooFar, and the refusal costs\nno more than a search of that depth; 0 keeps Geometry.MaxPathFindLength",
          "source_sha256": "f2761726fa24a92e8ada74ad7963685ea02696358832120e00525a40f9ad2268",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.RefreshView/description",
          "source": "SyncScope: requires self + current map when mapped; recomputes visible critters/items",
          "source_sha256": "2e98ceeb6e5a4a92a93de2943bc31165d55682c9e86ae69f3f74ce73c10632ca",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.RefreshVisibility/description",
          "source": "SyncScope: requires self + current map when mapped; recomputes visible critters/items",
          "source_sha256": "2e98ceeb6e5a4a92a93de2943bc31165d55682c9e86ae69f3f74ce73c10632ca",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.SendGlobalMapGroupInfo/description",
          "source": "SyncScope: requires self + every critter of self's current global-map group; sends the other members to self's\nplayer without acquiring any cover. Initial info sends only the critter itself, so a caller that attaches a\nglobal-map critter to a player covers the group (Sync::WidenCritterWithGlobalMapGroup) and then calls this",
          "source_sha256": "de85723b179bd20ae55d760089373dbf877f7c72e09fd63042f96840536cb2b9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.SendItems/description",
          "source": "SyncScope: requires self + every non-null item in items; sends a network payload without changing cover",
          "source_sha256": "2e02e520a884ea163ae598824caedcbc04b10fde7629ce0b97258f6d5e2be03f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.SetCondition/description",
          "source": "SyncScope: requires self + current map when mapped + context item when non-null; mutates condition and map fields",
          "source_sha256": "220a66fef8a0ec182815d7dab58481501bd8fe580ee8e5c630ac910f55c05cee",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.SetDir/description",
          "source": "SyncScope: requires self; mutates direction and broadcasts it",
          "source_sha256": "9d118c8e70e0ec054a096eaa2053c090aec846db9406b3738d2ff38997985579",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.SetupScript/description",
          "source": "SyncScope: requires self; init callback runs under the same cover and must widen before touching other entities",
          "source_sha256": "834a6f6d0882c8a4240b31bc41c1f21e10c123a6ae4ae02ebe741a9cec7b034e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.SetupScriptEx/description",
          "source": "SyncScope: requires self; init callback runs under the same cover and must widen before touching other entities",
          "source_sha256": "834a6f6d0882c8a4240b31bc41c1f21e10c123a6ae4ae02ebe741a9cec7b034e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.StopMoving/description",
          "source": "SyncScope: requires self; stops current movement",
          "source_sha256": "19cd36cc631996e6391799041a85bf6f8f43c115e5512a4ff7fd476f297f0124",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.TransferToGlobal/description",
          "source": "SyncScope: requires self + current source map when self is mapped; mutates self to global-map state",
          "source_sha256": "1a47fb3f8dcea53bdf6528189cda7e70d1440fd15ef26a028ace194d833ec6a2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.TransferToGlobalGroup/description",
          "source": "SyncScope: requires self + globalCr; if self is mapped also requires self's current source map",
          "source_sha256": "2ef5ef8f2c256c8680a74b99851e0c2b3fcb89ba5db7c97f8111e51e57319b6a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.TransferToGlobalWithGroup/description",
          "source": "SyncScope: requires self + current source map and every group critter + its current source map before transfer",
          "source_sha256": "8b3deaa77458ebfc6d3f79f4a1528da75e76682a95cccdc4111723120c10b0ed",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.TransferToHex%238438d509ef6a8651/description",
          "source": "SyncScope: requires self + current map; transfer keeps self covered and mutates current-map placement/dir",
          "source_sha256": "5de2ac8b6c54fb6569b61a9b1ed10c098ef3e9b7cd0a94c32a90a4feb4f49eee",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.TransferToHex%23a9a09ef8641e16c0/description",
          "source": "SyncScope: requires self + current map; transfer keeps self covered and mutates current-map placement",
          "source_sha256": "8df15b34e5fcca00149a6113e12533367fa316e9181a2dc8dbe92b10021bf8df",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.TransferToMap%23c9880f573836f54f/description",
          "source": "SyncScope: requires self + source map if mapped + destination map + destination location; scripts should use Sync::LockForTransferToMap(self, map)",
          "source_sha256": "3068db6838f7662e48b8ee4811a59573ee1fc301496fb10682813ddcb1a7dc50",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Critter.TransferToMap%23dc3840f5d203dd4b/description",
          "source": "SyncScope: requires self + source map if mapped + destination map + destination location; scripts should use Sync::LockForTransferToMap(self, map)",
          "source_sha256": "3068db6838f7662e48b8ee4811a59573ee1fc301496fb10682813ddcb1a7dc50",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Entity.CountTimeEvent%2308f3341698dc846a/description",
          "source": "SyncScope: requires self; counts events bound to self, no cover change",
          "source_sha256": "df9073c580cf18c14df5f74a4a2f6e4f14892a11b2a51e9f3a63385009e10d41",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Entity.CountTimeEvent%235609075e34e56857/description",
          "source": "SyncScope: requires self; counts events bound to self, no cover change",
          "source_sha256": "df9073c580cf18c14df5f74a4a2f6e4f14892a11b2a51e9f3a63385009e10d41",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Entity.CountTimeEvent%239c7dd3ed70f86a7d/description",
          "source": "SyncScope: requires self; counts events bound to self, no cover change",
          "source_sha256": "df9073c580cf18c14df5f74a4a2f6e4f14892a11b2a51e9f3a63385009e10d41",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Entity.CountTimeEvent%23ad56856359be786a/description",
          "source": "SyncScope: requires self; counts events bound to self, no cover change",
          "source_sha256": "df9073c580cf18c14df5f74a4a2f6e4f14892a11b2a51e9f3a63385009e10d41",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Entity.CountTimeEvent%23e41a67022275199d/description",
          "source": "SyncScope: requires self; counts events bound to self, no cover change",
          "source_sha256": "df9073c580cf18c14df5f74a4a2f6e4f14892a11b2a51e9f3a63385009e10d41",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Entity.GetRefCount/description",
          "source": "A reference-leak diagnostic: every script wrapper and in-flight native pin is counted, so only a difference\nmeasured around a controlled sequence of calls means anything",
          "source_sha256": "27650121b0c576045ec40a6189271d610b143de37a683bee73cb1cc5dafa2923",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Entity.IsPersistent/description",
          "source": "SyncScope: requires self; reads persistence flag only",
          "source_sha256": "230511b95599fb8b98345d41e76686293a7f2e634052aa36ee6016cb11bfa99e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Entity.MakePersistent/description",
          "source": "SyncScope: requires self; persistence cascade may self-sync covered child entities",
          "source_sha256": "bf60d6de45563242a543f3cc8157483132600552431547ea7dbf699ed8568cdc",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Entity.RepeatTimeEvent%2328154675b58100aa/description",
          "source": "SyncScope: requires self; updates repeat for event bound to self, no cover change",
          "source_sha256": "372d0c49974ec68ac83487482de811e90af45979e07e9cada13506a616111fc2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Entity.RepeatTimeEvent%2335eb685e9352ee97/description",
          "source": "SyncScope: requires self; updates repeat for event bound to self, no cover change",
          "source_sha256": "372d0c49974ec68ac83487482de811e90af45979e07e9cada13506a616111fc2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Entity.RepeatTimeEvent%234c1ec6146e414fed/description",
          "source": "SyncScope: requires self; updates repeat for event bound to self, no cover change",
          "source_sha256": "372d0c49974ec68ac83487482de811e90af45979e07e9cada13506a616111fc2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Entity.RepeatTimeEvent%23d107502adf65e851/description",
          "source": "SyncScope: requires self; updates repeat for event bound to self, no cover change",
          "source_sha256": "372d0c49974ec68ac83487482de811e90af45979e07e9cada13506a616111fc2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Entity.RepeatTimeEvent%23d3e5bb91010a5ee6/description",
          "source": "SyncScope: requires self; updates repeat for event bound to self, no cover change",
          "source_sha256": "372d0c49974ec68ac83487482de811e90af45979e07e9cada13506a616111fc2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Entity.SetTimeEventData%2309c025b7150b6bcd/description",
          "source": "SyncScope: requires self; updates data for event bound to self, no cover change",
          "source_sha256": "0cd2715ff05500567a43e49124e52274f86adaf2ef8215e4a03b87bb712839cf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Entity.SetTimeEventData%2346ce3a8e59df0b76/description",
          "source": "SyncScope: requires self; updates data for event bound to self, no cover change",
          "source_sha256": "0cd2715ff05500567a43e49124e52274f86adaf2ef8215e4a03b87bb712839cf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Entity.SetTimeEventData%23995b7ca79df38c35/description",
          "source": "SyncScope: requires self; updates data for event bound to self, no cover change",
          "source_sha256": "0cd2715ff05500567a43e49124e52274f86adaf2ef8215e4a03b87bb712839cf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Entity.SetTimeEventData%23adb2b4962b8e3874/description",
          "source": "SyncScope: requires self; updates data for event bound to self, no cover change",
          "source_sha256": "0cd2715ff05500567a43e49124e52274f86adaf2ef8215e4a03b87bb712839cf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Entity.SetTimeEventData%23c02fbdd5c31ecb21/description",
          "source": "SyncScope: requires self; updates data for event bound to self, no cover change",
          "source_sha256": "0cd2715ff05500567a43e49124e52274f86adaf2ef8215e4a03b87bb712839cf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Entity.SetTimeEventData%23c41820f30638ac18/description",
          "source": "SyncScope: requires self; updates data for event bound to self, no cover change",
          "source_sha256": "0cd2715ff05500567a43e49124e52274f86adaf2ef8215e4a03b87bb712839cf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Entity.StartTimeEvent%23170befe9003e3411/description",
          "source": "SyncScope: requires self to schedule repeating event; fired handler later gets dispatcher cover for self",
          "source_sha256": "a94735df84ce91ed9b357bd24f613237dd895c9aca48967570f686338134b53c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Entity.StartTimeEvent%231e937a7976df63ac/description",
          "source": "SyncScope: requires self to schedule; fired handler later gets dispatcher cover for self",
          "source_sha256": "cbd9cb18b60961f50886011d5404078257075cb2d6cd6bd9b98659bf61a7093c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Entity.StartTimeEvent%23492d95e09fb651ed/description",
          "source": "SyncScope: requires self to schedule; fired handler later gets dispatcher cover for self",
          "source_sha256": "cbd9cb18b60961f50886011d5404078257075cb2d6cd6bd9b98659bf61a7093c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Entity.StartTimeEvent%23494379a91f97d59e/description",
          "source": "SyncScope: requires self to schedule repeating event; fired handler later gets dispatcher cover for self",
          "source_sha256": "a94735df84ce91ed9b357bd24f613237dd895c9aca48967570f686338134b53c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Entity.StartTimeEvent%2364daaaa7e6125cb3/description",
          "source": "SyncScope: requires self to schedule repeating event; fired handler later gets dispatcher cover for self",
          "source_sha256": "a94735df84ce91ed9b357bd24f613237dd895c9aca48967570f686338134b53c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Entity.StartTimeEvent%23805b4b72ba72a604/description",
          "source": "SyncScope: requires self to schedule repeating event; fired handler later gets dispatcher cover for self",
          "source_sha256": "a94735df84ce91ed9b357bd24f613237dd895c9aca48967570f686338134b53c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Entity.StartTimeEvent%239e1b092a1d7fb963/description",
          "source": "SyncScope: requires self to schedule repeating event; fired handler later gets dispatcher cover for self",
          "source_sha256": "a94735df84ce91ed9b357bd24f613237dd895c9aca48967570f686338134b53c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Entity.StartTimeEvent%23ae9a39c7d8c1d6fa/description",
          "source": "SyncScope: requires self to schedule; fired handler later gets dispatcher cover for self",
          "source_sha256": "cbd9cb18b60961f50886011d5404078257075cb2d6cd6bd9b98659bf61a7093c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Entity.StartTimeEvent%23af2f95f5513a4cfa/description",
          "source": "SyncScope: requires self to schedule repeating event; fired handler later gets dispatcher cover for self",
          "source_sha256": "a94735df84ce91ed9b357bd24f613237dd895c9aca48967570f686338134b53c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Entity.StartTimeEvent%23b494dfd4a4fa81ea/description",
          "source": "SyncScope: requires self to schedule; fired handler later gets dispatcher cover for self",
          "source_sha256": "cbd9cb18b60961f50886011d5404078257075cb2d6cd6bd9b98659bf61a7093c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Entity.StartTimeEvent%23d9b6635334d5ae05/description",
          "source": "SyncScope: requires self to schedule; fired handler later gets dispatcher cover for self",
          "source_sha256": "cbd9cb18b60961f50886011d5404078257075cb2d6cd6bd9b98659bf61a7093c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Entity.StartTimeEvent%23e59548a665ddb838/description",
          "source": "SyncScope: requires self to schedule; fired handler later gets dispatcher cover for self",
          "source_sha256": "cbd9cb18b60961f50886011d5404078257075cb2d6cd6bd9b98659bf61a7093c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Entity.StopTimeEvent%231ff4e8b7bdb6f35c/description",
          "source": "SyncScope: requires self; stops events bound to self, no cover change",
          "source_sha256": "d751a566369515024b803e1af77e911393d374fcf943a03911fa103bca20c954",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Entity.StopTimeEvent%2358fd464d379e5ea5/description",
          "source": "SyncScope: requires self; stops events bound to self, no cover change",
          "source_sha256": "d751a566369515024b803e1af77e911393d374fcf943a03911fa103bca20c954",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Entity.StopTimeEvent%23be90949683fff93d/description",
          "source": "SyncScope: requires self; stops event bound to self, no cover change",
          "source_sha256": "bcaf229fbed937e815523989a3eef625e4556f0d5ee5727a18ce86443c5f39d3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Entity.StopTimeEvent%23d792082ed73a8fc8/description",
          "source": "SyncScope: requires self; stops events bound to self, no cover change",
          "source_sha256": "d751a566369515024b803e1af77e911393d374fcf943a03911fa103bca20c954",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Entity.StopTimeEvent%23ddfbd34ed1764f92/description",
          "source": "SyncScope: requires self; stops events bound to self, no cover change",
          "source_sha256": "d751a566369515024b803e1af77e911393d374fcf943a03911fa103bca20c954",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.CallStaticItemFunction/description",
          "source": "SyncScope: requires cr and usedItem when non-null; staticItem is static map data, not a live entity cover",
          "source_sha256": "0af68eb3f6b415147796e53f17b29b3ecafab5736b9ed5a64f7d2fa8f7554c5e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.CloneItem/description",
          "source": "Clones the complete live item and returns the new item with synchronization cover",
          "source_sha256": "af7252b1266b83c22c2dc49d5358c94ac2d007180f35220204c0bfcf95a3467d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.CreateCritter%23151d7b0fa45c079e/description",
          "source": "SyncScope: no existing entity cover required; creates a detached critter, cover it before cross-entity use",
          "source_sha256": "c356fcb0d0a2caf1b50ad302a23dbb8094a2593d27a4f62d2923b9c86b965aa3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.CreateCritter%23e68fa5ea3ffe3cc4/description",
          "source": "SyncScope: no existing entity cover required; creates a detached critter, cover it before cross-entity use",
          "source_sha256": "c356fcb0d0a2caf1b50ad302a23dbb8094a2593d27a4f62d2923b9c86b965aa3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.CreateCritter%23e774d859a418b9da/description",
          "source": "SyncScope: no existing entity cover required; creates a detached critter, cover it before cross-entity use",
          "source_sha256": "c356fcb0d0a2caf1b50ad302a23dbb8094a2593d27a4f62d2923b9c86b965aa3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.CreateCritter%23e8d3f028fa79075f/description",
          "source": "SyncScope: no existing entity cover required; creates a detached critter, cover it before cross-entity use",
          "source_sha256": "c356fcb0d0a2caf1b50ad302a23dbb8094a2593d27a4f62d2923b9c86b965aa3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.CreateItem%2327766bb940021b1f/description",
          "source": "Creates an item with integer property overrides applied before OnItemInit and returns it with synchronization cover",
          "source_sha256": "5d044e07c3c0798aabfbcd748aa9592d5262addd6ee64198cdceeca6ae544434",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.CreateItem%236029176d1f44719d/description",
          "source": "Creates an item from the supplied prototype descriptor and returns it with synchronization cover",
          "source_sha256": "5a340df363ae0caa4d0223191d0b246e5342992c2321217b2473318380c67aaf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.CreateItem%23ba49673cbfedbc07/description",
          "source": "Creates an item from the supplied prototype id and returns it with synchronization cover",
          "source_sha256": "8668419e3e6c962eba132603f26f7a07cf05aa92bc51202f1584b19a9656ef3c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.CreateLocation%2303c25a496a41709a/description",
          "source": "SyncScope: creates a new location/maps in the current context; returned location is covered by registration self-sync",
          "source_sha256": "f77733a66a15dd984571154d7d35db37b47e62a91c427785471a6a2e93b2abbe",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.CreateLocation%2309335f3291c54d05/description",
          "source": "SyncScope: creates a new location in the current context; returned location is covered by registration self-sync",
          "source_sha256": "f03791675cfebf68654ab6b3a69bbba35b2c9745c1d3b20dc65bf86d428cfacb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.CreateLocation%23392f59fecd72fe17/description",
          "source": "SyncScope: creates a new location in the current context; returned location is covered by registration self-sync",
          "source_sha256": "f03791675cfebf68654ab6b3a69bbba35b2c9745c1d3b20dc65bf86d428cfacb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.CreateLocation%234f3d2969824dd3bc/description",
          "source": "SyncScope: creates a new location in the current context; returned location is covered by registration self-sync",
          "source_sha256": "f03791675cfebf68654ab6b3a69bbba35b2c9745c1d3b20dc65bf86d428cfacb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.CreateLocation%235a0f0539462eafe3/description",
          "source": "SyncScope: creates a new location/maps in the current context; returned location is covered by registration self-sync",
          "source_sha256": "f77733a66a15dd984571154d7d35db37b47e62a91c427785471a6a2e93b2abbe",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.CreateLocation%23c94de2fea30a1454/description",
          "source": "SyncScope: creates a new location in the current context; returned location is covered by registration self-sync",
          "source_sha256": "f03791675cfebf68654ab6b3a69bbba35b2c9745c1d3b20dc65bf86d428cfacb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.CreateNotLoggedInPlayer/description",
          "source": "SyncScope: no existing entity cover required; creates a disconnected not-logged-in player session",
          "source_sha256": "18380c3fd43ad97bb680d9c3568924a87f3a32226db4f99974c17b08e45a2df4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.DbGetAllRecordIds/description",
          "source": "SyncScope: database collection scan only; no live entity cover is required",
          "source_sha256": "98c2317691b4166769b002934e93c68d71ae92bb055a55260adb9b98914be249",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.DbGetAllRecordKeys/description",
          "source": "SyncScope: database collection scan only; no live entity cover is required",
          "source_sha256": "98c2317691b4166769b002934e93c68d71ae92bb055a55260adb9b98914be249",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.DbGetPlayerData/description",
          "source": "SyncScope: database lookup only; does not touch live player entity cover",
          "source_sha256": "9405a78ea3bcf9ff222c0c653f33520a501ef751cad9215bebec7b576c2c63e8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.DbGetRecord%2386e082d9df76b104/description",
          "source": "SyncScope: database record read only; no live entity cover is required",
          "source_sha256": "0050ff98dd978744a8539622f06580867511a4319b600affc43c7c9941ed5e73",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.DbGetRecord%23c524f7821136061a/description",
          "source": "SyncScope: database record read only; no live entity cover is required",
          "source_sha256": "0050ff98dd978744a8539622f06580867511a4319b600affc43c7c9941ed5e73",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.DbHasEntity/description",
          "source": "SyncScope: requires entity for type/id read; database lookup itself does not cover a live entity",
          "source_sha256": "a9eda13a7082386bada493e344113df8839f3271c0503a8a5d25c26605f6d994",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.DbHasRecord%2331a3ffa964f519b8/description",
          "source": "SyncScope: database record lookup only; no live entity cover is required",
          "source_sha256": "82371ea41bb6e16f36280df7e09999b5519c4ba3774bab653b70ff2a30ce8156",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.DbHasRecord%23e13466af940b3833/description",
          "source": "SyncScope: database record lookup only; no live entity cover is required",
          "source_sha256": "82371ea41bb6e16f36280df7e09999b5519c4ba3774bab653b70ff2a30ce8156",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.DbInsertRecord%2323ac03d711edaa50/description",
          "source": "SyncScope: database record insert only; no live entity cover is required",
          "source_sha256": "7d37aac97ebe0499b839cde02646dce1c72e08924aa0d68c61f26e95bd2119c8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.DbInsertRecord%2327a079e12448f9d8/description",
          "source": "SyncScope: database record insert only; no live entity cover is required",
          "source_sha256": "7d37aac97ebe0499b839cde02646dce1c72e08924aa0d68c61f26e95bd2119c8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.DbRemoveRecord%232039b29db1a1d593/description",
          "source": "SyncScope: database record remove only; no live entity cover is required",
          "source_sha256": "de0355b3d1281eb579e53b20b7c0075c520dc439cbe223b15b66890774fd2678",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.DbRemoveRecord%232749ed5b0c8482ba/description",
          "source": "SyncScope: database record remove only; no live entity cover is required",
          "source_sha256": "de0355b3d1281eb579e53b20b7c0075c520dc439cbe223b15b66890774fd2678",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.DbUpdateRecordBool%236b7737017a2e23dd/description",
          "source": "SyncScope: database record update only; no live entity cover is required",
          "source_sha256": "b5ad67b7e15d4f2d6a0959ccb36bff78654aa085d4bcbc381481bb79dc0b3194",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.DbUpdateRecordBool%23717491d844575aca/description",
          "source": "SyncScope: database record update only; no live entity cover is required",
          "source_sha256": "b5ad67b7e15d4f2d6a0959ccb36bff78654aa085d4bcbc381481bb79dc0b3194",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.DbUpdateRecordFloat64%230e7e221242df2792/description",
          "source": "SyncScope: database record update only; no live entity cover is required",
          "source_sha256": "b5ad67b7e15d4f2d6a0959ccb36bff78654aa085d4bcbc381481bb79dc0b3194",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.DbUpdateRecordFloat64%23f5d0799b4804bb25/description",
          "source": "SyncScope: database record update only; no live entity cover is required",
          "source_sha256": "b5ad67b7e15d4f2d6a0959ccb36bff78654aa085d4bcbc381481bb79dc0b3194",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.DbUpdateRecordInt64%234b791154e44562fd/description",
          "source": "SyncScope: database record update only; no live entity cover is required",
          "source_sha256": "b5ad67b7e15d4f2d6a0959ccb36bff78654aa085d4bcbc381481bb79dc0b3194",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.DbUpdateRecordInt64%2391d6b71d16aee463/description",
          "source": "SyncScope: database record update only; no live entity cover is required",
          "source_sha256": "b5ad67b7e15d4f2d6a0959ccb36bff78654aa085d4bcbc381481bb79dc0b3194",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.DbUpdateRecordString%2376e92f4eee20fb7b/description",
          "source": "SyncScope: database record update only; no live entity cover is required",
          "source_sha256": "b5ad67b7e15d4f2d6a0959ccb36bff78654aa085d4bcbc381481bb79dc0b3194",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.DbUpdateRecordString%23cbc3625de444b49c/description",
          "source": "SyncScope: database record update only; no live entity cover is required",
          "source_sha256": "b5ad67b7e15d4f2d6a0959ccb36bff78654aa085d4bcbc381481bb79dc0b3194",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.DestroyCritter/description",
          "source": "SyncScope: requires cr + current source map when cr is non-null and not player-controlled",
          "source_sha256": "f82a3d7bfbcc245ea0b265bf5e4b1c4dfc030a28b6a81e1924451c8f261566cf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.DestroyCritters/description",
          "source": "SyncScope: requires every non-null cr + current source map when not player-controlled",
          "source_sha256": "e9fa629ee569771e790f7ff0210f6e8f92ba47579c4db462a7b63e15bf30e8b6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.DestroyEntities/description",
          "source": "SyncScope: requires every non-null entity + current parent when present; destroys each subtree",
          "source_sha256": "c971871eccaf82c67b773d746a85b3911c0950de604c199d61ddc03e49b38685",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.DestroyEntity/description",
          "source": "SyncScope: requires entity + current parent when entity is non-null; destroys the entity subtree",
          "source_sha256": "d715639c4510d14d109e9f33da1bcdb73172dc1858b4d9a2dff6ea199a95b5c9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.DestroyItem/description",
          "source": "SyncScope: requires item + current item parent when item is non-null; destroys the item subtree",
          "source_sha256": "5e945c26cdcd18c012540ce485ca000fd866aacc2feb392820b078888bedf9f0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.DestroyItems/description",
          "source": "SyncScope: requires every non-null item + current item parent; destroys each item subtree",
          "source_sha256": "5713502e0a83105f119ccfe3532d876739f8b86b2e1e6a4d665cc112ede9fadd",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.DestroyLocation/description",
          "source": "SyncScope: requires loc when non-null; destroy cascade self-syncs covered child maps/entities",
          "source_sha256": "79f8b5ff3110bbb78d3d5eb302c63e51670a6734aaf536486c16d3c550d8a2a6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.DestroyMap/description",
          "source": "SyncScope: requires map + parent location when map is non-null; destroy cascade self-syncs covered child entities",
          "source_sha256": "e0839477752ba0278705c3f66cefc4d3aae536bb442aba4b9deae39e22484e75",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.DestroyUnloadedCritter/description",
          "source": "SyncScope: unloaded-record operation only; no live entity cover is required",
          "source_sha256": "ccbe25b72d0c4a6c11a939d11be38ab087f164dd07059dcb9818fd430769a970",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetAllItems%235f63b29e3fbd4374/description",
          "source": "SyncScope: registry scan only; returned item handles are not covered for later reads/mutations",
          "source_sha256": "439927ad3477c904af004b2803290a81eba7ebefe2d46f81db51acd37c0921c5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetAllItems%23986ac88634199639/description",
          "source": "SyncScope: registry scan only; returned item handles are not covered for later reads/mutations",
          "source_sha256": "439927ad3477c904af004b2803290a81eba7ebefe2d46f81db51acd37c0921c5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetAllNpc%23568d2e4962ad093b/description",
          "source": "SyncScope: registry scan only; returned NPC critter handles are not covered for later reads/mutations",
          "source_sha256": "be374fe25044df64d86b52aa07a99ea3609032bf7e581c8a797e64a47f419e3f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetAllNpc%23d318af6f5c78cd43/description",
          "source": "SyncScope: registry scan only; returned NPC critter handles are not covered for later reads/mutations",
          "source_sha256": "be374fe25044df64d86b52aa07a99ea3609032bf7e581c8a797e64a47f419e3f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetAllNpc%23e7c595cfaf4c11a4/description",
          "source": "SyncScope: registry scan only; returned NPC critter handles are not covered for later reads/mutations",
          "source_sha256": "be374fe25044df64d86b52aa07a99ea3609032bf7e581c8a797e64a47f419e3f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetAllocatorMemoryUsage/description",
          "source": "SyncScope: allocator metric read only; no entity cover is required",
          "source_sha256": "3d242bcc4abcdd439c391381617b957c7a1a1bfaf178e8cd647d9d17e2a93753",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetCritter/description",
          "source": "SyncScope: registry lookup only; returned critter handle is not covered for later reads/mutations",
          "source_sha256": "01d0d63e8ab1d0d1bc651cce74a0523d6620d8874107a9e61d82c0b81ee3c9c9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetCritterRegistryCount/description",
          "source": "SyncScope: registry count only; no entity cover required",
          "source_sha256": "c5174d6947f5e67b32a72506ab54d807c2a274a8f24dd176dc261a28d268d209",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetCritters/description",
          "source": "SyncScope: registry scan only; returned critter handles are not covered for later reads/mutations",
          "source_sha256": "d62883512b2f1620d47bf38c41c51043654ec6f3d294360e0bd8cceb589da81b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetDistance%231be05ad1508d9bdf/description",
          "source": "SyncScope: requires item1 + item2; reads same-map placement from the covered items",
          "source_sha256": "983f0050c35e4a744ceb75bb541dfaa0672a27e477b8d7ad7f26ac37f577f083",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetDistance%23200d823fdf545d92/description",
          "source": "SyncScope: requires item + cr; reads same-map placement from the covered entities",
          "source_sha256": "2c1991189c9198ffaec3896c9a4b35f4c1920d3b9d4a9f12a36a6e7153b8101c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetDistance%2333a4d51ef8eece2a/description",
          "source": "SyncScope: requires cr; reads critter placement from the covered critter",
          "source_sha256": "9b0fb3e11e2fad6e62ad47652e089490c272b2cd47261ee54d07900f3aa00a6a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetDistance%233dade8869ec8c0ac/description",
          "source": "SyncScope: requires cr + item; reads same-map placement from the covered entities",
          "source_sha256": "9ea650837821e7cfbc1590d7075e9698e1d93fa6107ef8d0720fe80fdb3e04a4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetDistance%238298d537bb9c7c37/description",
          "source": "SyncScope: requires item; reads item placement from the covered item",
          "source_sha256": "fc4f06807c5199cef53bc68926725c0fb2ab59f5f383cffdbfe8c760e7026b9e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetDistance%238a80a760debf852d/description",
          "source": "SyncScope: requires cr; reads critter placement from the covered critter",
          "source_sha256": "9b0fb3e11e2fad6e62ad47652e089490c272b2cd47261ee54d07900f3aa00a6a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetDistance%23b273c01749f73e8c/description",
          "source": "SyncScope: requires item; reads item placement from the covered item",
          "source_sha256": "fc4f06807c5199cef53bc68926725c0fb2ab59f5f383cffdbfe8c760e7026b9e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetDistance%23dacea0c00ba4c5f1/description",
          "source": "SyncScope: requires cr1 + cr2; reads same-map placement from the covered critters",
          "source_sha256": "08910c5e965f2b236cfdffb24f96c5cc12344ad125d0c41a4b711a2e4d27d24f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetEntity/description",
          "source": "SyncScope: registry lookup only; returned entity handle is not covered for later reads/mutations",
          "source_sha256": "677609b0bd78ae5518a80214598f9a8a90c2b0f1df41f3fbafcc3fb3273c89a1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetEntityRegistryCount/description",
          "source": "SyncScope: registry count only; no entity cover is required",
          "source_sha256": "a5b095e0162f0c8d4792f4c197e60b0585cefe4ba9326c9e48be0942536a57da",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetHeldSyncEntities/description",
          "source": "SyncScope: returns current held cover; does not change cover",
          "source_sha256": "506f7513c126da1f73d259e238a15af6b8d1632f40c1c7fa1805337b1a307c2d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetItem/description",
          "source": "SyncScope: registry lookup only; returned item handle is not covered for later reads/mutations",
          "source_sha256": "28b17002e324f416550a35cad8d168cb0ff6e94c892cf9cd913da8d3af1417d0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetItemRegistryCount/description",
          "source": "SyncScope: registry count only; no entity cover required",
          "source_sha256": "c5174d6947f5e67b32a72506ab54d807c2a274a8f24dd176dc261a28d268d209",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetItemRegistryProtoIds/description",
          "source": "SyncScope: registry snapshot of proto ids only; reads the registry map without touching entity state,\nso no entity cover is required. Intended for test-harness leak diagnostics",
          "source_sha256": "1e6933b4e9e0b3aa0676506ac908f6c6aa4c79872b6d1d32c447a4663fefb410",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetLocation%2308a98bf7bce0a9bf/description",
          "source": "SyncScope: registry lookup only; returned location handle is not covered for later reads/mutations",
          "source_sha256": "e32cfbfecd4b243069feaca1949e7102677121c1e320c6670a36e49deb507fe0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetLocation%232f5eccddea2f5dd1/description",
          "source": "SyncScope: registry lookup only; returned location handle is not covered for later reads/mutations",
          "source_sha256": "e32cfbfecd4b243069feaca1949e7102677121c1e320c6670a36e49deb507fe0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetLocation%234b1903ede1dd2fa2/description",
          "source": "SyncScope: registry lookup only; returned location handle is not covered for later reads/mutations",
          "source_sha256": "e32cfbfecd4b243069feaca1949e7102677121c1e320c6670a36e49deb507fe0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetLocation%238d03e18599ee2a1e/description",
          "source": "SyncScope: registry scan only; returned location handle is not covered for later reads/mutations",
          "source_sha256": "9b5a994390ccd9e2d442924afbe1c58d6e2fa38cc704a46bf4b71cd169196f1d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetLocationRegistryCount/description",
          "source": "SyncScope: registry count only; no entity cover required",
          "source_sha256": "c5174d6947f5e67b32a72506ab54d807c2a274a8f24dd176dc261a28d268d209",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetLocations%2353d313c4ee2358d8/description",
          "source": "SyncScope: registry scan only; returned location handles are not covered for later reads/mutations",
          "source_sha256": "192e21a9a1648e365f163213b08134af5d4af71c3a9dd96e54e2c1f2b4f0ed05",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetLocations%237e3ec9d90972cfaf/description",
          "source": "SyncScope: registry scan only; returned location handles are not covered for later reads/mutations",
          "source_sha256": "192e21a9a1648e365f163213b08134af5d4af71c3a9dd96e54e2c1f2b4f0ed05",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetLocations%238eb7a49e747de27a/description",
          "source": "SyncScope: registry scan only; returned location handles are not covered for later reads/mutations",
          "source_sha256": "192e21a9a1648e365f163213b08134af5d4af71c3a9dd96e54e2c1f2b4f0ed05",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetLocations%23c590f9bbe1535ddd/description",
          "source": "SyncScope: registry scan only; returned location handles are not covered for later reads/mutations",
          "source_sha256": "192e21a9a1648e365f163213b08134af5d4af71c3a9dd96e54e2c1f2b4f0ed05",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetMap%2328a9744f2e2f208e/description",
          "source": "SyncScope: registry lookup only; returned map handle is not covered for later reads/mutations",
          "source_sha256": "465639abd28088c2c1c6ae7a233ad5a2d085ec3d8b1f82e4d4abc46909cc5b77",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetMap%2338ce2f11f2b9397e/description",
          "source": "SyncScope: registry lookup only; returned map handle is not covered for later reads/mutations",
          "source_sha256": "465639abd28088c2c1c6ae7a233ad5a2d085ec3d8b1f82e4d4abc46909cc5b77",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetMap%23b7b3d34523400d1f/description",
          "source": "SyncScope: registry lookup only; returned map handle is not covered for later reads/mutations",
          "source_sha256": "465639abd28088c2c1c6ae7a233ad5a2d085ec3d8b1f82e4d4abc46909cc5b77",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetMapRegistryCount/description",
          "source": "SyncScope: registry count only; no entity cover required",
          "source_sha256": "c5174d6947f5e67b32a72506ab54d807c2a274a8f24dd176dc261a28d268d209",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetMaps%2312174f7cc9f609d1/description",
          "source": "SyncScope: registry scan only; returned map handles are not covered for later reads/mutations",
          "source_sha256": "c695813be6f8771d34c4d7f099b90955cd897cae7bf1086c60d9b10194bbc97f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetMaps%233cd2c62b701248d5/description",
          "source": "SyncScope: registry scan only; returned map handles are not covered for later reads/mutations",
          "source_sha256": "c695813be6f8771d34c4d7f099b90955cd897cae7bf1086c60d9b10194bbc97f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetMaps%23779d5c9f8b1fd466/description",
          "source": "SyncScope: registry scan only; returned map handles are not covered for later reads/mutations",
          "source_sha256": "c695813be6f8771d34c4d7f099b90955cd897cae7bf1086c60d9b10194bbc97f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetOnlinePlayers/description",
          "source": "SyncScope: registry scan only; returned player handles are not covered for later reads/mutations",
          "source_sha256": "666eb296e9829a1261ae16dc76949ec719a10ec8e8448c93c6012d29c6a1aedd",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetPlayer/description",
          "source": "SyncScope: registry lookup only; returned player handle is not covered for later reads/mutations",
          "source_sha256": "8c453af273626a4da4ff89f92f52d65ce1debdd63202d251fe9720a89a7753fb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetPlayerRegistryCount/description",
          "source": "SyncScope: registry count only; no entity cover required",
          "source_sha256": "c5174d6947f5e67b32a72506ab54d807c2a274a8f24dd176dc261a28d268d209",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetProcessMemoryUsage/description",
          "source": "SyncScope: process metric read only; no entity cover is required",
          "source_sha256": "518f0affc37608f034993f0bc20f112e71fc69e50556e59b90f42941f7f44b9e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetProtoCrittersForProtoMap/description",
          "source": "SyncScope: static proto-map read only; no live entity cover is required",
          "source_sha256": "946ef3974229f0c4b1ad99b63df32b21a991df4bed2595627e544312856ec0ea",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetRegisteredPlayerIds/description",
          "source": "SyncScope: database registry read only; no live player cover is required",
          "source_sha256": "fa0369187f32be2b4de6b97c5705e9dd8b0836eca4865d6c0931525bd746fd3c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetStaticItemsForProtoMap/description",
          "source": "SyncScope: static proto-map read only; no live entity cover is required",
          "source_sha256": "946ef3974229f0c4b1ad99b63df32b21a991df4bed2595627e544312856ec0ea",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.GetTextCount/description",
          "source": "SyncScope: language-pack read only; no entity cover is required",
          "source_sha256": "26f6d7d297b25593b56e43b430ecb0e8c24e54c437df8df2452632abf8c87cae",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.IsEntityLocked/description",
          "source": "SyncScope: sync-safe probe; returns whether entity is covered without emitting diagnostics",
          "source_sha256": "72f7bb70799b2fe165de2c36a136f95eed06cd911a7096abcce88dfa049879a1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.IsTextPresent/description",
          "source": "SyncScope: language-pack read only; no entity cover is required",
          "source_sha256": "26f6d7d297b25593b56e43b430ecb0e8c24e54c437df8df2452632abf8c87cae",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.LoadCritter/description",
          "source": "SyncScope: database/registry load only; returned critter must be covered before cross-entity use",
          "source_sha256": "f315f110ea3ab2bd4052916cb5c79bcd1cd2c8945ffe5cd41c4834639eb32199",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.Lock/description",
          "source": "SyncScope: locks the Game singleton bucket; do not call Game.Sync while this lock is held",
          "source_sha256": "64a25b440f2591e93a0e417113f5918ad7f7b8637487f4799bcfbb77c2ec1699",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.LoginPlayerToExistentRecord/description",
          "source": "SyncScope: requires notLoggedInPlayer plus the prepared main-critter/map/location graph; a live reconnect\nadditionally requires the existing player. Login preserves the caller-provided cover",
          "source_sha256": "bbea292cd667538a3cd638d9378b2268bb731bc9bbec1fbb95ca69696c8d8ee6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.LoginPlayerToNewRecord/description",
          "source": "SyncScope: requires notLoggedInPlayer; login mutates that player/session record",
          "source_sha256": "33da6c82da8b7d1b0480639a1dcbf7ddb1aca098349004da2a90de597aaa9e7e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.LoginPlayerToTempSession/description",
          "source": "SyncScope: requires notLoggedInPlayer; login mutates that player/session record",
          "source_sha256": "33da6c82da8b7d1b0480639a1dcbf7ddb1aca098349004da2a90de597aaa9e7e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.MoveItem%232ed0d82a6f587a26/description",
          "source": "SyncScope: requires item + current item parent + destination container item",
          "source_sha256": "799c2e3d833a4d6b6937d9ce970259b9af282afbfab7191d5abb967133bc90bb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.MoveItem%23883528ad0763e772/description",
          "source": "SyncScope: requires item + current item parent + destination map",
          "source_sha256": "6073e20f0ef4397b5283f7e7a0a98788c8fc0966a15fd3330e06bcc6705bb4c8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.MoveItem%23c26f82c316789816/description",
          "source": "Moves the complete item to the destination critter and returns it, or null if the move removes it",
          "source_sha256": "0ab1b7cc8f41b4f167bfccaa7f2634bed699a5e2541de35e9018a8d058883ea0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.MoveItems%235402fba4af9b29a1/description",
          "source": "SyncScope: requires destination critter + every item and its current parent",
          "source_sha256": "a7c10e8f94c49c53610ca65a9b545e7314f655e99a2ced849c741607de9386a1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.MoveItems%238a09125d1c5aeacb/description",
          "source": "SyncScope: requires destination container item + every item and its current parent",
          "source_sha256": "65255aec5889c5991c59d8024f75f32cac38bb1ea44ca104ebba2a8394caf5f4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.MoveItems%23efe80393199559d9/description",
          "source": "SyncScope: requires destination map + every item and its current parent",
          "source_sha256": "8df82ec1d0d4193748efea73da46337c80d50fd3fd1bc114124ce35a0fefeff4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.SetSynchronizedTime/description",
          "source": "SyncScope: requires Game.Lock singleton; mutates global synchronized time, not a live entity",
          "source_sha256": "5584d806bff3746b6318cea93df7bfcc244f0f2d0126b69ac5b88fdfe151a6da",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.Sync%233a28adb1be02af8c/description",
          "source": "SyncScope: replaces current cover with entity plus engine auto-widen partners",
          "source_sha256": "4a6262f59d75bc1ce728fa65babf250cce0fc518744b1dbfdbdf2bf18ca7b38f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.Sync%238a5e8bb38f1776db/description",
          "source": "SyncScope: replaces current cover with all entities plus engine auto-widen partners",
          "source_sha256": "6318fe0e430e8013e1f5ec3f39912b91fad7221732c66e9afe3fea8e251620cf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.Sync%23a0c5737d3ba111b8/description",
          "source": "SyncScope: replaces current cover with all non-null entities plus engine auto-widen partners",
          "source_sha256": "c2c9368c92a2a5a13a74d7455d30efd2fece204a28d568d7f536dddad70681bb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.Sync%23b42b6f6d6b684d2a/description",
          "source": "SyncScope: replaces current cover with both entities plus engine auto-widen partners",
          "source_sha256": "538bd93a8e8bf59b76b5bb13547af3d8489ecbf5f0a47effd7bd3b35a3b24b00",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.SyncRelease/description",
          "source": "SyncScope: releases the full held set — the entity cover AND any singleton Game.Lock entries\n(SyncContext::Release drains both buckets); a Game.Lock taken before this call needs no Unlock after it",
          "source_sha256": "e55d330ecbd77caa9052b5f2dcf94dfaf46517affda3d6c761fa42190c4adebe",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.SyncWiden/description",
          "source": "Widens the current synchronization cover in place to include the supplied live entities",
          "source_sha256": "1e2beb0e7732b1638916b5062dd91fe9c8ea298571889d8ef9e47d8fe60eb347",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.SyncYield/description",
          "source": "Hands the current thread's whole entity cover to waiting workers and reacquires it before returning; a held Game singleton forbids this call",
          "source_sha256": "f31bb65558883f694b6f69fd24087698de3b2702245ec8c00c4bb2f4e25dfc83",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.SystemCall%235f9bd54717eb40b8/description",
          "source": "SyncScope: external process call only; requires no entity cover but must not run under unrelated entity locks",
          "source_sha256": "a75ede9a8335aad4b5a1c74111ea7dc850cbcbf93941e13796791111831fdfe3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.SystemCall%23bc91017a887fc615/description",
          "source": "SyncScope: external process call only; requires no entity cover but must not run under unrelated entity locks",
          "source_sha256": "a75ede9a8335aad4b5a1c74111ea7dc850cbcbf93941e13796791111831fdfe3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.TrySyncEntity/description",
          "source": "Resolves an entity id, acquires synchronization cover for the live entity, and reports whether it remains usable",
          "source_sha256": "f2f1d5fc852fb9d1d46cf95d34361cc4878cef48f14b202c06ff45cf1ca25bfe",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.UnloadCritter/description",
          "source": "SyncScope: requires cr + current parent map; unload mutates critter simulation state",
          "source_sha256": "2186bb3694c8d0cd67ae5b40232913920d2124cc2625afb7ea3470a6cdce2c71",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Game.Unlock/description",
          "source": "SyncScope: unlocks the Game singleton bucket; entity cover is unchanged",
          "source_sha256": "916d8ee4641c8aae325cdbefb19d75e4e0cc7a9a4fe0533a211f417221f4a1c4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Item.AddItem%23bfe6263d4ff550ad/description",
          "source": "SyncScope: requires self; creates and attaches a new inner item under the container cover",
          "source_sha256": "71f56a01a88398af7056d2da5a024b2d85f7492ea1649e68d4a98536151fc7ff",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Item.AddItem%23c6fbcb98959420b1/description",
          "source": "SyncScope: requires self; creates and attaches a new inner item under the container cover",
          "source_sha256": "71f56a01a88398af7056d2da5a024b2d85f7492ea1649e68d4a98536151fc7ff",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Item.GetCritter/description",
          "source": "SyncScope: requires self; returns holder critter when item is in critter inventory, not a new cover",
          "source_sha256": "cc57a254b3164e254ab1d1815aa41e7d3678fd7b38b80b134c9e0d775baf5878",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Item.GetItems/description",
          "source": "SyncScope: requires self; returns inner item handles covered by self while the cover remains",
          "source_sha256": "e210a7e466d0978d7b4fe0f2ea62b639de71a5a45f79c59db33e144c322f8f37",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Item.GetMap/description",
          "source": "SyncScope: requires self; may also read holder critter/map parent chain, returned map is not covered for later reads",
          "source_sha256": "c4124a4ab696a2e9795c669ab16f16666785038578193527bf3b7ccece6e9e49",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Item.GetMapPosition/description",
          "source": "SyncScope: requires self; may also read holder critter/map parent chain, returned map is not covered for later reads",
          "source_sha256": "c4124a4ab696a2e9795c669ab16f16666785038578193527bf3b7ccece6e9e49",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Item.RefreshVisibility/description",
          "source": "SyncScope: requires self + current map when map-owned; refreshes map visibility/blocking caches",
          "source_sha256": "f04e72224e9bf89a6223ef5449d22900a0feeb96ad17387363e5ca1a22738ac3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Item.SetupScript/description",
          "source": "SyncScope: requires self; init callback runs under the same cover and must widen before touching other entities",
          "source_sha256": "834a6f6d0882c8a4240b31bc41c1f21e10c123a6ae4ae02ebe741a9cec7b034e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Item.SetupScriptEx/description",
          "source": "SyncScope: requires self; init callback runs under the same cover and must widen before touching other entities",
          "source_sha256": "834a6f6d0882c8a4240b31bc41c1f21e10c123a6ae4ae02ebe741a9cec7b034e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Location.AddMap%2364169b002e08e159/description",
          "source": "SyncScope: requires self; creates and attaches a child map under the location cover",
          "source_sha256": "d419395639b24f974e73611836425382ef9b517577b06fb45323188d9cba8934",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Location.AddMap%23f4dae4b3925387ad/description",
          "source": "SyncScope: requires self; creates and attaches a child map under the location cover",
          "source_sha256": "d419395639b24f974e73611836425382ef9b517577b06fb45323188d9cba8934",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Location.GetMap%23102f60993beb7009/description",
          "source": "SyncScope: requires self; returned map is covered by self while the location cover remains",
          "source_sha256": "8fc7f726371bd3b6ef7a656e341dc6b830a913bc680874fec1a5962ecb0a0737",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Location.GetMap%23c71a7456cd1c7874/description",
          "source": "SyncScope: requires self; returned map is covered by self while the location cover remains",
          "source_sha256": "8fc7f726371bd3b6ef7a656e341dc6b830a913bc680874fec1a5962ecb0a0737",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Location.GetMapByIndex/description",
          "source": "SyncScope: requires self; returned map is covered by self while the location cover remains",
          "source_sha256": "8fc7f726371bd3b6ef7a656e341dc6b830a913bc680874fec1a5962ecb0a0737",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Location.GetMapCount/description",
          "source": "SyncScope: requires self; counts child maps covered by the location cover",
          "source_sha256": "692643e494977c88bf0b1d5da7a754a7fa641cf6d9222ff8621d9a1cfbc36ed3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Location.GetMaps/description",
          "source": "SyncScope: requires self; returned maps are covered by self while the location cover remains",
          "source_sha256": "336e028631bd8ffe17e2e9e00849862f6ae10f8c9339bb9695fb3a62eff33629",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Location.Regenerate/description",
          "source": "SyncScope: requires self; regenerates all child maps covered by the location cover",
          "source_sha256": "5185e72b2ad1fe3898aa7cec166747021e6327f7bfd0ebcac382d8379d32e4da",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Location.SetupScript/description",
          "source": "SyncScope: requires self; init callback runs under the same cover and must widen before touching other entities",
          "source_sha256": "834a6f6d0882c8a4240b31bc41c1f21e10c123a6ae4ae02ebe741a9cec7b034e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Location.SetupScriptEx/description",
          "source": "SyncScope: requires self; init callback runs under the same cover and must widen before touching other entities",
          "source_sha256": "834a6f6d0882c8a4240b31bc41c1f21e10c123a6ae4ae02ebe741a9cec7b034e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.AddCritter%231e4e76b759d6c5e8/description",
          "source": "SyncScope: requires self; creates and attaches a new critter on the map under self cover",
          "source_sha256": "2030d85e3c1014ba5be1f5aecc08f80bffff5f5e81839178d27154a7a92f746e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.AddCritter%2342310745cd07d9a7/description",
          "source": "SyncScope: requires self; creates and attaches a new critter on the map under self cover",
          "source_sha256": "2030d85e3c1014ba5be1f5aecc08f80bffff5f5e81839178d27154a7a92f746e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.AddCritter%23469abe60680fae4e/description",
          "source": "SyncScope: requires self; creates and attaches a new critter on the map under self cover",
          "source_sha256": "2030d85e3c1014ba5be1f5aecc08f80bffff5f5e81839178d27154a7a92f746e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.AddCritter%234bf2d1bf57efc238/description",
          "source": "SyncScope: requires self; creates and attaches a new critter on the map under self cover",
          "source_sha256": "2030d85e3c1014ba5be1f5aecc08f80bffff5f5e81839178d27154a7a92f746e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.AddCritter%238b44cc2e5aeaa303/description",
          "source": "SyncScope: requires self; creates and attaches a new critter on the map under self cover",
          "source_sha256": "2030d85e3c1014ba5be1f5aecc08f80bffff5f5e81839178d27154a7a92f746e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.AddCritter%23ab45ffd3c807403c/description",
          "source": "SyncScope: requires self; creates and attaches a new critter on the map under self cover",
          "source_sha256": "2030d85e3c1014ba5be1f5aecc08f80bffff5f5e81839178d27154a7a92f746e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.AddItem%233b5f3b7a0ad0569d/description",
          "source": "SyncScope: requires self; creates and attaches a new map item under the map cover",
          "source_sha256": "397d3020a4496056d3c9a2a6e891669897edcdc121e31c89651460d9bed01bcb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.AddItem%234c836c86ebb331f9/description",
          "source": "SyncScope: requires self; creates and attaches a new map item under the map cover",
          "source_sha256": "397d3020a4496056d3c9a2a6e891669897edcdc121e31c89651460d9bed01bcb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.AddItem%2393da72a5ec69c371/description",
          "source": "SyncScope: requires self; creates and attaches a new map item under the map cover",
          "source_sha256": "397d3020a4496056d3c9a2a6e891669897edcdc121e31c89651460d9bed01bcb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.AddItem%23dd69e509a0195144/description",
          "source": "SyncScope: requires self; creates and attaches a new map item under the map cover",
          "source_sha256": "397d3020a4496056d3c9a2a6e891669897edcdc121e31c89651460d9bed01bcb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.BlockHex/description",
          "source": "SyncScope: requires self; mutates manual blocking for one map hex",
          "source_sha256": "d6c6d251386b259bb338d46a1d87ada99b03e80bdc8b4998e676d6e9d700b3e6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.CheckPlaceForItem%237df5c41f5f61890c/description",
          "source": "SyncScope: requires self; reads map placement rules and item prototype data",
          "source_sha256": "0e57b27bf47f39e0d3b2bb9f0c286e5022df83f06c7dbe2fd574a30e41ec07ea",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.CheckPlaceForItem%23f95a6f1b9e4a1b61/description",
          "source": "SyncScope: requires self; reads map placement rules and item prototype data",
          "source_sha256": "0e57b27bf47f39e0d3b2bb9f0c286e5022df83f06c7dbe2fd574a30e41ec07ea",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.FindPathToAny%23049a83ae871129e5/description",
          "source": "SyncScope: requires self + cr; pathing reads map blockers and cr state",
          "source_sha256": "3d71d4138ace01a752d6e6cb0608d53f407a84a93ec517ce8c774023d6553e62",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.FindPathToAny%23d989184e940c3179/description",
          "source": "SyncScope: requires self; pathing reads map blockers and optional gag callback items",
          "source_sha256": "cb862a100b14a95320ba4e880f398d5875c06b95337b1efb4867000b873229f2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.FindReachableHexes/description",
          "source": "Answers which target hexes are reachable from the start within the configured path-length limit",
          "source_sha256": "0b0db970ebc95869d95fcc034ed9b018c72cb0c8977ab74164ba95b30658df4d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetCritter%23beaf90ce99481bb9/description",
          "source": "SyncScope: requires self; returned critter is covered by self while the map cover remains",
          "source_sha256": "530a7eddf2a40ebf64d5bcf8127ef64d8a2a2091bc0728391aa7363c23f0585e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetCritter%23cc2efc7ac9caf8b7/description",
          "source": "SyncScope: requires self; returned critter is covered by self while the map cover remains",
          "source_sha256": "530a7eddf2a40ebf64d5bcf8127ef64d8a2a2091bc0728391aa7363c23f0585e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetCritterOnHex/description",
          "source": "SyncScope: requires self; returned critter is covered by self while the map cover remains",
          "source_sha256": "530a7eddf2a40ebf64d5bcf8127ef64d8a2a2091bc0728391aa7363c23f0585e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetCritters%2381d4328569cd9426/description",
          "source": "SyncScope: requires self; returned critters are covered by self while the map cover remains",
          "source_sha256": "df26167f8968613ce787bc8efaaf34e65856627c38f0eae117857617e0062df4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetCritters%23addc705539406d44/description",
          "source": "SyncScope: requires self; returned critters are covered by self while the map cover remains",
          "source_sha256": "df26167f8968613ce787bc8efaaf34e65856627c38f0eae117857617e0062df4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetCritters%23d9bfa22ace1ec9d4/description",
          "source": "SyncScope: requires self; returned critters are covered by self while the map cover remains",
          "source_sha256": "df26167f8968613ce787bc8efaaf34e65856627c38f0eae117857617e0062df4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetCritters%23e79de6b56cb9f3b3/description",
          "source": "SyncScope: requires self; returned critters are covered by self while the map cover remains",
          "source_sha256": "df26167f8968613ce787bc8efaaf34e65856627c38f0eae117857617e0062df4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetCrittersInPath%238b046729d6d79d34/description",
          "source": "SyncScope: requires self; returned path critters are covered by self while the map cover remains",
          "source_sha256": "b0bdcdfc96f8a655e6885562184e3b4b297bead99333e5340dcabac4fefe1a86",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetCrittersInPath%23a2a00a1dfe4f3d7e/description",
          "source": "SyncScope: requires self; returned path critters are covered by self while the map cover remains",
          "source_sha256": "b0bdcdfc96f8a655e6885562184e3b4b297bead99333e5340dcabac4fefe1a86",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetCrittersInRadius/description",
          "source": "SyncScope: requires self; returned critters are covered by self while the map cover remains",
          "source_sha256": "df26167f8968613ce787bc8efaaf34e65856627c38f0eae117857617e0062df4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetCrittersOnHex/description",
          "source": "SyncScope: requires self; returned critters are covered by self while the map cover remains",
          "source_sha256": "df26167f8968613ce787bc8efaaf34e65856627c38f0eae117857617e0062df4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetCrittersWhoSeeHex%23331d6938741ba331/description",
          "source": "SyncScope: requires self; returned observer critters are covered by self while the map cover remains",
          "source_sha256": "8adaf5a13efd0992f8b0b3485cf26c98ad70f3070149e75cf9980d5ba45cc1a5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetCrittersWhoSeeHex%236295b4bbbc256992/description",
          "source": "SyncScope: requires self; returned observer critters are covered by self while the map cover remains",
          "source_sha256": "8adaf5a13efd0992f8b0b3485cf26c98ad70f3070149e75cf9980d5ba45cc1a5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetCrittersWhoSeePath/description",
          "source": "SyncScope: requires self; returned observer critters are covered by self while the map cover remains",
          "source_sha256": "8adaf5a13efd0992f8b0b3485cf26c98ad70f3070149e75cf9980d5ba45cc1a5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetHexInPath/description",
          "source": "SyncScope: requires self; path trace reads static/map blockers only",
          "source_sha256": "d1f72f895c1fa7300dfec7aeec0a1db43dfb015880d8bcb4af82812aa9da66ea",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetItem/description",
          "source": "SyncScope: requires self; returned item is covered by self while the map cover remains",
          "source_sha256": "3963d95f49b6a4fae8c7d9143508774b0c59611695ca4c9325d042568f59be44",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetItemInRadius%232c45a3b349bce706/description",
          "source": "SyncScope: requires self; returned item is covered by self while the map cover remains",
          "source_sha256": "3963d95f49b6a4fae8c7d9143508774b0c59611695ca4c9325d042568f59be44",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetItemInRadius%2343a0e23b140b9e9a/description",
          "source": "SyncScope: requires self; returned item is covered by self while the map cover remains",
          "source_sha256": "3963d95f49b6a4fae8c7d9143508774b0c59611695ca4c9325d042568f59be44",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetItemInRadius%23fe27ffaff6bf5b08/description",
          "source": "SyncScope: requires self; returned item is covered by self while the map cover remains",
          "source_sha256": "3963d95f49b6a4fae8c7d9143508774b0c59611695ca4c9325d042568f59be44",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetItemOnHex%236ece718d14bda9df/description",
          "source": "SyncScope: requires self; returned item is covered by self while the map cover remains",
          "source_sha256": "3963d95f49b6a4fae8c7d9143508774b0c59611695ca4c9325d042568f59be44",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetItemOnHex%23bde72d72df216ffd/description",
          "source": "SyncScope: requires self; returned item is covered by self while the map cover remains",
          "source_sha256": "3963d95f49b6a4fae8c7d9143508774b0c59611695ca4c9325d042568f59be44",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetItemOnHex%23fd531ae0c65b5f38/description",
          "source": "SyncScope: requires self; returned item is covered by self while the map cover remains",
          "source_sha256": "3963d95f49b6a4fae8c7d9143508774b0c59611695ca4c9325d042568f59be44",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetItems%2383c145745774df22/description",
          "source": "SyncScope: requires self; returned items are covered by self while the map cover remains",
          "source_sha256": "d17d3b485c61c17ff891edc84abc839f1c868c99227907916743cd0586bfa233",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetItems%23986ac88634199639/description",
          "source": "SyncScope: requires self; returned items are covered by self while the map cover remains",
          "source_sha256": "d17d3b485c61c17ff891edc84abc839f1c868c99227907916743cd0586bfa233",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetItems%23b851260ade7c353c/description",
          "source": "SyncScope: requires self; returned items are covered by self while the map cover remains",
          "source_sha256": "d17d3b485c61c17ff891edc84abc839f1c868c99227907916743cd0586bfa233",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetItems%23ef66ddcc26718dfe/description",
          "source": "SyncScope: requires self; returned items are covered by self while the map cover remains",
          "source_sha256": "d17d3b485c61c17ff891edc84abc839f1c868c99227907916743cd0586bfa233",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetItemsInRadius%231b2344cf4e6a8ad6/description",
          "source": "SyncScope: requires self; returned items are covered by self while the map cover remains",
          "source_sha256": "d17d3b485c61c17ff891edc84abc839f1c868c99227907916743cd0586bfa233",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetItemsInRadius%232c10a43df574d95a/description",
          "source": "SyncScope: requires self; returned items are covered by self while the map cover remains",
          "source_sha256": "d17d3b485c61c17ff891edc84abc839f1c868c99227907916743cd0586bfa233",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetItemsInRadius%2371e75da3d8138709/description",
          "source": "SyncScope: requires self; returned items are covered by self while the map cover remains",
          "source_sha256": "d17d3b485c61c17ff891edc84abc839f1c868c99227907916743cd0586bfa233",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetItemsInRadius%23e5b26ab1ca51093e/description",
          "source": "SyncScope: requires self; returned items are covered by self while the map cover remains",
          "source_sha256": "d17d3b485c61c17ff891edc84abc839f1c868c99227907916743cd0586bfa233",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetItemsOnHex%232becb51a4793de35/description",
          "source": "SyncScope: requires self; returned items are covered by self while the map cover remains",
          "source_sha256": "d17d3b485c61c17ff891edc84abc839f1c868c99227907916743cd0586bfa233",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetItemsOnHex%235db3ed64fff8551d/description",
          "source": "SyncScope: requires self; returned items are covered by self while the map cover remains",
          "source_sha256": "d17d3b485c61c17ff891edc84abc839f1c868c99227907916743cd0586bfa233",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetLocation/description",
          "source": "SyncScope: requires self; returns parent location, but does not cover it for later reads",
          "source_sha256": "52729e99bc6f89d58eab7e2ee6b590813e80f362cb3acf54b01923255ba60be9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetPathLength%23aaa618b299e12baf/description",
          "source": "SyncScope: requires self + cr; pathing reads map blockers and cr state",
          "source_sha256": "3d71d4138ace01a752d6e6cb0608d53f407a84a93ec517ce8c774023d6553e62",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetPathLength%23b14b16361e6bc348/description",
          "source": "SyncScope: requires self; pathing reads map blockers and optional gag callback items",
          "source_sha256": "cb862a100b14a95320ba4e880f398d5875c06b95337b1efb4867000b873229f2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetPlayerCritterCount/description",
          "source": "SyncScope: requires self; reads the map's player-critter membership without materializing it",
          "source_sha256": "f5727d3a73eb5fdb726a9c3b02be32fcbbf1d5ea9dc87cd115a1dd6732462b0f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetSpectatorPlayers/description",
          "source": "SyncScope: requires self; returns the map's current spectator Players. A spectator is an independent Player\nroot that neither the map nor its location cover includes, so a caller that destroys this map or its location\nmust cover every returned Player first and re-read this list to prove the membership did not change",
          "source_sha256": "13a95779b5b4a7077bcc55fb064a0924c36b134849934eed81ac22a86a765fae",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetStaticItem/description",
          "source": "SyncScope: requires self; returned static item is map-static data covered by the map cover",
          "source_sha256": "589e827ab82a681dfb955d065d27085baf300bbba15ba92046569dd16e29222f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetStaticItemOnHex%232ff535bb81b4c46e/description",
          "source": "SyncScope: requires self; returned static item is map-static data covered by the map cover",
          "source_sha256": "589e827ab82a681dfb955d065d27085baf300bbba15ba92046569dd16e29222f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetStaticItemOnHex%238f12443105465e0c/description",
          "source": "SyncScope: requires self; returned static item is map-static data covered by the map cover",
          "source_sha256": "589e827ab82a681dfb955d065d27085baf300bbba15ba92046569dd16e29222f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetStaticItems%2305085759f098a103/description",
          "source": "SyncScope: requires self; returned static items are map-static data covered by the map cover",
          "source_sha256": "9cc65d1eeb6ff5bd57ca0626b963c9769bd5b596b87faf02f1042bc2b974fa3c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetStaticItems%233d6e192e1648eca6/description",
          "source": "SyncScope: requires self; returned static items are map-static data covered by the map cover",
          "source_sha256": "9cc65d1eeb6ff5bd57ca0626b963c9769bd5b596b87faf02f1042bc2b974fa3c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetStaticItems%23ba60a4d88539cc01/description",
          "source": "SyncScope: requires self; returned static items are map-static data covered by the map cover",
          "source_sha256": "9cc65d1eeb6ff5bd57ca0626b963c9769bd5b596b87faf02f1042bc2b974fa3c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetStaticItems%23e35ab59d1c820445/description",
          "source": "SyncScope: requires self; returned static items are map-static data covered by the map cover",
          "source_sha256": "9cc65d1eeb6ff5bd57ca0626b963c9769bd5b596b87faf02f1042bc2b974fa3c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetStaticItemsInRadius%239fcecfdd954f2f40/description",
          "source": "SyncScope: requires self; returned static items are map-static data covered by the map cover",
          "source_sha256": "9cc65d1eeb6ff5bd57ca0626b963c9769bd5b596b87faf02f1042bc2b974fa3c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetStaticItemsInRadius%23b716f83c2f22af43/description",
          "source": "SyncScope: requires self; returned static items are map-static data covered by the map cover",
          "source_sha256": "9cc65d1eeb6ff5bd57ca0626b963c9769bd5b596b87faf02f1042bc2b974fa3c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetStaticItemsInRadius%23f3c9729ff42f4ae8/description",
          "source": "SyncScope: requires self; returned static items are map-static data covered by the map cover",
          "source_sha256": "9cc65d1eeb6ff5bd57ca0626b963c9769bd5b596b87faf02f1042bc2b974fa3c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetStaticItemsOnHex%234a9a56826105ef2b/description",
          "source": "SyncScope: requires self; returned static items are map-static data covered by the map cover",
          "source_sha256": "9cc65d1eeb6ff5bd57ca0626b963c9769bd5b596b87faf02f1042bc2b974fa3c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetStaticItemsOnHex%235d15ee5943a3edd0/description",
          "source": "SyncScope: requires self; returned static items are map-static data covered by the map cover",
          "source_sha256": "9cc65d1eeb6ff5bd57ca0626b963c9769bd5b596b87faf02f1042bc2b974fa3c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.GetWallHexInPath/description",
          "source": "SyncScope: requires self; path trace reads wall blockers only",
          "source_sha256": "ea714299efc882c9f2acb6f0af7a4ab75a94580761dd7ddfe5d4fd54a3274bfc",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.IsHexMovable/description",
          "source": "SyncScope: requires self; reads map blocking state",
          "source_sha256": "f0b49a72fe76f06b8ca503b3f171ed09681d4deaddf0b3177c26760690d3ad69",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.IsHexShootable/description",
          "source": "SyncScope: requires self; reads map shoot-blocking state",
          "source_sha256": "7b6c33cdd1a19f4ea49277d524c39d412254aed54c88ccda247a0bb36cafe2dc",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.IsHexValid/description",
          "source": "SyncScope: requires self; reads map size only",
          "source_sha256": "721b11a7bbef9e490eff1c017660d3fc07fda441f87646f15872e41381c345ae",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.IsHexesMovable/description",
          "source": "SyncScope: requires self; reads map blocking state",
          "source_sha256": "f0b49a72fe76f06b8ca503b3f171ed09681d4deaddf0b3177c26760690d3ad69",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.IsOutsideArea/description",
          "source": "SyncScope: requires self; reads map outdoor/indoor area state",
          "source_sha256": "e133dc3f7b858708bb852c0eb0f97c4e0da8531ed843b0ff92b6744235f82101",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.MoveHexByDir%2362392271e1b42030/description",
          "source": "SyncScope: requires self; uses map size for a pure coordinate step",
          "source_sha256": "01eb530a27238d58d577534ede09ede04af1f1b791ae2aade767c47ace817df4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.MoveHexByDir%23b39016610645244b/description",
          "source": "SyncScope: requires self; uses map size for pure coordinate steps",
          "source_sha256": "fe0796d0a7d2cd16fe025795710315c771969eaa36845ca0507e17edba0fa5f7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.Regenerate/description",
          "source": "SyncScope: requires self; regenerates map content and placement caches",
          "source_sha256": "385f054228016fd8739d6a9dbbf0ef15c40ff15d20f6f331794395b53892a15b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.RemoveStaticItem%237b30d7a907ece580/description",
          "source": "Removal is one-way for the life of the map instance: clients already on the map are only ever told to drop\na static item, so taking an id back out of the list is rejected rather than silently ignored",
          "source_sha256": "638689478bfb191cc85bf57c60122124ba97abd90f0c3bd2af90fe5a52d2f3b9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.RemoveStaticItem%23a89f4bb2ef62c35a/description",
          "source": "SyncScope: requires self; mutates the map's own removal list, which the property sync fans out to clients",
          "source_sha256": "eb4f1f62d700eb201e01f2c5223e001f9bc4a03382bf5214fb8875834d2b0188",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.SetupScript/description",
          "source": "SyncScope: requires self; init callback runs under the same cover and must widen before touching other entities",
          "source_sha256": "834a6f6d0882c8a4240b31bc41c1f21e10c123a6ae4ae02ebe741a9cec7b034e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.SetupScriptEx/description",
          "source": "SyncScope: requires self; init callback runs under the same cover and must widen before touching other entities",
          "source_sha256": "834a6f6d0882c8a4240b31bc41c1f21e10c123a6ae4ae02ebe741a9cec7b034e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.UnblockHex/description",
          "source": "SyncScope: requires self; mutates manual blocking for one map hex",
          "source_sha256": "d6c6d251386b259bb338d46a1d87ada99b03e80bdc8b4998e676d6e9d700b3e6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Map.VerifyTrigger/description",
          "source": "SyncScope: requires self + cr; trigger verification may inspect/mutate critter-facing map state",
          "source_sha256": "ca5eeefb067126cd7c2535535f546b5b097f139c33b365cc96fc29a090d348d9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Player.Disconnect/description",
          "source": "SyncScope: requires self; closes this player's connection",
          "source_sha256": "ecd0b689b0f23f048bd713863f9700ebcb25bed34801b1a227661037ee670497",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Player.GetControlledCritter/description",
          "source": "SyncScope: requires self; returns the controlled critter handle, auto-widened when self is Sync'd",
          "source_sha256": "1cdc01e425e5acaf744fca1e7a5eed7608dcf117fa22b500d72758e40ea3a619",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Player.GetDisconnectReason/description",
          "source": "SyncScope: requires self; reads connection state only",
          "source_sha256": "5ef864991f8f9527b6442b8b867c15795728a92dd9ef5cdbc242859b25077cf5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Player.GetHost/description",
          "source": "SyncScope: requires self; reads connection endpoint only",
          "source_sha256": "4e1ab4e9cb1154c192d00029a15a2918cbe987f2e4abb4b839936818786782f5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Player.GetPort/description",
          "source": "SyncScope: requires self; reads connection endpoint only",
          "source_sha256": "4e1ab4e9cb1154c192d00029a15a2918cbe987f2e4abb4b839936818786782f5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Player.GetViewMapTarget/description",
          "source": "SyncScope: requires self; returns the map self currently spectates, but does not cover it for later reads.\nThe view target is an independent Map root that self's cover does not include, so a caller that reads or\nmutates it covers the returned map first and re-reads this handle to prove the view did not change",
          "source_sha256": "8fcc139634f3f341b5776e24dca1276bf3d9e3d9c0faba313b0f4185541e2390",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Player.HardDisconnect/description",
          "source": "SyncScope: requires self; forcibly closes this player's connection",
          "source_sha256": "4bb3d5a6522ea8da83c28a55a1bed14b9e89bcefd4955b9d279dd754961a1bab",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Player.RefreshCritterMoving/description",
          "source": "SyncScope: requires self + cr; sends movement state for a critter visible on player's current map",
          "source_sha256": "ca9abf72ed21eaa55f003757509ca687373b9e2d98c2f7ae879a21b597f603fd",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Player.ResetViewMap/description",
          "source": "SyncScope: requires self; clears view-map state, no entity reparent",
          "source_sha256": "4e46fb9a041249f224ccb9c1453ca709908dc6f00372d840558dffb29c80b102",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Player.SetName/description",
          "source": "SyncScope: requires self; mutates player name only",
          "source_sha256": "1f161df84d7a7cf9ee5592e79bb4a98de06bd52e686c2dc99cbca425ccfdd3d7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Player.SwitchCritter/description",
          "source": "SyncScope: requires self + cr when cr is non-null; before linkage callers must explicitly cover both",
          "source_sha256": "be9ab9e37d76e28c95b5314c898efe13c9c7aa9018a0576f414f69d5bfc46eaf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Player.UnloadMap/description",
          "source": "SyncScope: requires self; clears view-map state and sends unload, no entity reparent",
          "source_sha256": "fea79f895515bcbb899aaff66d198aeb59f11dac6dcf6aca5cfa702ed7f12074",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.method.server.Player.ViewMap/description",
          "source": "SyncScope: requires self + map + map location; sends load-map data and opens a map view for self",
          "source_sha256": "d4466057c483cb3399185e161be602be2cac48f5abf86f656c371a62ae00f78e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Critter.AttachMaster/description",
          "source": "Identifier of the attachment master; zero when the critter is not attached",
          "source_sha256": "7322c3094e8eed388df1fba240578d7855801138f86b0c715e6941ef08babbe4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Critter.Condition/description",
          "source": "Current life-state condition used by animation, filtering, and gameplay queries",
          "source_sha256": "2afcc291a8b5a505cd1930649d35673632251f86ff1ce75de5e9b6ec964f3e33",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Critter.ControlledByPlayer/description",
          "source": "Classifies the critter as player-controllable independently of its current online state",
          "source_sha256": "6fe4912752db582cec69d3de354ada545935ac26ed477846853ab955c2b5c3c0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Critter.CustomHolderEntry/description",
          "source": "For a custom entity, names the holder entry through which it is attached",
          "source_sha256": "1050e666d84a94010a810b27fa9d7f3ad171a30f9a7d8d759bfb66b9dc73a348",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Critter.CustomHolderId/description",
          "source": "For a custom entity, stores the persistent identifier of its owning holder; zero when the holder has no persistent identifier",
          "source_sha256": "f84e0928a758c5e497d28a042fd88d98879212b1ac2f6931f329526772f507b3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Critter.DeadDrawNoFlatten/description",
          "source": "Keeps a dead critter in the normal critter draw order instead of the flattened dead-critter order",
          "source_sha256": "891621e672774d5264b2ffb1613683cb9ab83fad4f2f877721d48851f40bd601",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Critter.Dir/description",
          "source": "Current facing direction on the map grid",
          "source_sha256": "ec2df791dfe2567ef28726bdb6eb1631477d238ed40d57f9cfcffaaa445ddede",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Critter.Elevation/description",
          "source": "Vertical rendering elevation of the critter",
          "source_sha256": "0d356e2b8b3c58596328c573c25bb438a96615db22c714bd5c0e23932af67cba",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Critter.ExplicitlyPersistent/description",
          "source": "Marks an entity as independently persistent rather than persistent only through containment by another entity",
          "source_sha256": "909a82b41efa2f84a7e1fd273e8267c3b69fc21f3390ff505defbb973cf11e51",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Critter.GlobalMapTripId/description",
          "source": "Server-assigned identifier shared by members of the same current global-map trip",
          "source_sha256": "150133a813a0a180910efe456a696c997b1e7e0f9e443affb685091d90f2b678",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Critter.Hex/description",
          "source": "Origin hex currently occupied by the critter on its map",
          "source_sha256": "4673dc90632e2343fafd7d22411b309cb8670c1153963561fbbbf3bf76c08227",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Critter.HexOffset/description",
          "source": "Sub-hex map-space offset used by movement interpolation and rendering",
          "source_sha256": "d5b05576494249b7957e87938fb0c13671789b2fe9b5b252914a906a3fedc9bc",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Critter.HideSprite/description",
          "source": "Hides the current client map sprite without removing the critter's map presence",
          "source_sha256": "f65ac8e86db89b74cfbdc7b4435eecb83865fb9f2f5c899a1fa9208e9b141445",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Critter.InitScript/description",
          "source": "Server initialization function called after the critter-init event for a newly created or restored critter",
          "source_sha256": "b4b717c3f31356bff2f72d8197f7658746d0b2af05f9fb966c335c9f074412de",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Critter.IsAttached/description",
          "source": "Reports that this critter currently follows another critter as an attachment",
          "source_sha256": "b8587bbd99ce1fc420a5c32a110491c986d513981939362dacd32bf490be8d36",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Critter.IsChosen/description",
          "source": "Reports that this critter is the locally chosen critter on the current client",
          "source_sha256": "381e130d01d4c815747cf6091918b078756c0360817a237010518e9b5b3aee79",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Critter.IsPlayerOffline/description",
          "source": "Client-side connection state reported for a player-controlled critter",
          "source_sha256": "f153b3cf89aebef940af174bddc8a7f977265dfc401cd362959b2fc3a9246e71",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Critter.ItemIds/description",
          "source": "Persistent identifiers of the items directly held in the critter's inventory",
          "source_sha256": "b36a3cf283ea2690381cf7a72659b34381f660c9436d905a97d00694169ed90d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Critter.LightColor/description",
          "source": "RGBA color emitted by the critter's client-side light source",
          "source_sha256": "88d328cc2723924031ded0647f20671259a644ea8b912439ab1560bf25e463cd",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Critter.LightDistance/description",
          "source": "Radius in hexes reached by the critter's client-side light source",
          "source_sha256": "f25441db4ccf37f9477696ec349a9229623d2e1b5d2d1a2a12e1d2f1cb062573",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Critter.LightFlags/description",
          "source": "Bit mask controlling global, inverse, and direction-blocking behavior of the light source",
          "source_sha256": "8046c6aff9fc965d52aa6f346beacf6560ff28bdb8b15e8346f029d6fd0ddbc4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Critter.LightIntensity/description",
          "source": "Signed percentage intensity of the critter's client-side light source",
          "source_sha256": "f14dfed224d2691eccdc99cd59b5d17080fa909760b4424f94a30b2c9a361c0e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Critter.LightSource/description",
          "source": "Enables a client-side map light source centered on this critter",
          "source_sha256": "81799139e0e90b3da0d8ff6cc9c815d3b7c033f5507e7a9d1eaa6e4673557b8c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Critter.LookDistance/description",
          "source": "Maximum map-view distance in hexes used by server visibility processing",
          "source_sha256": "c8034068f82917328834377f3d8b396d9ce4402ba0b433b81cadfbd44f8c031f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Critter.MapId/description",
          "source": "Identifier of the map currently containing the critter; zero while it is on the global map",
          "source_sha256": "59c6b611b4325b1c6c16dc0993104036c13ddaf388c8b2c22a948c745f285633",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Critter.ModelLayers/description",
          "source": "Fixed-size client values passed to the 3D model layer and animation resolver",
          "source_sha256": "1d2a56becb527cfd62f862977b11e16a1c119a556c7eec6702746d191b605974",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Critter.ModelName/description",
          "source": "Sprite or 3D model resource used to present the critter",
          "source_sha256": "69d124a0012e5742bdf62f5aee5c124f95d439b041e250f0006d87511f5ad63d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Critter.MovingSpeed/description",
          "source": "Current server movement speed published for active movement",
          "source_sha256": "f473809fb05663ef513259a86b455e883426981039533dd06e89483977da8c01",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Critter.Multihex/description",
          "source": "Radius in hexes occupied by the critter in movement, pathfinding, and distance checks",
          "source_sha256": "8243c8fafcd3fb39b49333e131ef30daff5ed37b5a7dd63c229c8facd67aaf19",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Critter.NameOffset/description",
          "source": "Vertical pixel adjustment applied to the critter name label",
          "source_sha256": "c1808ffa3b13587c823c7eef6cab1adc0e5d2d2987c2bc4ef07687ea887f74d2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Critter.ScaleFactor/description",
          "source": "3D model scale in thousandths; zero selects the default scale of 1000",
          "source_sha256": "de043ac920f0dcf58b124093ede046063447afb7ad4d69db37585cbf6b868152",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Critter.ShowCritterDist1/description",
          "source": "Optional first visibility-event distance in hexes; zero disables this distance group",
          "source_sha256": "f0fa76d680d51b3ca727d663ae6456c87525ae6da02daf967bce05532f3388b4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Critter.ShowCritterDist2/description",
          "source": "Optional second visibility-event distance in hexes; zero disables this distance group",
          "source_sha256": "b12e13e50471425a135e4e9f12be606edc4fcf3ae917ba5a6ff5d8d2573b7548",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Critter.ShowCritterDist3/description",
          "source": "Optional third visibility-event distance in hexes; zero disables this distance group",
          "source_sha256": "3c063f897d07ccd7dc2d66e41a791e0e37c5d6793fa356076deaaade0b0adcfe",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Critter.VisibilityMode/description",
          "source": "Visibility detail mode assigned to this critter from the current client's viewpoint",
          "source_sha256": "ba9e8d77f08fbaee8cd10f84866c21c5d60edd7a4f0c31ff9af07d0fe57c77fa",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Game.CustomHolderEntry/description",
          "source": "For a custom entity, names the holder entry through which it is attached",
          "source_sha256": "1050e666d84a94010a810b27fa9d7f3ad171a30f9a7d8d759bfb66b9dc73a348",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Game.CustomHolderId/description",
          "source": "For a custom entity, stores the persistent identifier of its owning holder; zero when the holder has no persistent identifier",
          "source_sha256": "f84e0928a758c5e497d28a042fd88d98879212b1ac2f6931f329526772f507b3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Game.ExplicitlyPersistent/description",
          "source": "Marks an entity as independently persistent rather than persistent only through containment by another entity",
          "source_sha256": "909a82b41efa2f84a7e1fd273e8267c3b69fc21f3390ff505defbb973cf11e51",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Game.FrameDeltaTime/description",
          "source": "Elapsed monotonic time between the current and previous frame advances",
          "source_sha256": "80b962a4dafcdc037c383b89a00f41a366509487ff4d8dc9a55c1e33185d1b60",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Game.FrameTime/description",
          "source": "Monotonic engine time captured for the current frame",
          "source_sha256": "4ac1adaf0ecb932d611fde730016a70376e7106562925745fdb1d61cc4b8df33",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Game.FramesPerSecond/description",
          "source": "Frame count measured during the most recently completed one-second sampling interval",
          "source_sha256": "af7bcd808b483f6ba7ba99c5cb433354ca787d0805e517296552e9d66a7b18f1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Game.GlobalDayTime/description",
          "source": "Current position of the global day-light cycle, measured in minutes and controlled by game scripts",
          "source_sha256": "48b727c407fd07178ba3edb0eb1b8cb786cd993ac01eacc11393f49db28fbb7a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Game.HistoryRecordsId/description",
          "source": "Persistent high-water mark used to allocate server history-record identifiers",
          "source_sha256": "04fcda552bf4bc32e4565732e5d7f56670f4592df70a4d7217559518c448d04e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Game.LastEntityId/description",
          "source": "Persistent high-water mark used to allocate durable entity identifiers",
          "source_sha256": "33c99a5565bd0372c65279444d594e7009d4d7c0b5c56975b92e55d9ef098157",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Game.LastGlobalMapTripId/description",
          "source": "Last server-assigned identifier for a global-map trip",
          "source_sha256": "f4713b13d34c539e17b09f7c87720671fa595feb006f13739d920c4bfed419e2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Game.SynchronizedTime/description",
          "source": "Current synchronized game time shared by the server and clients and persisted by the server",
          "source_sha256": "b3b19825ecbf47932380edbc656ddb32ec464f78f78095ebbce4d777410e3dd9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.ImGui.CustomHolderEntry/description",
          "source": "For a custom entity, names the holder entry through which it is attached",
          "source_sha256": "1050e666d84a94010a810b27fa9d7f3ad171a30f9a7d8d759bfb66b9dc73a348",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.ImGui.CustomHolderId/description",
          "source": "For a custom entity, stores the persistent identifier of its owning holder; zero when the holder has no persistent identifier",
          "source_sha256": "f84e0928a758c5e497d28a042fd88d98879212b1ac2f6931f329526772f507b3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.ImGui.ExplicitlyPersistent/description",
          "source": "Marks an entity as independently persistent rather than persistent only through containment by another entity",
          "source_sha256": "909a82b41efa2f84a7e1fd273e8267c3b69fc21f3390ff505defbb973cf11e51",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.AlwaysHideSprite/description",
          "source": "Prevents the item sprite from being drawn at runtime and hides it by default in Mapper",
          "source_sha256": "35bbd94aefd466f34cc5b9d2561f4cd554850378266d72e52df6b764d0a7d1d2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.Colorize/description",
          "source": "Enables ColorizeColor tinting for the item's map sprite",
          "source_sha256": "fc4a04b90caa7c6602957d4a260cffa28ad283acc864ed3116d2f5339e341817",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.ColorizeColor/description",
          "source": "RGBA tint applied when Colorize is enabled; alpha also supplies the default sprite opacity",
          "source_sha256": "ebe85964e70fa2e7f5b2c315636c32f31b3a0a5115fb6d3f01eaf2ee68bd0de2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.ContainerId/description",
          "source": "Identifier of the parent item while Ownership is ItemContainer; zero otherwise",
          "source_sha256": "c85a3e9812e7fc48a9e9a55573956448664d61f40174c8a48d8b6844555da73a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.ContainerStack/description",
          "source": "Project-defined grouping key used to select and merge items inside a container",
          "source_sha256": "a88ea8a1f9f4099039b20d4ecede9d8894dd4fcda99b506ce39b39fd0b108481",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.Corner/description",
          "source": "Wall-corner orientation used by map lighting and transparent-foreground behavior",
          "source_sha256": "daaaf946091f088f124d52c8573ad8e0b445dd278ffb9abb2bd6149263438b57",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.CritterId/description",
          "source": "Identifier of the owning critter while Ownership is CritterInventory; zero otherwise",
          "source_sha256": "13163e321142cdc5a2132d01d1196e72b7881953b23a53297d7b9456720b3d56",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.CritterSlot/description",
          "source": "Inventory or equipment slot occupied while the item belongs to a critter",
          "source_sha256": "04356d847e6a4adad69bf5df6099ddd423664b953973627513ed2fb933c60886",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.CustomHolderEntry/description",
          "source": "For a custom entity, names the holder entry through which it is attached",
          "source_sha256": "1050e666d84a94010a810b27fa9d7f3ad171a30f9a7d8d759bfb66b9dc73a348",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.CustomHolderId/description",
          "source": "For a custom entity, stores the persistent identifier of its owning holder; zero when the holder has no persistent identifier",
          "source_sha256": "f84e0928a758c5e497d28a042fd88d98879212b1ac2f6931f329526772f507b3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.DisableEgg/description",
          "source": "Disables transparent-foreground egg processing for the item's map sprite",
          "source_sha256": "166fd72b77aab431e0f9a90190521321c69a4cc47972ada45f5515f2eaef9ff6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.DrawFlatten/description",
          "source": "Renders the item in a flat map pass instead of the normal depth-sorted item pass",
          "source_sha256": "8c42c5f7962a272d8b9e70aade0133b2beae3deb1203b7f6b0f01b2d864c097c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.DrawMultihexLines/description",
          "source": "Draws repeated item sprites on footprint hexes generated by MultihexLines",
          "source_sha256": "e1f92c7770e5a03345518079545fbedfff6a27a97c418d31d7d98e5399525ae3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.DrawMultihexMesh/description",
          "source": "Draws repeated item sprites on the explicit MultihexMesh hexes",
          "source_sha256": "c24ca063a44af2b82ae183fab57ad10825260e0e22e2f52d4d288d5be2d51181",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.DrawOrderSubLayer/description",
          "source": "Fine ordering inside the item's primary draw-order layer; synchronized when changed at runtime",
          "source_sha256": "55fb2bfaa60af95d8078bb9e8e7479fcf877e7408b86da776626d6946d46a736",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.Elevation/description",
          "source": "Vertical rendering elevation of the map item",
          "source_sha256": "1a2a1b15c27eca391a5e41748dc34b495971a1be9dd6d1f4bf7c1cb3a34cd53b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.ExplicitlyPersistent/description",
          "source": "Marks an entity as independently persistent rather than persistent only through containment by another entity",
          "source_sha256": "909a82b41efa2f84a7e1fd273e8267c3b69fc21f3390ff505defbb973cf11e51",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.Hex/description",
          "source": "Origin map hex used while the item is placed on a map",
          "source_sha256": "dffc781d0273108a8166191f1ee7febb58907456ba4a0c8571a8548e5dbf7a33",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.Hidden/description",
          "source": "Server visibility flag that suppresses a dynamic item from client views while set",
          "source_sha256": "637af3b02f94ec0a51dfc10801f441ca0dc7c2a5ad7f5bde36e947edcdecd812",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.HideSprite/description",
          "source": "Hides the current client map sprite without removing the item's map presence",
          "source_sha256": "03595d24e3807b1bd2adda9a5d7fbc3e87341f55193ecc8f6ed0ef53830613db",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.InitScript/description",
          "source": "Server initialization function called after the item-init event for a newly created or restored item",
          "source_sha256": "92c8c2cd2af271cbebda880be7310c5cdae7e3a75135bc0873b8dbb4dfa56b82",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.InnerItemIds/description",
          "source": "Persistent identifiers of the items directly contained by this item",
          "source_sha256": "e0d3bca11c2ebef564c2c5adaea9ac4544cd821ae15094f6fd6791ea1405a876",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.IsGag/description",
          "source": "Marks a blocking item as conditionally passable through the map gag callback",
          "source_sha256": "d6ead5d157ce9a339e1981db6301c067f80773f5dc0006728c6a64a4efb2eb6d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.IsRoofTile/description",
          "source": "Selects roof rendering instead of ground-tile rendering when IsTile is enabled",
          "source_sha256": "b019a3275120fddbf135b646be5d3691f333ec42ea2c77142e8263a5d66bc64a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.IsScenery/description",
          "source": "Classifies the item as scenery for Mapper filtering and flat-render lighting rules",
          "source_sha256": "e41d65a20f9fbd4390072cc498f637608fde707756922c1a5692e7612c840c4a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.IsTile/description",
          "source": "Classifies the item as a ground or roof tile rendered in a tile layer",
          "source_sha256": "03a9b963535708e07109769fdd25dea31bae0958dda28e54cc151695caa469cb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.IsTrigger/description",
          "source": "Includes the item in map trigger lookup and movement-trigger processing",
          "source_sha256": "7cfbc5d256b1e4dfb364fe05767e6bbb741d5b9696c0b4e07cbb0047694970c1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.IsWall/description",
          "source": "Classifies the item as a wall for Mapper filtering and map presentation",
          "source_sha256": "5dc61a298f187be1900a6a22c3319644558b714cd962655e392997b97f85b668",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.LightColor/description",
          "source": "RGBA color emitted by the item's light source",
          "source_sha256": "571e9fe8175d07be7ddd5db7a81dc0bcd27976f8e519632996682416dbb95931",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.LightDistance/description",
          "source": "Radius in hexes reached by the item's light source",
          "source_sha256": "ad159f0529a1fdffa5884404e3e1f88a13da7381faf87c08f13a0918ab29bc6e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.LightFlags/description",
          "source": "Bit mask controlling global, inverse, and direction-blocking behavior of the light source",
          "source_sha256": "8046c6aff9fc965d52aa6f346beacf6560ff28bdb8b15e8346f029d6fd0ddbc4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.LightIntensity/description",
          "source": "Signed percentage intensity of the item's light source",
          "source_sha256": "b58932e26f9f005302377f2cfa1110c75ded4c1ea422638619290be9f1ed37ba",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.LightSource/description",
          "source": "Enables a map light source centered on this item",
          "source_sha256": "d287baff16708fe3fc54acc82e11370dbe4c75368b824c1217b6701811552284",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.LightThru/description",
          "source": "Allows map light propagation through every hex occupied by the item",
          "source_sha256": "1037af338e9b7376b3a18c459cdfadf082ea98fba93afd2c1cd145c9a404f823",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.MapId/description",
          "source": "Identifier of the owning map while Ownership is MapHex; zero otherwise",
          "source_sha256": "2c46f45492a4e7e8b84eea7f0d09c5ddc481e712e59c1f4cb3f1a3847a38f066",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.MultihexGeneration/description",
          "source": "Mapper coalescing strategy used to build MultihexMesh from compatible item placements",
          "source_sha256": "fc29904b19512b32c28da26f6e561fade5d8e0e100c83d4cf5b83fd90d713b77",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.MultihexLines/description",
          "source": "Direction and step-count pairs that trace additional footprint hexes from each mesh origin",
          "source_sha256": "cb8c7af3792f23d28e56ca10e77c1e42880daa622880376c303f6e8759237e73",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.MultihexMesh/description",
          "source": "Explicit map hexes that share this item's footprint and optional repeated sprite",
          "source_sha256": "64d3fad57d3b2158528f52ee892636e53709072c139e7c15d4e7cf2b36cd7e3b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.NoBlock/description",
          "source": "Allows movement through every hex occupied by the item",
          "source_sha256": "47c83de8812ede09ff101593fe047c00fe7fe8ad0df398ad0825d74c6e938d8c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.NoHighlight/description",
          "source": "Prevents the client from applying normal item highlight presentation",
          "source_sha256": "3913f9b16e667e72c3057841165a1c035be5191e2d72d60203a709d27322eb80",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.NoLightInfluence/description",
          "source": "Prevents ambient map lighting from tinting the item's sprite",
          "source_sha256": "a0eac1c042bcb0ffd45a7ce06e9181e22ccf36207156193ed9c52f5ce387d08b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.Offset/description",
          "source": "Pixel offset applied to the item's map sprite from its origin hex",
          "source_sha256": "7a272511540548ee8b56d6ed151072068dcc37b4a6dfa1e42ea13f148ad16132",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.Ownership/description",
          "source": "Current placement category: map hex, critter inventory, item container, or nowhere",
          "source_sha256": "7f18b6727e88f6a9f2dd9e4ac8fa9f2954debee9351d8c1d9cda9660afc20d7f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.PicInv/description",
          "source": "Sprite resource used to present the item in inventory interfaces",
          "source_sha256": "a14861a79d378dd986d0c5a1f31cb43d745b23dcd5502f66ca74fa8e5a4f15ee",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.PicMap/description",
          "source": "Sprite resource used to render the item on a map",
          "source_sha256": "ab14f55b75cc41008483bf44e6eb5d60046db1eb89c820cc29227f941f262567",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.ShootThru/description",
          "source": "Allows projectile traces through every hex occupied by the item",
          "source_sha256": "bc1513365e7604c60ab42986e2e235bf63ae81f5081ee66377dbc348d0a157ae",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.Static/description",
          "source": "Marks map-authored item data as static scenery rather than a dynamic item entity",
          "source_sha256": "5fd25d0321400cdb6825f1b256dbf52f6e3a41c4be58a508e6375fe045a30fb2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.StaticScript/description",
          "source": "Server callback invoked when a critter interacts with this static item",
          "source_sha256": "80accddad61a6cbeb107b37c7e6fc4691023d6304302fbd93627672e584a67ea",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.TileLayer/description",
          "source": "Zero-based ground- or roof-tile draw layer selected for a tile item",
          "source_sha256": "a406efdae80c13b34e1cd584889d5d940a6943a27c70fd1f486b7f7a37b131cf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Item.TriggerScript/description",
          "source": "Server callback invoked when a critter enters or leaves this trigger item",
          "source_sha256": "8fde30c2a2608ca0eb769ffd696ba7fee6c5df33a2002299a603d40e4fe273d7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Location.CustomHolderEntry/description",
          "source": "For a custom entity, names the holder entry through which it is attached",
          "source_sha256": "1050e666d84a94010a810b27fa9d7f3ad171a30f9a7d8d759bfb66b9dc73a348",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Location.CustomHolderId/description",
          "source": "For a custom entity, stores the persistent identifier of its owning holder; zero when the holder has no persistent identifier",
          "source_sha256": "f84e0928a758c5e497d28a042fd88d98879212b1ac2f6931f329526772f507b3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Location.ExplicitlyPersistent/description",
          "source": "Marks an entity as independently persistent rather than persistent only through containment by another entity",
          "source_sha256": "909a82b41efa2f84a7e1fd273e8267c3b69fc21f3390ff505defbb973cf11e51",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Location.InitScript/description",
          "source": "Server initialization function called after the location-init event for a newly created or restored location",
          "source_sha256": "06ca5c2f44541f145f85a9eb9c2d230cb115412a59951ee233501cefa4eeae3a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Location.MapIds/description",
          "source": "Persistent identifiers of the maps owned by this location, in location-map order",
          "source_sha256": "c534f6bf02f4b86795dfab21f1c845908827df13ba74c7a0a6d9b831e615232e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Map.CritterIds/description",
          "source": "Persistent identifiers of the non-player critters owned by this map",
          "source_sha256": "383b430c8c33bf1885c300520c17fd38067ff56b78d668e11ac9244035dd8e8f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Map.CustomHolderEntry/description",
          "source": "For a custom entity, names the holder entry through which it is attached",
          "source_sha256": "1050e666d84a94010a810b27fa9d7f3ad171a30f9a7d8d759bfb66b9dc73a348",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Map.CustomHolderId/description",
          "source": "For a custom entity, stores the persistent identifier of its owning holder; zero when the holder has no persistent identifier",
          "source_sha256": "f84e0928a758c5e497d28a042fd88d98879212b1ac2f6931f329526772f507b3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Map.DayColor/description",
          "source": "Channel-major RGB values for the map's corresponding daylight color keyframes",
          "source_sha256": "8c28d7782ce766bae7a87f21602faf98ccc756e3917e876a0278936521dae885",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Map.DayColorTime/description",
          "source": "Map-specific daylight color keyframe times expressed in minutes of the day cycle",
          "source_sha256": "063442b339f136a862ee76aca06b2b9f76af23eef2bdcef6d597bacafc297b48",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Map.ExplicitlyPersistent/description",
          "source": "Marks an entity as independently persistent rather than persistent only through containment by another entity",
          "source_sha256": "909a82b41efa2f84a7e1fd273e8267c3b69fc21f3390ff505defbb973cf11e51",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Map.FixedDayTime/description",
          "source": "Map-local day-time override value, conventionally expressed in minutes and interpreted by game scripts",
          "source_sha256": "733a7356ce97118638d8a96d452edf88bb2b23c6af70c8ca437978b1124fee05",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Map.GlobalDayColor/description",
          "source": "Current client-side global daylight color supplied through SetDayColors for scripts and effects",
          "source_sha256": "5062b0632e9dfa916cb4a1452f07becc6317345af600ffa19e3857a4faf8a19d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Map.GlobalDayLightCapacity/description",
          "source": "Current daylight capacity percentage for light sources flagged as global, clamped to 0 through 100",
          "source_sha256": "0e896da615c499ca6b6d72bbfb4ff6cce8634eee240e64afb1eb6f58bb28a46d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Map.InitScript/description",
          "source": "Server initialization function called after the map-init event for a newly created or restored map",
          "source_sha256": "b346fcb09dd09317254f8bd4a470e5686139f49d77fdddb12cc789c9b9a54fdf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Map.ItemIds/description",
          "source": "Persistent identifiers of the dynamic items placed directly on this map",
          "source_sha256": "f68bdd19c02a3c7072ef0c3f60c46e20895921dc5864e549679ff50e67587c65",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Map.LocId/description",
          "source": "Identifier of the location that owns this map",
          "source_sha256": "a03a7cf8f8affc1651b2f66086f024e3a3e58ae8f73bc470d3f60fd31ec661e9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Map.LocMapIndex/description",
          "source": "Zero-based position of this map in its owning location's map list",
          "source_sha256": "edc543ed913945fdf817c99f20c8174c2f26112564f57b9a1d30a42ba8ba5d59",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Map.MapDayColor/description",
          "source": "Current client-side map tint supplied through SetDayColors and consumed by map rendering",
          "source_sha256": "7d45ea8d535569211311209d1e1b090eff8bd95a7711ad597fe4674d6b8c39f3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Map.MapDayLightCapacity/description",
          "source": "Current daylight capacity percentage for ordinary map light sources, clamped to 0 through 100",
          "source_sha256": "a7905a27180f72a6d5c60e80fbd6a24dcd91c21834c106f7ffbd18129444961f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Map.RemovedStaticItemIds/description",
          "source": "Identifiers of the baked static items this map instance has dropped; removal is one-way for the life of the instance",
          "source_sha256": "10145eb732c492e95bd1f053d5f0dd6f9130a2d46594d4d1bdd479c2eed8351f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Map.ScrollAxialArea/description",
          "source": "Axial-coordinate rectangle that bounds map scrolling; a zero rectangle leaves the full map available",
          "source_sha256": "3fa8a2bad17f4366872010bfc71dd29fae1130ec58631caac1921a43c94da421",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Map.ScrollOffset/description",
          "source": "Rounded client viewport offset in map-space pixels",
          "source_sha256": "db936c3fe0561e0b2e76721fec01b38c190f6d0df6c06e0c0de5db60f847e17c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Map.Size/description",
          "source": "Width and height of the map grid in hexes",
          "source_sha256": "55bb18dc4ab688f68beaf3fb1b2bfed3d1d671b87a6c09cf6816c70f83e77e49",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Map.SpritesZoom/description",
          "source": "Current client map-sprite zoom factor",
          "source_sha256": "e7dab76f2064735454657cf83bfd532048bf61a2dbf2c0e7a92b8e919305b47c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Map.SpritesZoomTarget/description",
          "source": "Target zoom factor toward which the client map view is interpolating",
          "source_sha256": "5cc47384c7e656b8df01bf7003c3ca3f136e115eb89e50dc18affa7ba19589d1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Map.WorkHex/description",
          "source": "Authoring work hex used as the initial Mapper view center",
          "source_sha256": "39e3f4def04bf163c5b07c4ede4f0dbe86be876eeee8e51712a36a3b3162a429",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Player.ControlledCritterId/description",
          "source": "Identifier of the critter currently controlled by this player; zero when none is attached",
          "source_sha256": "50735bd539780ae0a251c72d1a8fae09c6c4cec76045a2822db625e07ca4e0e9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Player.CustomHolderEntry/description",
          "source": "For a custom entity, names the holder entry through which it is attached",
          "source_sha256": "1050e666d84a94010a810b27fa9d7f3ad171a30f9a7d8d759bfb66b9dc73a348",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Player.CustomHolderId/description",
          "source": "For a custom entity, stores the persistent identifier of its owning holder; zero when the holder has no persistent identifier",
          "source_sha256": "f84e0928a758c5e497d28a042fd88d98879212b1ac2f6931f329526772f507b3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Player.ExplicitlyPersistent/description",
          "source": "Marks an entity as independently persistent rather than persistent only through containment by another entity",
          "source_sha256": "909a82b41efa2f84a7e1fd273e8267c3b69fc21f3390ff505defbb973cf11e51",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Player.LastControlledCritterId/description",
          "source": "Persistent identifier of the most recently controlled critter, retained after detachment for restoration",
          "source_sha256": "c2855b57f97fd38a8854d0420584adcc506c88f70d5c20aadd6a91e6bad27cf7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.property.Player.LoggedIn/description",
          "source": "Reports whether this player connection has completed server login",
          "source_sha256": "28d0480c6e66d4c5f83b55070dd129b6a59345fea9256a118058fa790a152ba3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.FogLayer.CenterColor/description",
          "source": "Traced-overlay center color",
          "source_sha256": "90beb63a2e253ebfc49d1a56105761e260026e1e0db6cbeb6389b7846ef95d23",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.FogLayer.CheckShootBlocks/description",
          "source": "Includes shoot-blocking map geometry when tracing the fog boundary",
          "source_sha256": "6d7706521d0414eab6e5cd56578789c302062e7b6e28e6b3998afc1884705701",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.FogLayer.ClearRadius/description",
          "source": "Fraction kept crisp before the edge fade (lower = wider border)",
          "source_sha256": "c8b026ce723182cd8b91768f0e11f842068b81ef51d4530fe360c0f17b66936b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.FogLayer.Depth/description",
          "source": "Extra darkening with distance past the edge",
          "source_sha256": "ec2b7f7957ed53a74f143eb336e285a52af5137fc8e5574ee7adbb1f4900ff2f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.FogLayer.Disposed/description",
          "source": "Script-readable status: true once Dispose() ran or the owning map was destroyed (recreate then)",
          "source_sha256": "17dc3d395b16fbd1762abc81ad513e6c9f0e0f694c6f0356d00722eb6ca7db6d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.FogLayer.Distance/description",
          "source": "Zone reach in hexes (traced overlay); 0 = derive from the look distance",
          "source_sha256": "025d389d6d68a7d112648ed832f8b966c42209798dfc5bcf96cf2293166c2927",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.FogLayer.EdgeNoise/description",
          "source": "Drifting-mist rim ripple strength",
          "source_sha256": "171ea8a521832f2e0764fdba40acfbc7675ae222e7f81b54a26f3a0cec4c723a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.FogLayer.Enabled/description",
          "source": "Enables shape generation while preserving transition state when toggled",
          "source_sha256": "772159a05044e3dcbd856670e3c52de0296c7f826a915e184cd083c54296805d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.FogLayer.ExtraLength/description",
          "source": "Extra look length added to the derived radius",
          "source_sha256": "e4ce020b51a7cf5526959ba950d138965736fe980dca5ad5d17eb16666e859b8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.FogLayer.OriginHex/description",
          "source": "Origin for a hex-anchored fog (ignored when following a critter)",
          "source_sha256": "68f3e8bc48efe017889616d65a701d4f18a87c0766ef837756bd1190d28eabc3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.FogLayer.OvalRoundness/description",
          "source": "0 = raw hexagon, 1 = full smooth oval",
          "source_sha256": "faea64319f379fff658443849b941d1ad9c66ee3ea822fd3639db8371afe87c5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.FogLayer.OverlayColor/description",
          "source": "Traced-overlay (zone) color",
          "source_sha256": "81c428b5fe27499f92737c0de36968cb78706b9f245dce5b5f395e2878761343",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.FogLayer.Radius/description",
          "source": "Look radius in hexes; 0 = use the origin critter's look distance",
          "source_sha256": "78095c8f7eda666b864d5f1fd4566f52c9ad87ae7a88abc4cf264a0f97779bbc",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.FogLayer.TintColor/description",
          "source": "Cold dim tint of the unseen area (rgb used; a ignored)",
          "source_sha256": "4295bf52a2a6e4c6d31bd84a6079c7db2a6487ebf87e6c48df07c72b9ab154b4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.FogLayer.Traced/description",
          "source": "Positive traced overlay (attack/observation zone) vs inverse look fog",
          "source_sha256": "6e646848221eb3a12cd74514d235240d3a880995f8a6b95d69981dadc1855e77",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.FogLayer.TransitionDuration/description",
          "source": "Grow/move/shrink morph duration in ms",
          "source_sha256": "0bc0ba10a4869be92c7de3bd2e8d448aad2d86bb220299a35312b51693d4c45d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.MapSpriteHolder.Angle/description",
          "source": "Initial sprite angle in degrees applied when nonzero",
          "source_sha256": "50bcfa9a0a01fca468657e43876fccd919046ac269acaf899dd997185e1a39bb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.MapSpriteHolder.Color/description",
          "source": "Optional packed color and fixed alpha applied at attachment; clear leaves the sprite color unchanged",
          "source_sha256": "0678f75de54a452d37b57e57ad03150bac494be09fc00dde882cf7489c0e8727",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.MapSpriteHolder.Corner/description",
          "source": "Manual corner classification used for lighting and egg appearance when ProtoId is empty",
          "source_sha256": "cc038ff07d6f2c398acfda60b034260a9cd4965a94d098d5b16d39e4891d3c1a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.MapSpriteHolder.DisableEgg/description",
          "source": "Manual switch that suppresses egg appearance when ProtoId is empty",
          "source_sha256": "f9b23f0e2174d2a91b066adb472855746d337bd3080bf20d2eeeb1c610500f9c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.MapSpriteHolder.DrawOrder/description",
          "source": "Manual draw-order slot used when ProtoId is empty",
          "source_sha256": "f2fc5e5568b7bad6d9c8dd277681e13f4d4eb0261b3c3fdc68a7544a5b01c588",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.MapSpriteHolder.DrawOrderSubLayer/description",
          "source": "Fine ordering within DrawOrder used when ProtoId is empty",
          "source_sha256": "bf909dec6a1fc9d6da5f9bc3c597b06796a5ca59e0ecd54b2cdaa5592862d7fe",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.MapSpriteHolder.Hex/description",
          "source": "Map hex used as the sprite anchor and visibility test",
          "source_sha256": "ca6b06b6b793f657fc61139cafe151036b6a0c98be2429d1aebc1fb5b488391d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.MapSpriteHolder.IsFlat/description",
          "source": "Manual flat-sprite selection used when ProtoId is empty",
          "source_sha256": "24851dfd34da37c71c0cd4e9e3601b77c8f821e273a4bfbacf8d0b52564f3681",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.MapSpriteHolder.IsTweakAlpha/description",
          "source": "Enables live alpha tracking through TweakAlpha after attachment",
          "source_sha256": "3ff37af50685a7dd00caa2e081cb8cfd3fd2cc1baea2e96bf6f9435c8cfd0d0d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.MapSpriteHolder.IsTweakOffs/description",
          "source": "Enables live offset tracking through TweakOffset after attachment",
          "source_sha256": "99c4f5aff1777b8fc0bceadd09302ba349bb110e25db887926ce5845cc63254e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.MapSpriteHolder.MapProjected/description",
          "source": "Requests map-projected rendering when the sprite is attached",
          "source_sha256": "45f0252859d260ac671084a5ebf1f76f7de75a51adfef4b061adda2cea07d74b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.MapSpriteHolder.NoLight/description",
          "source": "Manual lighting bypass used when ProtoId is empty",
          "source_sha256": "e094d73335203ee7c4dfe22b86583c45d33632a1076e05e37ba3fc0a118943ca",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.MapSpriteHolder.Offset/description",
          "source": "Base map-pixel offset applied when the sprite is attached",
          "source_sha256": "8b2b9590ea106691cd367b418f1b17f9d6f32def52a8f4cbbd4bf28ce721f6b3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.MapSpriteHolder.ProtoId/description",
          "source": "Optional item prototype whose color, flattening, lighting, draw order, corner, and egg settings override the corresponding holder fields",
          "source_sha256": "c83bc58e1d7501a748e1aebdf7760ab07839e583624826c0c9e31c8d308b8b70",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.MapSpriteHolder.SprId/description",
          "source": "Sprite resource handle resolved when Map.DrawMapSprite attaches the holder",
          "source_sha256": "db5f6e69ba5cf8997a948143be18e3cb9bf8ae9d8d67dbe01f64a896356e6561",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.MapSpriteHolder.TweakAlpha/description",
          "source": "Mutable alpha read by the attached sprite while IsTweakAlpha was enabled at attachment",
          "source_sha256": "7aec616c5799188a63046b87e955f125dc42a887b7143f547b64d7525a4a49f6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.MapSpriteHolder.TweakOffset/description",
          "source": "Mutable map-pixel offset read by the attached sprite while IsTweakOffs was enabled at attachment",
          "source_sha256": "43cda99c5171fb34c06d4c3534f5c07c437af81c50ef90930247719728caf110",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.MapSpriteHolder.Valid/description",
          "source": "Reports whether the attached map sprite remains valid; the sprite writes false when invalidated",
          "source_sha256": "e33845a22dd085f9d6d46b3441b908b2f1367b245cbb46814df0337cb9fb46b5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.SpritePattern.CheckTileProperty/description",
          "source": "Enables the required ground-tile property filter; false currently suppresses all pattern placement",
          "source_sha256": "4d090a1e31cfc8ed00848214804651532b22f28b1c1b00b86d092a2bcf2cb5fb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.SpritePattern.EveryHex/description",
          "source": "Positive nonzero X/Y hex intervals used as modulo divisors when selecting placement cells",
          "source_sha256": "ab20df76c49a27bd15581a48b3c1a7c479ef5bab287130fe477d19424ca7b019",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.SpritePattern.ExpectedTilePropertyValue/description",
          "source": "Integer value that the selected ground-tile property must equal for sprite placement",
          "source_sha256": "7511362bfe037c8bc363792ab2eba937445f205eab602ed670e96ac731f26c1b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.SpritePattern.Finished/description",
          "source": "Reports whether Finish has stopped this pattern and released its sprite instances",
          "source_sha256": "f586ba1ff1b9e7b4d7eec49bf9d5f97439f12c0eb25ddaab3263390bd91eb2a8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.SpritePattern.InteractWithRoof/description",
          "source": "Makes hidden roofs suppress the pattern and places matching roof sprites in the roof-particle draw order",
          "source_sha256": "166896fdb8a43127a8d4b4a791a25184511d72285a56b9dce7b7419f55a88dbd",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.SpritePattern.TileProperty/description",
          "source": "Ground-tile item property read when CheckTileProperty is enabled",
          "source_sha256": "c3f9c5619dca479aaa9611e107a6cd4ee508fd1e743badbbf0ae7f9cb2675418",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-field.client.VideoPlayback.Stopped/description",
          "source": "Becomes true after DrawVideoPlayback observes that the underlying clip has stopped and releases its playback resources",
          "source_sha256": "ce994b5476050ee14671f04d415f2d6123d441744d2d6b194f2b88f86b601999",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-method.client.FogLayer.Dispose/description",
          "source": "Marks this layer for removal during the map's next fog preparation pass; repeated calls are harmless",
          "source_sha256": "41d3a5f5bd7e3e60e7a833f85ec8cf901ca89f6246b3e3e6c843e9aa3c23b5d6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-method.client.MapSpriteHolder.StopDraw/description",
          "source": "Invalidates the attached map sprite, sets Valid to false through its callback, and detaches this holder; repeated calls are harmless",
          "source_sha256": "549c2db5e224f0bb1e758d74feee23110bd6016f7b5cf978c9ba896f34178221",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-method.client.SpritePattern.Finish/description",
          "source": "Clears the pattern sprites and marks the controller finished; repeated calls are harmless",
          "source_sha256": "b3b65c2ceab66e8b341fedac5c8900f5ac8743c04ce7424e47d595bd8d1e8d68",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-method.common.MovingContext.EvaluateNearestPathHex/description",
          "source": "Returns the route hex at or after current_hex nearest to from_hex, falling back to fallback_hex when no closer path point exists",
          "source_sha256": "11c65b980d68f533c1137dd8137d36b78536acbb3201154cad170c676ae96f9a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-method.common.MovingContext.EvaluatePathHexes/description",
          "source": "Returns route hexes from current_hex through the available path end, or a current/end pair for a route without stored steps",
          "source_sha256": "741fcb20d63d466a3ad39efbdd56c45aa8cab9934dc9416c3903bb5c5dd501eb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-method.common.MovingContext.EvaluateProjectedHex/description",
          "source": "Evaluates the route hex at the stored elapsed time plus a nonnegative look-ahead interval in milliseconds",
          "source_sha256": "fa4727c41cf06444958c390a2a7401d2e2c538c359043421acd2748d2013e3e0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-method.common.MovingContext.GetBlockHex/description",
          "source": "Returns the blocking hex recorded for the route",
          "source_sha256": "02e792a8eb99510f933e5ebc025bc6397c699a01ec05b4dd07b459f175c0d09c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-method.common.MovingContext.GetCompleteReason/description",
          "source": "Returns the reason supplied when the movement was completed",
          "source_sha256": "e35a7e2757d89ce0a21bdf784426296d38b5e5c450ea4ae867d4f618798f74bf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-method.common.MovingContext.GetElapsedTime/description",
          "source": "Returns the stored elapsed movement time in milliseconds",
          "source_sha256": "f78b682c277c209d21b2c8578abfcb203fa69dee252c1f44fdcc3465bacda22f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-method.common.MovingContext.GetEndHex/description",
          "source": "Returns the final map hex obtained from the stored route steps",
          "source_sha256": "c01e53b92151213f861b45c7f26abeed42e2eb1cd405c7a5bcd79dafe0e1c671",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-method.common.MovingContext.GetEndHexOffset/description",
          "source": "Returns the map-pixel offset applied at the route's final hex",
          "source_sha256": "5828973ab8916b36626dd299e294232666cae0801f82aad008800fae2bc99a8c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-method.common.MovingContext.GetPreBlockHex/description",
          "source": "Returns the last reachable hex recorded immediately before a blocking hex",
          "source_sha256": "ffcd867c8ed847ce676535f7e2c15febcbd6489e63a369aa02259c71d34c59c0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-method.common.MovingContext.GetSpeed/description",
          "source": "Returns the movement speed used to derive route timing",
          "source_sha256": "1f10737c4a22261437477500a8dc1ecdeafacc5e087db7a3c23647a632cf9d0e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-method.common.MovingContext.GetStartHex/description",
          "source": "Returns the first map hex of the stored route",
          "source_sha256": "cd8dbb0960dafd40715f76d79d289b599f17b671c048e6bfd4318df3b2024958",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-method.common.MovingContext.GetStartHexOffset/description",
          "source": "Returns the map-pixel offset applied at the route's starting hex",
          "source_sha256": "9818a2e5e65162d9071f27e37efb2c4aa034d636fc436987249525ef497642a0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-method.common.MovingContext.GetWholeDist/description",
          "source": "Returns the total projected map-pixel distance across all control-step segments",
          "source_sha256": "a4a18adfbc5238d89d6f895972484d2d121e9e5138c2acde0cda7301d5680035",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-method.common.MovingContext.GetWholeTime/description",
          "source": "Returns the total route duration in milliseconds after speed and endpoint offsets are applied",
          "source_sha256": "2bdcb5292d1298ad8c1cc098a47b0b955aae617bf77760837b8820f8857e0817",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-method.common.MovingContext.IsCompleted/description",
          "source": "Returns whether the movement has been explicitly completed",
          "source_sha256": "2dafb2ebf6ce168c16f5c1cfa54f202fcde25240ffad6b1b7af249d767694009",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-method.common.TimeEventContext.GetData/description",
          "source": "Returns the first payload value, or an empty any value when the event has no payload",
          "source_sha256": "1a722ed5fee0e9516c8e0198f2adf1d3da6a7d6ffe8273c6c3022c76cb07eb94",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-method.common.TimeEventContext.GetDataArray/description",
          "source": "Returns a copy of the complete payload array visible to this callback",
          "source_sha256": "894720a5401c1c7afcf95e002c3750579c5187afb0b28793a2e170be560accf4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-method.common.TimeEventContext.GetId/description",
          "source": "Returns the unique identifier of the event currently invoking the callback",
          "source_sha256": "594012cb21d2cf467019b542eb15676bb6112c0b269c208b49983ee92c21654d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-method.common.TimeEventContext.GetRepeat/description",
          "source": "Returns the current repeat interval, including a value assigned by Repeat during this callback",
          "source_sha256": "2bce1967e4c84a5e5ae7e47cad7eef0468fb56f78b932b1a3a61743712765c96",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-method.common.TimeEventContext.HasData/description",
          "source": "Returns whether the callback context currently contains at least one payload value",
          "source_sha256": "c51cf2854d19e7dee46378a03161a4cbf3ddccb4abcc690950fdfa4229653a21",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-method.common.TimeEventContext.IsStopped/description",
          "source": "Returns whether Stop has been requested through this callback context",
          "source_sha256": "34783e46b0156fe20454b36db3202f4adf73fc171520c227664bba60506af5d7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-method.common.TimeEventContext.Repeat/description",
          "source": "Replaces the repeat interval and schedules the next firing from callback completion, clamped to the Engine minimum interval",
          "source_sha256": "db0da7c987357df62aaddb41c5b65caa7b4d8b358bf70902496797fccd8291a9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-method.common.TimeEventContext.SetData/description",
          "source": "Replaces the event payload with one value after the callback returns",
          "source_sha256": "eb62139448f33e826bf587fcd3a68bfaf3f11387fbc7bf4030983de1a7fc6b6d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-method.common.TimeEventContext.SetDataArray/description",
          "source": "Replaces the complete event payload with a copy of the supplied array after the callback returns",
          "source_sha256": "82b6dd37abede39a2d2b3c1116b86d9bda4bb436d9285ff99e6feb3122ce6f4c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-method.common.TimeEventContext.Stop/description",
          "source": "Marks the current event for removal after the callback returns",
          "source_sha256": "b4678e08685f4e62412b9d50a91f230e306f849046d1d1a3b21a87177346f00c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-type.client.FogLayer/description",
          "source": "Map-owned fog or traced-zone layer whose shape and compositing parameters are rebuilt from mutable script fields each frame",
          "source_sha256": "ba30b49f6329ae33246525aa0d6264e6047b5feaa959a05e439fd14b9ba160f5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-type.client.MapSpriteHolder/description",
          "source": "Script-configured holder for a client-local map sprite added by Map.DrawMapSprite and kept alive until invalidated or stopped",
          "source_sha256": "6dd77da22220fb1409858ca8eb3b0e8c7653bdabadb0594b9048882677201e5a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-type.client.SpritePattern/description",
          "source": "Map-owned controller that places copies of a named sprite on matching visible hexes until finished or the map is destroyed",
          "source_sha256": "15290657ffb65aae6d83d83ccf86a8dff13e17e29affeef8929d1f9644800271",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-type.client.VideoPlayback/description",
          "source": "Script-owned controller for a video clip and render texture created by Game.CreateVideoPlayback and advanced by Game.DrawVideoPlayback",
          "source_sha256": "d70610aab8c9ec537e7020c6ba6906ef7b96a7c8dcdfa00ee31964bd582cb8cb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-type.common.MovingContext/description",
          "source": "Shared movement-path state containing route geometry, timing, offsets, blocking information, and current completion progress",
          "source_sha256": "eb540cde7cf91eb046c3ebca3c5da1e0f615486de990c894b24fe99bfc027e55",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.ref-type.common.TimeEventContext/description",
          "source": "Transient callback context for inspecting and changing the time event that is currently firing; requested changes are applied after the callback returns",
          "source_sha256": "36cc0a91bab40b305c515c7f7de93a7c2698c8003beb6510069a9c2ce851a5f0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.GamepadState.Available/description",
          "source": "Reports whether the application currently has an opened gamepad",
          "source_sha256": "391d07af65cada08546e44516de4067a2b86dc03403853898bac920e2374bdcc",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.GamepadState.Back/description",
          "source": "Reports whether the back button is pressed",
          "source_sha256": "2d8cfc9d44a3a518b8fe3e38501ced88ca8fac33a098ce2cb27653abd2608715",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.GamepadState.DpadDown/description",
          "source": "Reports whether the D-pad down button is pressed",
          "source_sha256": "7f0fd3cf35f1475cf51028b1d0322877371492c7c458be449f69ff86f56d98ee",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.GamepadState.DpadLeft/description",
          "source": "Reports whether the D-pad left button is pressed",
          "source_sha256": "be8be95365ffc847b9c07c5866023148f670ce2cbd678aeab820e7f5e771bbb3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.GamepadState.DpadRight/description",
          "source": "Reports whether the D-pad right button is pressed",
          "source_sha256": "66ddaab030c2e0bb38811e10caa3be53f22c6e7356dc5f6dbb0cd57e1069fae1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.GamepadState.DpadUp/description",
          "source": "Reports whether the D-pad up button is pressed",
          "source_sha256": "2a04ebe3138563d741c45c04b27733bf9ec430e8c1cf361b49205d9adc102601",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.GamepadState.East/description",
          "source": "Reports whether the east face button is pressed",
          "source_sha256": "7340784c4222ecfbd8bed91af2f9c481517696c6de41308ec09d16aa3f7a56ca",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.GamepadState.LeftShoulder/description",
          "source": "Reports whether the left shoulder button is pressed",
          "source_sha256": "1c55e7f2df5e9cf41d5acd4f442abdb1f9e8e0d8bd082332fa3b4fe1adb72975",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.GamepadState.LeftStickButton/description",
          "source": "Reports whether the left-stick button is pressed",
          "source_sha256": "a1e799c49b31dc56e04a368d695e907fdfccfad55f9fa6acbc89aaf36af550b0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.GamepadState.LeftStickX/description",
          "source": "Left-stick horizontal axis normalized to -1 through 1 after the dead zone",
          "source_sha256": "be29f9e8604f39f0897035c7a9e4804cdd08b5cb33a77bd4223a3d9d0adebd67",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.GamepadState.LeftStickY/description",
          "source": "Left-stick vertical axis normalized to -1 through 1 after the dead zone",
          "source_sha256": "8d59a6311a2ad195171bc23b6153899ee64ce1516546bf0801ea24156c1e4190",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.GamepadState.LeftTrigger/description",
          "source": "Left-trigger pressure normalized to 0 through 1 after the dead zone",
          "source_sha256": "f8b2a7f4f1f199aaba713bf06ea5adad4f5dd2fa93e0126ab189fb6b8a577a31",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.GamepadState.North/description",
          "source": "Reports whether the north face button is pressed",
          "source_sha256": "27b59157d4da7f464a32b84dc95e748f0e1eae8decd6beb17e015dbe10c28241",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.GamepadState.Reserved/description",
          "source": "Reserved compatibility field; the current input backend leaves it false",
          "source_sha256": "36b4e87863ba88d89b39b6c9481c24ca33422d965f9a9c7b9958f32592d35992",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.GamepadState.RightShoulder/description",
          "source": "Reports whether the right shoulder button is pressed",
          "source_sha256": "ef2483bf89670a81e9d195f40baeff49144b2066c5d262ab3a3a69b07e44e827",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.GamepadState.RightStickButton/description",
          "source": "Reports whether the right-stick button is pressed",
          "source_sha256": "54380095cafac9f5cd4471af8a82caaea41ae1041e06ea4d41a05e3ed235b5e7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.GamepadState.RightStickX/description",
          "source": "Right-stick horizontal axis normalized to -1 through 1 after the dead zone",
          "source_sha256": "217cbc941452eb84c578c4da47f8b0895815009b78e1d152284861156b6641d6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.GamepadState.RightStickY/description",
          "source": "Right-stick vertical axis normalized to -1 through 1 after the dead zone",
          "source_sha256": "0c08656659b51bb69b10b2a71a6ed96a31f57f127fb60449955f314df2ce6095",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.GamepadState.RightTrigger/description",
          "source": "Right-trigger pressure normalized to 0 through 1 after the dead zone",
          "source_sha256": "9a86769ef5a689c007e5c9208b113a69eba3f1bf15ab33ee3a9854e53ef0f161",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.GamepadState.South/description",
          "source": "Reports whether the south face button is pressed",
          "source_sha256": "726f36829e7f3f29952af6849dbd602cb33e7c119ee19d96f29b930660971d6f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.GamepadState.Start/description",
          "source": "Reports whether the start button is pressed",
          "source_sha256": "8bc07c8be9da6c25536aae6d27ffaffc2168183d439ac943bb51ee1695dd4bb3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.GamepadState.West/description",
          "source": "Reports whether the west face button is pressed",
          "source_sha256": "505edabd15a0b2649eecc7faa86330e0dac7a29f47ad6e684f337e33c35ce22e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.LanguageName.Name/description",
          "source": "Hashed language identifier used to select localized text resources",
          "source_sha256": "eb1cc016be2e299f3d1688a1a9b0a3b7fdd0e1c6fca5edb19bb9d774b6be851d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.TextFormat.Flags/description",
          "source": "FontFlag bitmask controlling alignment, wrapping, clipping, color tags, and glyph presentation",
          "source_sha256": "148bd6e0cfea5c6352fa1d11a195bf692eb509ca798985699478f8334a7a96de",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.TextFormat.Font/description",
          "source": "Font slot selected for text measurement and rendering",
          "source_sha256": "a538761208ed8b0ca0029064b3d97ab582ff66e39565b2510ec7c0645d790e85",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.TextFormat.SkipLines/description",
          "source": "Line-skip count taken from the top by default or from the bottom when AlignBottom is set",
          "source_sha256": "242deb77254f90fe07879d04e2b13c92bee685e77664531a000c13b3a04e3336",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.TextPackKey.Collection/description",
          "source": "Text-pack collection in which the key is resolved",
          "source_sha256": "9228be538ddfbf1af7480856f9be889ba4fb4a78df7f06c2c6dc5d815bac9d4d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.TextPackKey.Key1/description",
          "source": "Primary hashed lookup-key component",
          "source_sha256": "ac2175e995768c3b2d14d256ac9dfad882252206bf595c300acdac77300925d2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.TextPackKey.Key2/description",
          "source": "Optional second hashed lookup-key component",
          "source_sha256": "d90aa7fc115165fc79718e6766cb25edb468b23543f1277e850520cbe7d7ebcf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.TextPackKey.Key3/description",
          "source": "Optional third hashed lookup-key component",
          "source_sha256": "82212dd6ba2648f51cb3152444b75c5de08a175e7c77af13caed2ccd194d29c3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.TextPackName.Name/description",
          "source": "Hashed text-pack collection name",
          "source_sha256": "24a5482296a0f391c6f634f9b49e763c8f105abb6fac6abd4caa8f2b486cf391",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.fpos.x/description",
          "source": "32-bit floating-point X position component",
          "source_sha256": "f084901625c8e0daa99f69b1cee9fc00fb8828b6fb266968ee5f0310a819a181",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.fpos.y/description",
          "source": "32-bit floating-point Y position component",
          "source_sha256": "2926ee107ce45cf12928dbcf16203d0a220e22a035d5effb8b831da87dd1b519",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.frect.height/description",
          "source": "32-bit floating-point rectangle height",
          "source_sha256": "00a422fa7907320787fd76a0c01a9a455eaa50b09bb9f17518092365b63ffca8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.frect.width/description",
          "source": "32-bit floating-point rectangle width",
          "source_sha256": "341472c2445bbef4b6237154a4c78a0643caaf2b1856733e38e84db6bf42ea02",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.frect.x/description",
          "source": "32-bit floating-point X coordinate of the rectangle origin",
          "source_sha256": "bd3b02ed5a6977c0121dbd8a23f76557ff90806b29cc073bf92f52100f754196",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.frect.y/description",
          "source": "32-bit floating-point Y coordinate of the rectangle origin",
          "source_sha256": "f9f4f3f4ecdafadf57a4ac8c77c95317ce43b2e826b369734c270555e663e8d1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.fsize.height/description",
          "source": "32-bit floating-point height component",
          "source_sha256": "d1b6aeab503f87064489ad8c4f1a198b68ffc2235fd96c81f2163b86c1d54a66",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.fsize.width/description",
          "source": "32-bit floating-point width component",
          "source_sha256": "9839969f1febbb869bc4d22f8c232268c40ff43168f56c8271215933bd959ee5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.hdir.value/description",
          "source": "Direction index normalized to 0 through the configured six- or eight-direction count minus one",
          "source_sha256": "2bec76c9baf72f8a68c1f84bc9044dc9b50d9e14b4a3728522f00eb2576ef180",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.ident.value/description",
          "source": "Signed 64-bit identity payload; zero represents an empty identity",
          "source_sha256": "06d28a65933648d4bc78304eab902584a8c6441e257ff680cdd2bbd3127b4793",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.ipos.x/description",
          "source": "Signed 32-bit X position component",
          "source_sha256": "4866f8c0cc839e64379c5b93d0e6f0054c6a2199f7ebe765f50758440b1ba48d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.ipos.y/description",
          "source": "Signed 32-bit Y position component",
          "source_sha256": "7483a93f85cd449568017b32653660a588d00cf71d7ec4963303bf69b0414012",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.ipos16.x/description",
          "source": "Signed 16-bit X position component",
          "source_sha256": "5d9b0c1e59b185a22b1c3c4e2ad776d9680f8c9363e21312a7e46135b183a319",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.ipos16.y/description",
          "source": "Signed 16-bit Y position component",
          "source_sha256": "9a4177dea3553c5e5350a602c5b2b15772966781b32c6e51bdad85e76d89b685",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.ipos8.x/description",
          "source": "Signed 8-bit X position component",
          "source_sha256": "024d33aab3023e9593ccc8b9d606ade5f4d5d03e8c9218b3cbcfb26569d16457",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.ipos8.y/description",
          "source": "Signed 8-bit Y position component",
          "source_sha256": "3ed63661baa9df45671c5053eb9517c73d0a53a6fa3a68510e2c3084ff3e21a6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.irect.height/description",
          "source": "Signed 32-bit rectangle height",
          "source_sha256": "34da99e9287d8bd1317c6aad312b2558b7e7339c92c0cf4f95dd30ad041670ca",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.irect.width/description",
          "source": "Signed 32-bit rectangle width",
          "source_sha256": "b183e403936f741c9942c4ed6b86fbcf46b3ca4f61d94e93c3b9de81d537a2e7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.irect.x/description",
          "source": "Signed 32-bit X coordinate of the rectangle origin",
          "source_sha256": "b621e650e209dd42d496dd3871ae6948a7a72d5c7c739b9f29aa11520f8e0222",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.irect.y/description",
          "source": "Signed 32-bit Y coordinate of the rectangle origin",
          "source_sha256": "5e6c8dec6e4ad56e9a537547c2a7b0708240ed4710bb1748d0c0ddfb9084b5cf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.isize.height/description",
          "source": "Signed 32-bit height component",
          "source_sha256": "0cf5d3c8b3cc92712e32005d1f99221f54525125e918b71ac66f8b325ac70db4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.isize.width/description",
          "source": "Signed 32-bit width component",
          "source_sha256": "8986fc7cff09210ced421244afac828bf0a404ae6a7270830a7994844f1f08ca",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.mdir.angle/description",
          "source": "Direction angle in degrees normalized to the inclusive range 0 through 359",
          "source_sha256": "f66af5a4c70216e18e659644e214c0daf78d46bb3b23500636f2cb7fe6a15c83",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.mpos.x/description",
          "source": "Signed X component of the map-cell coordinate",
          "source_sha256": "2c7a8c296aa980598ece0ea8ea915df0543ae30ffa53cb6457b737575ea24e14",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.mpos.y/description",
          "source": "Signed Y component of the map-cell coordinate",
          "source_sha256": "8210dada4f05b27f2e36893f7e7937e453226ae6a8f2e3bbec8c8213420088b9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.msize.height/description",
          "source": "Map height in addressable cells",
          "source_sha256": "0159b4c99d9376bb8cc013431ef76ffdf62e5264c62111631adc8b74538a785e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.msize.width/description",
          "source": "Map width in addressable cells",
          "source_sha256": "153321512c524d42e6f6a76f90e9d5102f44545f08b7b9d5e0d4a9c4479c9a04",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.nanotime.value/description",
          "source": "Nanoseconds from the process-local monotonic steady-clock epoch; this is not civil wall-clock time",
          "source_sha256": "8289b08702977ff044cffe5916ccf8b135a0520d771124b0f620f769f1acbe13",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.synctime.value/description",
          "source": "Milliseconds in the Engine-synchronized game-time domain",
          "source_sha256": "b1a48a52efcf59da40c2d5801c4597a014411ffe1e47433020797eb21336a517",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.timespan.value/description",
          "source": "Signed duration count in nanoseconds",
          "source_sha256": "c8b6a4424fd5604ec474046bef28024d8fc654bf206d9448caa13c538a203000",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-field.ucolor.value/description",
          "source": "Packed 32-bit RGBA storage used for equality, ordering, hashing, and script transfer",
          "source_sha256": "82e3f10b8cefb690b314fb545115c06165533c64ca8462a5197a192d3fb27c02",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-type.GamepadState/description",
          "source": "Per-frame gamepad snapshot containing availability, stick and trigger values, face buttons, shoulders, sticks, and D-pad state",
          "source_sha256": "bf1144a66510c901ff745423eb164948079e11ab22d65f9ac1cb83082d4f7982",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-type.LanguageName/description",
          "source": "Hashed name that identifies a language in localized text resources",
          "source_sha256": "6adbe5e1d01dd9514d9a82347bde8af9d1af2b4cfe979f75a9e2cfbf9728e41f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-type.TextFormat/description",
          "source": "Bundled text formatting parameters: font slot, FontFlag bitmask, and skip-lines counter.\n`SkipLines` is \"skip from top\" by default; with FontFlag::AlignBottom set it becomes \"skip from bottom\" (trailing lines)",
          "source_sha256": "84dba9b3cf1288a173c4ea39036c6fbcc13c136549396e59b7a945fe52d0a292",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-type.TextPackKey/description",
          "source": "Text lookup key composed of a collection name and up to three hashed key components",
          "source_sha256": "aad5bf3b7c68dc0751e2667623cfc0f43b8a0cf4e00146018cc77b91fe0e58bf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-type.TextPackName/description",
          "source": "Hashed name that identifies a text-pack collection",
          "source_sha256": "d6ec69308c633dbec9cc3e6e726a014b2f11e826778da14162a53250437977e4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-type.fpos/description",
          "source": "Two-dimensional 32-bit floating-point position exposed to scripts as mutable x and y components",
          "source_sha256": "a222e7789d364f94071d10bc40af3ec3cb729cf86e7b8527ddd6b255a45f7243",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-type.frect/description",
          "source": "32-bit floating-point rectangle exposed to scripts as mutable origin and size components",
          "source_sha256": "d5d6c26dc4f264d25047de0ef015cb2512a60329c00c9a8fd13085366c1bd815",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-type.fsize/description",
          "source": "Two-dimensional 32-bit floating-point size exposed to scripts as mutable width and height components",
          "source_sha256": "d23ac1087f3aeab2a5e2d0c8463623c8d71a29fde25aeee5476276deab727b13",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-type.hdir/description",
          "source": "Discrete map direction normalized modulo the configured six-direction hex or eight-direction square geometry",
          "source_sha256": "f0addaf98410dba5575958d9374fc577a67dd1cb4a2a51c89a858760ec83080d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-type.ident/description",
          "source": "Strong signed 64-bit identity token whose zero value is false and whose ordering compares the stored value",
          "source_sha256": "3cbffea791314fa33522832d305431abd470b6aa143c0a29cb153103ed590c49",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-type.ipos/description",
          "source": "Standard two-dimensional signed 32-bit integer position exposed to scripts as mutable x and y components",
          "source_sha256": "2a4e1fb4ea7c89f8f2bf5faa85017d98e090f0e5f1dfcebe01a8fb2fd910fdb5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-type.ipos16/description",
          "source": "Two-dimensional signed 16-bit integer position exposed to scripts as mutable x and y components",
          "source_sha256": "57fe41a2e457286810d54874a5da0bef8a36e6ca39660087cf28bd671b150f2d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-type.ipos8/description",
          "source": "Two-dimensional signed 8-bit integer position exposed to scripts as mutable x and y components",
          "source_sha256": "7a1a129728d452f1fc8ec2ebac25913512dcd1cb5b5e141a1ffe0d61ce601f6f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-type.irect/description",
          "source": "Signed 32-bit integer rectangle exposed to scripts as mutable origin and size components",
          "source_sha256": "e035e7c03937148528d83212fe8e4447396e707fa4cbfda66102c78f91265101",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-type.isize/description",
          "source": "Two-dimensional signed 32-bit integer size exposed to scripts as mutable width and height components",
          "source_sha256": "28981dc1b74cead3dc0336acdfd794f6972c6552e7b1cebc4891c2c851432048",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-type.mdir/description",
          "source": "Map direction angle stored as a signed 16-bit value with conversion and rotation operations for discrete map directions",
          "source_sha256": "9724e03c29d6b7f0606deba0845a9c75a7bafccaaa9648d78111890dbd8c6486",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-type.mpos/description",
          "source": "Signed 16-bit map-coordinate position exposed to scripts as mutable x and y components",
          "source_sha256": "820942c8d1513d67fa5064785339ee84fba7dd1cdd9d4956d1d2225800ffe068",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-type.msize/description",
          "source": "Signed 16-bit map size exposed to scripts as mutable width and height components",
          "source_sha256": "559f799f4411c1ac634fa0db646d2526932b2e6d734ee74892a1a3536bff6d33",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-type.nanotime/description",
          "source": "Monotonic steady-clock time point stored as a signed 64-bit nanosecond count; it is not civil wall-clock time",
          "source_sha256": "dfabe0f60bdc4de2b9b54b64e79d216e03077088931a04129f5f5b0e47172ea5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-type.synctime/description",
          "source": "Engine-synchronized time point stored as a signed 64-bit millisecond count for shared game-time state",
          "source_sha256": "65901e3b7d244868bde7111773ed0f7a2260436b0c98058342fc6dc6134f442f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-type.timespan/description",
          "source": "Signed nanosecond-resolution duration stored as a 64-bit count",
          "source_sha256": "fccf96a88f0997b940ce85347e4025dca5f6cf92edda31ae884483362c9fcc54",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=script.value-type.ucolor/description",
          "source": "Color type",
          "source_sha256": "4d31875bdc9804641c7b56a34d2403d832608ae3a7fb3dfacc47b886fd5705d1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.Audio.DisableAudio/description",
          "source": "If true, audio is disabled",
          "source_sha256": "bfcb7319f882071416545dd0ce3feb7fb4da34280d0bfb6800f82ca76addb6fa",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.Audio.MixRate/description",
          "source": "Sample rate the engine mixes at before handing the stream to the device, which resamples if it runs at another one",
          "source_sha256": "0b0886890f0a433af20732dc2253d38e2126e4d62158b1baef6deb6468a87f60",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.Audio.MusicVolume/description",
          "source": "Music volume percentage",
          "source_sha256": "a61fef5f2d0be048ec94ff7b652357f01d7300d1927622bc1e9322a6c9ea73e8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.Audio.SoundFileExtensions/description",
          "source": "Source extensions the sound-name index accepts; every baked payload is Ogg Vorbis whatever the extension says",
          "source_sha256": "02e3b0c2a286769135e815f9825d49f9f30953592d8160bb65b91a28ef599d22",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.Audio.SoundVolume/description",
          "source": "Sound volume percentage",
          "source_sha256": "bc010f8808501fd7f24738922abd60510dc0e6bcad505ebe9b93a894cf211644",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.Client.ClientPropertiesPackData/description",
          "source": "If true, client entities with prototypes use overlay property storage",
          "source_sha256": "cbe9e0cd3942fd38f0afdcd35887b9595afa9763b946e64b0265d980eb150a3a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.Client.DefaultSplash/description",
          "source": "Default splash screen",
          "source_sha256": "256fc9b8e68a86e2beecfec75c60f86c6abe061ec6794c880092360fdbeb0a8c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.Client.DefaultSplashPack/description",
          "source": "Default splash pack",
          "source_sha256": "fbe8b329b3a6caee5ba7cf9910fea8e24b4ad47f1d8c224c479d4fa5bef0fb1c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.Client.ForceEmbeddedRuntime/description",
          "source": "If true, the client host runs the embedded engine instead of loading the bundled runtime DLL first (an explicit --ClientLibPath still loads a DLL); read from the command line at host startup, before settings are otherwise resolved",
          "source_sha256": "56fcd7ab7caaf6e89297910cc19a1c8b64f16e35231b5c0aa10fa7250136d85b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.Client.Language/description",
          "source": "Language setting",
          "source_sha256": "d29c9ab6ebd304db97654cb01d0c8d60d72fc608aab0fc6498f4e4be2b60696f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.Client.UpdaterInfoDelay/description",
          "source": "Updater info delay in milliseconds",
          "source_sha256": "8f04e4c40399a8205fb57107f09e40a61620a15a9ebd1c90d8805ad505abd2b4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.Client.UpdaterInfoPos/description",
          "source": "Updater info position (<1 - top, 0 - center, >1 - bottom)",
          "source_sha256": "d1d836d1e82da73d766192ee1c4cb7d2b619602fb86a6ace264445adc5261cec",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.ClientNetwork.ChannelServerKeys/description",
          "source": "Pinned secure channel server public keys, 64 hex digits each; all are offered at once, so the next key can be pinned ahead of a rotation",
          "source_sha256": "c9ccb9ff8f98e133dd1c4f900beb35a62d126f2b2bc8788d156ce271ccc4a297",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.ClientNetwork.DebugNet/description",
          "source": "If true, network debugging is enabled",
          "source_sha256": "75aeb4feff001b54ae2388ec4f30783fe59ec762dec8fe15909babb1dd739d0d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.ClientNetwork.PingPeriod/description",
          "source": "Ping period in milliseconds",
          "source_sha256": "351296212815c67270504519c771d19c6052ca32ce2a0e13ffbbaab93fab77fe",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.ClientNetwork.PingTimeout/description",
          "source": "Time in milliseconds the secure channel handshake or a ping may stay unanswered while nothing at all arrives from the server before the connection counts as lost (0 = wait for ever)",
          "source_sha256": "242d85e22e8fdfb7b143e25881828989e85fcf66d2cb3f206c82febc24313293",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.ClientNetwork.ProxyHost/description",
          "source": "Proxy host address",
          "source_sha256": "d609fcc9b1b76210c47b335240db086610de3c841fa6a774d5a2c28387f83b1f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.ClientNetwork.ProxyPass/description",
          "source": "Proxy password",
          "source_sha256": "3978a115c658449645b59552985be4cc2573dc6b889d382f8e951e2447fb58c3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.ClientNetwork.ProxyPort/description",
          "source": "Proxy port number",
          "source_sha256": "9d4035b95b7dd29da3fafab017196a7269d4c905bfe600a6b938f9965e0fd2be",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.ClientNetwork.ProxyType/description",
          "source": "Proxy type",
          "source_sha256": "eaa671b100292508b0752f54ec766a18d51b27472abb47663832ccefebe239f8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.ClientNetwork.ProxyUser/description",
          "source": "Proxy username",
          "source_sha256": "4d4135dc3ab09b95118997126d03ec157241d2074093ff54250c4c42092c43cf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.ClientNetwork.ServerHost/description",
          "source": "Server host address",
          "source_sha256": "0c6680f7bfb8df70a10762372a852f08622c484ec3ea0b9682942df1efea66a7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.ClientNetwork.UseUdp/description",
          "source": "If true, UDP native transport is used instead of TCP",
          "source_sha256": "77f8c6bcb65964a72b44b3ca9829676cdbf3a0e9898f0361e088c1eecdcd7a3a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.ClientNetwork.WebSocketHost/description",
          "source": "WebSockets server host for client connect",
          "source_sha256": "bbf79c4a2eeab25fb78259da1a2d89c267616b9d232764971d9053c157dc6f27",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.CritterView.NameOffset/description",
          "source": "Name offset value",
          "source_sha256": "f954cd6e04f029390b01700cd7ff542d3e9e97bf12254ebad7b0a309845327ca",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.Hex.FullscreenMouseScroll/description",
          "source": "If true, fullscreen mouse scroll is enabled",
          "source_sha256": "914a339273dbffa0b374d4873b0b9f1b48c33506faf238869ac0cf4af8ab9421",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.Hex.ScrollBlockSize/description",
          "source": "Blocked hexes around scroll block line",
          "source_sha256": "16d641f978d639554bf6a739688cf4b3c94872fa26f35abf3d82d139a9b41e5f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.Hex.ScrollFixedDt/description",
          "source": "Scroll fixed delta time in milliseconds",
          "source_sha256": "a06b1d9ba6337ef9aa62260118ab535d377b1542ba45996dbd5bb30ec9b41c98",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.Hex.ScrollSpeed/description",
          "source": "Scroll speed in pixels per second",
          "source_sha256": "c9431351dd200fd48c7d0a024009d0e2ff42a5c196a3d29ee2471d888b5cf4b9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.Hex.WindowedMouseScroll/description",
          "source": "If true, windowed mouse scroll is enabled",
          "source_sha256": "cc95b1db7796b9626c7f252d9721b66d023a593c5c941ac92120427efbb30953",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.Hex.ZoomSpeed/description",
          "source": "Speed of zooming",
          "source_sha256": "ada34ae3ea398a1a65ae556cc7d28ff235ee8bb5f8416b9d35a88ff8917fca62",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.Input.ConsoleHistorySize/description",
          "source": "Console history size",
          "source_sha256": "3038660afdcbf188ff182e16bb56f07190bbe15f5f14e49e9ab4d8f29b5656a8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.Input.DisableGamepad/description",
          "source": "If true, gamepad support is disabled",
          "source_sha256": "b432ffab479071bdacb6822c57380b5d23ecfaa9505e38fb646b3d56f555ef07",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.Mapper.ParticlePreviewEffect/description",
          "source": "Particle resource to preview after opening the start map",
          "source_sha256": "f056beb30603da0d573afc7d04da1339a2f20703e1f98478b0ea68e6e4280c62",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.Mapper.ParticlePreviewPrewarm/description",
          "source": "If true, prewarm the startup particle preview",
          "source_sha256": "59995e02dec22cf25dcbb1136ee7d22c66a2764919890d4774193ccf21c46edd",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.Mapper.ParticlePreviewScale/description",
          "source": "Scale for the startup particle preview",
          "source_sha256": "d01fa6d867db0526d2b6033c4d85d3de13af811ddd46f520210edcb0e7bb59b7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.Mapper.ParticlePreviewSeed/description",
          "source": "Seed used when the selected runtime supports seeded startup preview",
          "source_sha256": "522587314a3d65317692f42eec018bcda62441efdc2dbc2d4f6c37d0e82d8adc",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.Mapper.StartHexX/description",
          "source": "Start hex X coordinate",
          "source_sha256": "8a7f93cb56463833c68f251b3ea101367cbab1f3b921989dadd4a99f083c351e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.Mapper.StartHexY/description",
          "source": "Start hex Y coordinate",
          "source_sha256": "c35e4d79ae4057e1b318c6af2cc95d073701ff1ac9ad83ae55a9192591584600",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.Mapper.StartMap/description",
          "source": "Start map name",
          "source_sha256": "d40e25f02079a61b57e0155374b6359a93babd8d415a08a9e1a3cc5ddd095cc8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.View.DisableFog/description",
          "source": "Disables fog for more performance",
          "source_sha256": "f334be85a2eafa71d9875b05dc24e6e4b048fe0b4ea1be3d5816d1fe1ec5df5e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.View.DisableIndoorMask/description",
          "source": "If true, MapView skips the _rtIndoorMask render pass (saves a sprite-draw + RT swap per frame). Use for projects without weather, or to debug-see weather through hidden roofs.",
          "source_sha256": "627759838c73d80835ce40221b3d99ecdbe2892152b82504956436765c134a75",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.View.DisableLighting/description",
          "source": "Disables lighting for more performance",
          "source_sha256": "47c51fce1169e58f350028df1cdf0b8eaeab19acf4353f93d2620ac649b2a9f8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.View.FadingDuration/description",
          "source": "Fading duration in milliseconds",
          "source_sha256": "7d2d5e222ae878817575d9c2ddc92995fee258db28debdea3000c887febf642b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.View.GlobalDayColor/description",
          "source": "Project-wide default DayColor (12 bytes, channel-major: R0..R3 G0..G3 B0..B3); maps may override per-map via Map.DayColor",
          "source_sha256": "6f5abcaa621938e7241e47c66b4c6595fbd3c32364a8d161f1bde3b8b5f923a9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.View.GlobalDayColorTime/description",
          "source": "Project-wide default DayColorTime in minutes (4 keys); maps may override per-map via Map.DayColorTime",
          "source_sha256": "e51f37165c1cb91383a33532d553d72d72533a1ae08eec31d6c628ff04c5c6d7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.View.HideNativeCursor/description",
          "source": "If true, native cursor is hidden",
          "source_sha256": "315d207b60d547e9ea14b5b069e6c4835d4a5cf9536618f9f720c855265e490c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.View.MapDirectDraw/description",
          "source": "Draw map directly to main framebuffer (speed up rendering but disables zooming and make scrolling jumpy)",
          "source_sha256": "c179d38c43af58ac16be74cc65dbd5896c4461fa668d1f9f0ac805acb770bbe8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.View.MapRenderTargetScale/description",
          "source": "Fixed map/light/indoor-mask render-target scale relative to the logical screen; clamped to the device texture limit",
          "source_sha256": "c06e9cdce3785dd47d7df0391ff7af2c53e805645b25ab351399d8a62bea3a91",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.View.MapZoomEnabled/description",
          "source": "Map view zooming",
          "source_sha256": "cfd62d50790ea88985797fdb7773674ccc566630379fd5d686aa6b83a20877d4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.View.MonitorHeight/description",
          "source": "Monitor height (read only)",
          "source_sha256": "95912798304624c79e517e71b8f9aab1e3feb6169163b56fbfe9791257910c12",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.View.MonitorWidth/description",
          "source": "Monitor width (read only)",
          "source_sha256": "4f274fa1d9bf51032718c2735cd583bbbb6a4621a97dac2df126146fab97422a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.View.ScreenHeight/description",
          "source": "Screen height in pixels",
          "source_sha256": "c0ebb43c4f244169dcc17400dc4dcb9aba586118f86cdc78b7807a633a379c24",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.View.ScreenWidth/description",
          "source": "Screen width in pixels",
          "source_sha256": "d378cd57e7d5927e3d4851402996e58a249e9b0b76e6cef32bbaadbf5c40a7d6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.Web.AspectFactor/description",
          "source": "Web canvas height-to-width factor, width = height / factor",
          "source_sha256": "f0faa49081224ca44fe2f308800586c07ce5cfe7de4331d4a5dd6bc380e4cea4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.Web.AutoResize/description",
          "source": "If true, web screen resolution is recalculated on browser window resize",
          "source_sha256": "cc7e1e228d1867fb501176b86c5f356e83fb6355ad92e7528998828de373af43",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.Web.BackgroundColor/description",
          "source": "Background color for the web page around the game screen",
          "source_sha256": "58c22fbb92261f432c1f97bfa509d27f0ca2330a9d0e8eca5b765107f348a8ae",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.Web.HorizontalPosFactor/description",
          "source": "Horizontal position factor in free page width, 0 = left, 0.5 = center, 1 = right",
          "source_sha256": "b3945b10ac96b8d1d3305fd6b44b1d09d30b698951d4914fd6cc706035f72b23",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.Web.LoadingImage/description",
          "source": "Loading image path for web page, relative to main fomain file",
          "source_sha256": "825e6b3ef1c1bbb5fd2feb4084c3b5a41399d4ae4b1d454da0c15693b15207d7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.Web.MaxHeight/description",
          "source": "Maximum adaptive web height in pixels",
          "source_sha256": "1c7a4ea455bd5e4fa0f28a4f56b1b8acbaf98d5932b6218af6ffece8d16d16fa",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.Web.MaxWidth/description",
          "source": "Maximum adaptive web width in pixels",
          "source_sha256": "48364c36b6004ef2e9e39adf91bc7129f25b69c2470ecfc8ef4ec280fede7de4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.Web.MinHeight/description",
          "source": "Minimum adaptive web height in pixels",
          "source_sha256": "13f9c2372b38cb93b9535210d4404761604e72d3eb5fdb6c670502228e9f8447",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.Web.MinWidth/description",
          "source": "Minimum adaptive web width in pixels",
          "source_sha256": "c460b8a45031d568643c4056ef3796968412422438e81a529643de1c2fc69be9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.Web.ScreenHeightPercent/description",
          "source": "Web canvas height as a percentage of page height",
          "source_sha256": "8de5b1ac71e074ae366dff31060ece23cb3c94986ed21b90c90acd1a1bde4762",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.client.Web.VerticalPosFactor/description",
          "source": "Vertical position factor in free page height, 0 = top, 0.5 = center, 1 = bottom",
          "source_sha256": "87435303b603f1731bae8837314895ad1fb632ab3e1ef4a78d37989038f365b5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.AngelScript.AttributedFunctionDirectCallAllowedNamespaces/description",
          "source": "AngelScript namespaces (matched as prefixes) whose functions may call attributed functions ([[Event]], [[TimeEvent]], etc.) directly instead of going through the runtime dispatcher",
          "source_sha256": "02ea8d110e30b4507cd141bc298f6d73c687fdd0056052f126d75b2a4f98caa3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.AngelScript.DebuggerBindHost/description",
          "source": "AngelScript debugger TCP bind host",
          "source_sha256": "105a78df920b5eff592a7b61b87549eafae8dc678d5a81fa84a1d60ce54be218",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.AngelScript.DebuggerEnabled/description",
          "source": "If true, AngelScript debugger endpoint is enabled",
          "source_sha256": "023502e5be8c2b3ce899fbedf31537d51473f6e2933db0ec53fc530caf732ab3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.AngelScript.ExtraDirectCallBlockingAttributes/description",
          "source": "Project-defined attribute names that should also block direct AngelScript-to-AngelScript calls in addition to the engine's built-in dispatcher-bound list",
          "source_sha256": "65c5c19e2ca50c78b03fddafc1504dbf59a764d5e23a8415ac949aa5f2db059a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.AngelScript.MutableGlobalsAllowedNamespaces/description",
          "source": "AngelScript namespaces (matched as prefixes) whose module-level globals may be mutable (everywhere else const-only)",
          "source_sha256": "45e5cb643af7e6546dce72772afdfe5cff2dd965e7fe859eca742e0f46d97677",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.AngelScript.OverrunReportTime/description",
          "source": "Time in milliseconds to report AngelScript execution or entity-lock wait overrun, 0 to disable",
          "source_sha256": "2f940020ef7475c5be65a3b8f1773996fcec7643ca58c8b9325eea9e8c8f4a04",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Baking.AllowRepeatedProtoParents/description",
          "source": "If false, a prototype reaching one ancestor through several $Parent entries fails baking; when allowed, a repeated ancestor contributes its fields only where it is first reached",
          "source_sha256": "bc93f96eda5667f24ca75c3b5450b23d990f2480d850bdedbc330ef483cdf114",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Baking.AudioVorbisQuality/description",
          "source": "Vorbis VBR quality audio baking encodes with, from -0.1 (smallest) to 1.0 (largest)",
          "source_sha256": "c22df8f9f16f9d00527cc400585e58ee2f6c86b5ac6efde4a44d7c966fc9be69",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Baking.BakeLanguages/description",
          "source": "Bake languages",
          "source_sha256": "2f356d66742cfc44e45d055b0260213838e3157f35c7724f27ada03007e2efee",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Baking.BakeOutput/description",
          "source": "Bake output directory",
          "source_sha256": "caa86e9db185c228a52a95f13c88466035c3d23fbfc6c775d275bd587107e7e0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Baking.BootstrapGameSettings/description",
          "source": "Game settings an embedding project consumes before metadata is available (ApplicationInitHook and earlier); written to the binary config in full instead of as a sub-config delta",
          "source_sha256": "b6d09bfc4cf6066366c5d8235af3e1452157ad4f7d78edde54006a6f8ca0ebba",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Baking.BundleCompressLevel/description",
          "source": "Compression level of the distribution bundles and the executable's Embedded resource pack, on the zlib scale whatever the codec: 0 stores, 9 is the strongest",
          "source_sha256": "6ac0ec394437e5145700bab5f90f9eaf6dca5edd134e5a7cfd5125242cfc9791",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Baking.CacheResources/description",
          "source": "Cache resources directory",
          "source_sha256": "b73a2fe61ba6dd64d06526898296c8f00b854b8a246968335211b76fc4e4000a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Baking.ClientResources/description",
          "source": "Client resources directory",
          "source_sha256": "dc13e0a37be9983970e884a4a1e6734f64ea8329b275c48e048cb0ccc98607d0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Baking.Direct3DLevel9Shaders/description",
          "source": "If true, Direct3D effects other than model ones also carry level 9.3 code and a build without 3D accepts feature level 9.3 devices; an effect that does not fit level 9.3 fails the bake",
          "source_sha256": "c5f0bcdce449a6108e365ad6a097523424836f7fc952d408a832cef7b52b0d7b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Baking.ForceBaking/description",
          "source": "If true, baking of all packs are forced",
          "source_sha256": "4db6ccbe94bccb8b5aaada22144eec3f24de082096ddf1fad3825ff7c38c1883",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Baking.IgnoreInputDirs/description",
          "source": "Resource pack input directories left out of every pack, relative to the config declaring the pack; each must be an input of some pack",
          "source_sha256": "69e78a580d1cc450cf72ed45169ce82c5ab36fc3e4fee8688df61d0b336b5450",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Baking.IgnoreMissingBakerWarning/description",
          "source": "If true, missing baker warning is suppressed when stale baked resources already exist",
          "source_sha256": "ec1017b11204e5843a1750ef038f0023c2ed5850aaf480862c56213709edf388",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Baking.ModelAttachmentMaxExtent/description",
          "source": "Largest world extent a directly attached model may reach; above it the export sits in a larger unit space and the client cannot build its sprite frame",
          "source_sha256": "16363e92cb5692096b36a2a5614ca31bd68c46052c2f34c30332bd3d61813054",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Baking.ModelAttachmentMinExtent/description",
          "source": "Smallest world extent a directly attached model may reach; below it the export sits in a smaller unit space than the engine",
          "source_sha256": "d6cb08b61f6ec170195e8646b85c2ba32bd0eaf76c7004342263e5ebe29d6d0e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Baking.PlatformBinaries/description",
          "source": "Per-platform client runtime binaries directory served by the updater",
          "source_sha256": "f6c416bd17d29f1a813c4eae79e270cccb6d9f9030937919e9fc15f3cb63f4fb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Baking.PrebakeOnStartup/description",
          "source": "If false, an unpackaged application starts on the resources already baked instead of running the baker first; for launching several processes from one freshly baked checkout",
          "source_sha256": "937bb52fe511828480b24b13c2bc63e438ecb5b466f2fa2fb4b96fca3e2d3d65",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Baking.PreciseModelBounds/description",
          "source": "If true, model bounds measure every skinned vertex; if false, per-bone envelope boxes produce a conservative superset far faster",
          "source_sha256": "0597d7306b734f8b672d97b6c54eb57ede50655d340d26f4b46012f236d92c03",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Baking.ProtoFileExtensions/description",
          "source": "Authored proto container extensions",
          "source_sha256": "e4b24bd4666bbc4cbd4a7b80d9aa8523b81fec588b5632fbde04b65c22405b85",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Baking.RawCopyFileExtensions/description",
          "source": "Raw copy file extensions",
          "source_sha256": "b2df2c59477113ca8fae7e1a1f46fe0e75acb2616835da936bacb7014063f497",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Baking.ResourcePackCompressLevel/description",
          "source": "Compression level of the resource packs, on the zlib scale whatever the codec: 0 stores, 9 is the strongest",
          "source_sha256": "e973fad524f8cd2c9edd0716e60fd07537887db20626ff44a62b18f818b19d17",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Baking.ResourcePackMinCompressGain/description",
          "source": "Percent a blob must give back before it is deflated rather than stored as it is",
          "source_sha256": "1121119449f0a3a821492bc433765e465befe0c69c14be557d7fa808edac656f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Baking.ServerResources/description",
          "source": "Server resources directory",
          "source_sha256": "6adc8d3d036c22236ced92bf4220e2208b7ce1cd338009818220607f67ac2c43",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Baking.SingleThreadBaking/description",
          "source": "If true, single-threaded baking is enabled",
          "source_sha256": "512a88fdecba368e21484023c0027693dde8b95bef2435c3c0f6c5506109502d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Common.AsyncLogWrite/description",
          "source": "If true, log messages are written to file and console from a dedicated background thread",
          "source_sha256": "436ee2776ffc7d3214d7e8c18beab0c492386c5ca87908c52830efa9b1b64780",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Common.GameName/description",
          "source": "Game name, used in logs and window title",
          "source_sha256": "75a486c1d1e7dba9804fc9503a233d738fd39a69d7db1a239d4d6b3b78b1c0f0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Common.GameVersion/description",
          "source": "Game version, used in logs and window title",
          "source_sha256": "21b6c6a6ccd530ca9f1b91014c55e19d66336de1e4b39ce8391fb016542532c6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Common.Packaged/description",
          "source": "If yes, then the packaging was done (read only)",
          "source_sha256": "ce8c99725bab653a35c82f3c3fc3c6a5ea92b9cd34d1c0cdc9a3312b4559d2d3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Common.SecretSettingTokens/description",
          "source": "Case-insensitive substrings that mark a setting name as a credential whose value is masked as \"***\" in command-line override logs",
          "source_sha256": "ca17dee98cb802f600af5284a3246be7593fd24b68225b87aba3097859a3f4d9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Common.UnpackagedSubConfig/description",
          "source": "Config applied in unpackaged builds",
          "source_sha256": "80518118be9a3111e2e6de34199969d4817bef48b98bf726293dbe00b3ca2260",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Common.UserWritablePath/description",
          "source": "Read only. Writable data root for everything written at runtime - log, cache, resource overlay, self-updated binaries, server database. Resolved at startup before anything is read from disk and therefore NOT settable from a config file: the command line names it, otherwise an INSTALLED marker beside the executable selects the per-OS user data dir plus the project name (Windows %LOCALAPPDATA% else %APPDATA%; macOS/iOS ~/Library/Application Support; Linux/Android $XDG_DATA_HOME else ~/.local/share), and without a marker everything stays relative to the working directory. Read-only base resources stay where they are with this dir layered on top",
          "source_sha256": "2cf833ef4fecb22fe2fb5efeaa30757a29f9c3c94f7df46e3938f28928c00064",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Geometry.CritterBlockHex/description",
          "source": "If true, critters block hexes",
          "source_sha256": "b2837c05e692850cfe11e54b33477c8fb4b79ed69319f5502618c2e7cc5d775c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Geometry.MapCameraAngle/description",
          "source": "Angle for critters moving/rendering",
          "source_sha256": "bca02a7d6855676aed0f4af2bcc66bd1a85e557e51519a6122ec016b733f9a52",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Geometry.MapDataPrefix/description",
          "source": "Path and prefix for names used for geometry sprites",
          "source_sha256": "ae21a1bf04aa7944cdc7b3ccb9eb74e0ae71c537d728313c828ccae7e9d16383",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Geometry.MapFreeMovement/description",
          "source": "If true, free movement on the map is enabled",
          "source_sha256": "5d4560a0b24ef8621e5072659792ec8db6820d64018093b39076685fb78db6a9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Geometry.MapHexHeight/description",
          "source": "Hex/square height",
          "source_sha256": "30b29497966c167389b9180f15db5698c46cebe24b4a314aaecf55c86f350c72",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Geometry.MapHexLineHeight/description",
          "source": "Hex/square line height",
          "source_sha256": "ba36c94a146fbd0ad1a6f4d1479332d4b156685b3274a73427a6a3c18b6d4ce9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Geometry.MapHexWidth/description",
          "source": "Hex/square width",
          "source_sha256": "0243061ad7529f726709ab0c3f943b8b516200150191e73de1679904ad509aec",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Geometry.MapRoofElevation/description",
          "source": "Roof tile 3D elevation, applied to every roof tile (a roof is just a tile lifted in 3D so it draws above the walls). Replaces the old 2D MapRoofOffs* raise; the flat tile/roof XY offset now lives on the BaseTile prototype Offset",
          "source_sha256": "484ce993b69c8e743d162f73987b5b4585f8c34b765fe942ebeca40e66e2ef23",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Geometry.MapSmoothPath/description",
          "source": "Enable pathfinding path smoothing",
          "source_sha256": "a2fecad09688a16111550d84da776213d81cea1daa49ad240511b12b7b3e0cf4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Geometry.MapTileStep/description",
          "source": "Tile step value",
          "source_sha256": "fa24e159750e2ce5d1a47bac3b06ed5c27983abd4fce3947483e4eba47429d25",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Geometry.MaxPathFindLength/description",
          "source": "Maximum pathfinding length",
          "source_sha256": "0af7be618ba6559feb5a36e61c808a64a73e2fc66f69e78e1a44e9e6c264fcf2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Geometry.PathFindCritterDetour/description",
          "source": "Hexes of detour a path search trades for walking through one living critter",
          "source_sha256": "7200452f94f033226946fc44667272fb2bdb485a2022d1e35520d3cb820d1843",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Geometry.PathFindEnclosureProbe/description",
          "source": "Hexes a path search may flood back from its target to prove it walled off, 0 to disable",
          "source_sha256": "24045423e05f77bed9277f02454a15d54b29650e1b46334ad39593b547414256",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.ManagedScript.AdditionalFiles/description",
          "source": "Analyzer configuration file paths passed to the script compilation as AdditionalFiles",
          "source_sha256": "3fe5c2fff1bcb263d74bfcbbe11e12183864029b760da9600dd4e0fe260927fc",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.ManagedScript.AnalysisLevel/description",
          "source": "Analysis level of the generated managed project, empty keeps the SDK default",
          "source_sha256": "86b62e749432fcb52427d5d0cf9e11961ab8b94c9fb660d416989bc2b9b0e2fe",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.ManagedScript.AnalysisMode/description",
          "source": "Analysis mode of the generated managed project, empty keeps the SDK default",
          "source_sha256": "0677da7b23c97052a65b673871d49b6e0e93464643e8888217f4a39ac98e65ad",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.ManagedScript.AnalyzerPackages/description",
          "source": "Roslyn analyzer NuGet packages as 'name,version' entries, version is mandatory and must be exact",
          "source_sha256": "800cfac78cc552ecbf254431b075aabd031db416a72577aaba1cd22d28dbbc7f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.ManagedScript.Analyzers/description",
          "source": "Roslyn analyzer project paths referenced by the generated managed project, so their diagnostics run in the script build",
          "source_sha256": "22f0ea497d4c1f5f2c6e6f510723f769eef94995187eb103264684b153c9b2a2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.ManagedScript.Assemblies/description",
          "source": "Managed script assemblies to build",
          "source_sha256": "23726bf8ad6ca5993edcd8a2944060a6f29a195f0788016e38bcd73b6695bf8d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.ManagedScript.BakerDryRun/description",
          "source": "If true, managed baker writes stub markers instead of compiling assemblies",
          "source_sha256": "d00367ffd07cb131f486ae411542a076d6c09eb00338f2414c5da519bb426558",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.ManagedScript.ClientPatchesEnabled/description",
          "source": "If true, a client applies the script patches its server sends; each client reads its own config",
          "source_sha256": "3abbca1aa2f68a82b6ff63909121efa573e271d84c23b13af7f4ec4d817f5fdf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.ManagedScript.DeepTrackEntityWrappers/description",
          "source": "If true, every managed entity wrapper is also tracked weakly so shutdown can name the wrappers that still hold a native entity reference; costs a dictionary write per wrapper, while the live wrapper count shutdown reports is always kept",
          "source_sha256": "45e85cf0088313e8edd5772f232059f2c27f5bdef65e9baf64262b418c41f5bd",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.ManagedScript.Dirs/description",
          "source": "Managed script source directories, top-level .cs files of each are compiled in place",
          "source_sha256": "6671ace21111298582b86636c049bb7437a0c1c1ea13d835c53701f08f06b3ba",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.ManagedScript.ExtraReferences/description",
          "source": "Extra managed assembly references as 'assembly,target,reference' entries",
          "source_sha256": "84437271dda887f1e2665b6218e84a66413e3d99264e4eeccd1295ff36606b5f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.ManagedScript.ExtraSources/description",
          "source": "Extra managed source files as 'assembly,target,path' entries",
          "source_sha256": "bc7d93fcaf111366f70de7fbdc16ddb2d06b0d93288e1f5ff5d23968182c2bc4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.ManagedScript.GeneratedDir/description",
          "source": "Directory for generated managed scripts and project files (empty targets the build GeneratedSource/Managed directory)",
          "source_sha256": "074d425c006b4246222e111ece975a2cafbe7a8039b80244bb5289676eb4e72a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.ManagedScript.InteropProbeOnStart/description",
          "source": "If true, every native-to-managed transport the runtime can use is checked once scripts start, one INTEROP-TRANSPORT log line per check; qualifies a client no test suite runs on, such as a browser or a device",
          "source_sha256": "ab2b12288bf1f7676f37a14f3cd866bcd19c880461436d0958baa3f3bc7822e5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.ManagedScript.MsBuild/description",
          "source": "Managed msbuild command",
          "source_sha256": "b58d126e674f2f05d81720694ba4a8eb61369ab01e915594ca5286c7ce24eb51",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.ManagedScript.OverrunReportTime/description",
          "source": "Time in milliseconds to report managed script execution or entity-lock wait overrun, 0 to disable",
          "source_sha256": "7caa7c7c060a941c955c47847dc2ce87009fff7b77088025c3a4eecf3f828c4d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.ManagedScript.PatchPointWeaver/description",
          "source": "Patch point weaver project path; when set, the script build gives every eligible script method a patch point, so a running process can replace its body (ScriptPatches)",
          "source_sha256": "6f9fc7dc0ee3f5cb9c90893d87a979cfbf8aba7383a577c46132b001703f8157",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.ManagedScript.ProjectName/description",
          "source": "Managed project base name",
          "source_sha256": "b683583d33aeadbc31c49a8cae5f98382efefe99ecc9b2a348dfdc5de6cb5ea3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.ManagedScript.ServerPatchesEnabled/description",
          "source": "If true, the server applies script patches (ScriptPatches.Apply); the woven patch points cost the same either way",
          "source_sha256": "1b51619f0ab2d041c83cf95ef14d9c265a5e8eb6223bca50ab77d2230a644954",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.ManagedScript.TargetFramework/description",
          "source": "Managed project target framework",
          "source_sha256": "ba83b843eb1acfced86fd1a2fc0ef7ad35468b874125266cdb5845e03c5bc141",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Network.ArtificalLags/description",
          "source": "Artificial lags in milliseconds, applied to both directions",
          "source_sha256": "1522d8102c330ba08db15696ea0139bb5d34660e682b408de05e422f1f492745",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Network.ArtificalLagsJitter/description",
          "source": "Extra per-batch random delay in milliseconds on top of the artificial lag, emulating stalls",
          "source_sha256": "b1f42459b227788a35952854859ae4ff43a979ff8947793d2323e4247f91fa06",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Network.CompatibilityVersion/description",
          "source": "Compatibility version (read only)",
          "source_sha256": "b5765ed9514fe4e1c45dbc7b698d614ab4a8300e73bb53943a26fa39df852a15",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Network.DisableInterthreadCommunication/description",
          "source": "If true, server does not register the in-process interthread listener; clients in the same process fall through to TCP/UDP",
          "source_sha256": "03c31a929c1c98e4e37ce96b844f40850bdb87a428d155145efcfc9e61f5243c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Network.DisableTcpNagle/description",
          "source": "If true, TCP Nagle algorithm is disabled",
          "source_sha256": "46b341e758dc72a10e8f53504479f699db787d1dec8a9adf7f5fe29ced193228",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Network.DisableZlibCompression/description",
          "source": "If true, Zlib compression is disabled",
          "source_sha256": "e62f0bd7898198730ebddae72942af545d699e1f6d967b2d6a2bea818282421d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Network.ForceCompatibilityVersion/description",
          "source": "Custom compatability version",
          "source_sha256": "5cdfe5dd79d376a531d93530af2d1e9eacee261c127564fa1acdb2268b05ae9d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Network.ForceMetadataVersion/description",
          "source": "Custom metadata version, for simulating a client baked apart from the server",
          "source_sha256": "2d985233e7265d52c22e0ab7c8062eb789f0e5f265d04689973488056b0286a6",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Network.MoveSyncTrace/description",
          "source": "If true, server and client write one MOVESYNC log line per movement synchronization event, as stable key=value fields for offline analysis; too verbose for production",
          "source_sha256": "1fbb1cacbeea4ecd18183ee31942e31d8b782412b0d3569d936d72f270844e96",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Network.NetBufferSize/description",
          "source": "Network buffer size",
          "source_sha256": "e5fdec5ca91d617dad9724d85abc9bf82b0411d437d17be80d34efbe91f0c3d8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Network.SecuredWebSockets/description",
          "source": "If true, secured WebSockets are enabled",
          "source_sha256": "6132a6795b02f9aa19fd28027193c4995b8101d6df82a823745bfc0a37084e3c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Network.ServerPort/description",
          "source": "Server port number",
          "source_sha256": "ad9b94c66cc16bc1c0820b93983c94ad574d8aeb353a87b68bf06d71088da8d3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Network.UdpConnectRetry/description",
          "source": "UDP connect retry timeout in milliseconds",
          "source_sha256": "f1b53b678c72e5b3027add4c604fc128c0bf970c57040fb1f83b8fe0f11352e0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Network.UdpConnectTimeout/description",
          "source": "UDP connect timeout in milliseconds before failing transport bootstrap",
          "source_sha256": "bc672fd8d13212787fb625b64423f2fa57adb9e33b7fef6d59ad3fe494e34cab",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Network.UdpPacketSize/description",
          "source": "Target UDP payload budget in bytes",
          "source_sha256": "8a7accbe53e776955f2604be408c3aeca80fc60cb27622f1aef83554c6f9fe3a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Network.UdpPortOffset/description",
          "source": "UDP port offset relative to ServerPort",
          "source_sha256": "ed39d9256e196e4a014f83a4fc606a0a574ab1677fefacbf22e6e7d714b98080",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Network.UdpRedundancy/description",
          "source": "Number of previous UDP packets redundantly resent with new data",
          "source_sha256": "8e1be36b0f6cfcb75a6f0f98b00960013126edffd98d2c9c2cb917510ea15e03",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Network.UdpResendTimeout/description",
          "source": "UDP packet resend timeout in milliseconds",
          "source_sha256": "13876cc44d29b2671c3bb35c1cce7da563fe8896171b0ffe5a22c9c7394b81e4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Network.UdpSendUpdateInterval/description",
          "source": "UDP send tick interval in milliseconds",
          "source_sha256": "9e82779a00e1f6e27b9360d10f3ad58017a52293a91eb45fcc222f623f09bef9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Network.UdpWindowSize/description",
          "source": "Reliable UDP send window size in bytes",
          "source_sha256": "0ae2e418c3f666f699d3787c86e569d03975d2aaae56ae1a570f5f2c3d773682",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Network.UpdateFileMaxPortionSize/description",
          "source": "Maximum update file portion size in bytes",
          "source_sha256": "88ad8ef808fcc52705d472d32805b8fbe76b2120bd6ff302ad5f35b873cd5d66",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Network.WebSocketPort/description",
          "source": "WebSockets port for server listen and client connect",
          "source_sha256": "d092eaab9ccc4d12eab1f66a683f35c5443f29838d8901f864a65905f4f3d7ef",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.AllowSoftwareRenderer/description",
          "source": "If true, a software rasterizer may stand in when no hardware device is available",
          "source_sha256": "3c1f7a2e96da05ceb1503caa47fcf2f2be41f70d0bc5f824f1e4315754bd7ee8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.AlwaysOnTop/description",
          "source": "If true, window is always on top",
          "source_sha256": "c3ec773fa47953a04979a579c387ccfed058378f6b3d75b943ccfa1a9cef46f9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.Animation3dFPS/description",
          "source": "3D animation frames per second",
          "source_sha256": "610bfe98da69d44a03600b036893adaf049405c4d23c6e2013894f93da1275b2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.Animation3dSmoothTime/description",
          "source": "3D animation smooth time in milliseconds",
          "source_sha256": "fef811fbc14ad5ea3fbffc8f6cbcb723ead4c8d5c919263ad3aa505b2a6160ae",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.AtlasLinearFiltration/description",
          "source": "If true, atlas linear filtration is enabled",
          "source_sha256": "95f18e688b72908f0053ae60f19db2255c734d63ace2e51c18dae247cb195898",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.Brightness/description",
          "source": "Brightness value",
          "source_sha256": "06afb1e94c4c087631df5ca38454ec62291447b6e04980fe9dab7b24f0fc5c11",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.CritterBodyTurnFactor/description",
          "source": "Critter body turn factor",
          "source_sha256": "650bf10f3d55b00045ecc8de72e3894f0b0423bf96dc266f348a985abf6e2116",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.CritterHeadTurnFactor/description",
          "source": "Critter head turn factor",
          "source_sha256": "b7946304e2107fcaa3690ffe6e153fb4bb500cdeaedfd2cbdde891d386b3f9f7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.CritterStubSpriteName/description",
          "source": "Fallback critter sprite, empty value uses built-in runtime dummy sprite",
          "source_sha256": "efdd9b42f546b5ee5acc245031917918b4d502dfa1836fd34b448f0a30d1f61b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.CritterTurnAngle/description",
          "source": "Critter turn angle",
          "source_sha256": "afdf0efcdc5c9792952a0b83e9c77de0efc820a2fba7b2a03cf014982150d296",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.DefaultParticleDrawHeight/description",
          "source": "Default particle draw height",
          "source_sha256": "a794164a388924970d4c4713a3643d1c5d59d65766a416394afe229ab89cff24",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.DefaultParticleDrawWidth/description",
          "source": "Default particle draw width",
          "source_sha256": "d1a78073978f041d3ea9cbadf5f0bf4779bb3c378479df54fab14c5194ef0483",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.DrawWireframe/description",
          "source": "If true, rendered sprite and particle triangle edges are overlaid for geometry debugging",
          "source_sha256": "4545b322f9c1a37787116f41a99714c1d390e66998ff37550d27c0ab977546af",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.EggEllipseHeightExt/description",
          "source": "Transparency egg ellipse extra height in pixels added to logical sprite/view height",
          "source_sha256": "f382d9e69f63b1cc15c32e8a19d72d4ecb250caf12b8f8406aa0d88cb6f75604",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.EggEllipseWidthExt/description",
          "source": "Transparency egg ellipse extra width in pixels added to logical sprite/view width",
          "source_sha256": "cbf470ed1b8f80d199f8dfe8c7e4529fe4fb1579be1ea8b00ec9daf54d901e20",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.EggTransparencyTransitionFactor/description",
          "source": "Fraction of egg mask kept fully transparent before linear fade to opaque",
          "source_sha256": "8e359e36e266a4b54fe36c9cfa979ffaf60de85b53caa8eb3fdb744e205f40a4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.FixedFPS/description",
          "source": "Frame rate cap, takes precedence over Sleep (0 to disable)",
          "source_sha256": "cab1ca537bc84be2350a572fab2d9fa165723987fe9a7caed03e508447522541",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.ForceDirect3D/description",
          "source": "If true, Direct3D is forced",
          "source_sha256": "4461296882785b960a564020694d36f3541b0ab6fbe29a5dff6dd312d1e8f167",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.ForceGlslEsProfile/description",
          "source": "If true, GLSL ES profile is forced",
          "source_sha256": "39887af1861e1846d4dcd8743deeeeaaa8a2e88fe98812d1a98bd1997a9c7d2d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.ForceMetal/description",
          "source": "If true, Metal is forced",
          "source_sha256": "a0d1255538195541c7414a98f737cdf6813aa0b910adec60c5998cb320fe4734",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.ForceOpenGL/description",
          "source": "If true, OpenGL is forced",
          "source_sha256": "54e943fc1a15ed700535639ddd81b6764e78debb19b8ef2f6db4331d6d9c256c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.ForceSDLGpu/description",
          "source": "If true, SDL_GPU backend is forced",
          "source_sha256": "7b70ca5ce6cc3291b95168dbd445620df5732327c81c188b5108a6d32007eecb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.ForceVulkan/description",
          "source": "If true, Vulkan is forced",
          "source_sha256": "20f9860eb4ac4fa9846254d6ffa461c825e168cf10467c9c5790f5a46904af58",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.Fullscreen/description",
          "source": "If true, fullscreen mode is enabled",
          "source_sha256": "f81212097829922b8f41915b24d93f4a247e15e4628bde7569e0274852b42858",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.HeadBone/description",
          "source": "Head bone name (Todo: move HeadBone to fo3d settings)",
          "source_sha256": "0de6bec6b7acf6d419061b6bd6d23f9837aa53ded65229ba65363ced7cc55000",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.HeadlessWindow/description",
          "source": "If true, window is created hidden for off-screen rendering",
          "source_sha256": "4f25d72b53f22598e9f6bafa6e5766974623b8dc73c0bd86bb9c2085f864a62c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.ImGuiColorStyle/description",
          "source": "ImGui theme: Light, Classic, Dark",
          "source_sha256": "70ea72551c7c444ac0bdefefebb83088f8a2cb6d56497d75229ee008745ca284",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.ImGuiDefaultEffect/description",
          "source": "Shader effect for ImGui",
          "source_sha256": "62798d900179a2036c08949a4aa0f05351bde9c8bc6e1778465658ab40dae4ff",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.ImGuiFontTextureSize/description",
          "source": "Minimum ImGui texture size",
          "source_sha256": "ac8a84030350113b214ad5b04bd71515e7c2dffce2de1b296cbe74c41076b0d0",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.ItemStubSpriteName/description",
          "source": "Fallback item sprite, empty value uses built-in runtime dummy sprite",
          "source_sha256": "d57eace66c979bddc1f1cc01ec1ef82a5f33b4183f05fab1d5fbf274ae2459ff",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.LegBones/description",
          "source": "Leg bone names (Todo: move LegBones to fo3d settings)",
          "source_sha256": "ab7f47752dc5abdf96cd33d8ae44aeb45989262a533847b2f803e5ba513c5953",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.MapMaxElevation/description",
          "source": "Max abs sprite elevation (px) used to size the per-map scene depth range; smaller = more depth-buffer precision (less z-fighting), but sprites beyond it would be depth-clipped",
          "source_sha256": "caeb1e02813a7c219805a62128827c5543397b2fb53d6b7a5a8398da4dd75d3f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.ModelDirectDraw/description",
          "source": "If true, map 3D models render directly into the scene depth buffer; otherwise they render as cached atlas sprites",
          "source_sha256": "47436e1b9a94c07933c0a19f69a1c5ebfa1ce4f4c779ad7fcb91f079d819ed81",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.ModelLayerProperties/description",
          "source": "Critter properties feeding model layers, as \"<PropertyName>=<LayerIndex>\" pairs; tools use them to dress a prototype the way the game does",
          "source_sha256": "302d5b6ca22125573a8adc656ab97f76881744f2682191134c2fac3bbc04e371",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.ModelProjFactor/description",
          "source": "Screen px per 3D world unit (1 unit = 1 hex = 1 m); scales 3D models and in-scene particles",
          "source_sha256": "f9100beea6b6c023062cff5911a1cb657bad994c0bed840984519014002d7a3b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.ModelSpriteMaxTextureHeight/description",
          "source": "Max GPU scratch-texture height a 3D model sprite may allocate; larger envelopes clamp and draw cropped",
          "source_sha256": "264221c4de7f16d6d6425d87b723ce16045c3a698790b3936509dd8988c23615",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.ModelSpriteMaxTextureWidth/description",
          "source": "Max GPU scratch-texture width a 3D model sprite may allocate; larger envelopes clamp and draw cropped",
          "source_sha256": "ef3bad459fcfcae345e7ac790cc265108df5554a0faccf105acb3eb183fab223",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.NullRenderer/description",
          "source": "If true, null renderer is used",
          "source_sha256": "5fa4323150c42ed136c2e451204ff83952651661633de8674dc03b16e5fbb922",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.RecreateClientOnError/description",
          "source": "If true, client is recreated on error",
          "source_sha256": "02d8054ba9a130f1208a5badcc456ccaa57db6d0943ab56127c8ef2436f2aafb",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.RenderDebug/description",
          "source": "If true, render debugging is enabled",
          "source_sha256": "f6688f9f023234ac4671b0f146111f7a4b163a02c237834010a45a49918eb87c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.RunAnimBaseSpeed/description",
          "source": "Run animation base speed",
          "source_sha256": "69616720af3749296ed7f1f096225bd7803519d5bd8e5ecfa1e7a4e84f0dfa9e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.RunAnimStartSpeed/description",
          "source": "Run animation start speed",
          "source_sha256": "8f459543b9f5bf1efe8a09599326731616e185d57d810d00b44cb55f11e79c8f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.SDLGpuDriver/description",
          "source": "Preferred SDL_GPU driver name (vulkan / metal / direct3d12), empty lets SDL pick",
          "source_sha256": "c4d66721071d58e91f665c0183e0506097ef2d465b52a9353402265b9514951d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.Sleep/description",
          "source": "Per-frame sleep in milliseconds when FixedFPS is 0 (0 yields, -1 to disable)",
          "source_sha256": "a11de795aa83921966ddcf8539af57a194b68a036645f538a85f3908683e5736",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.SpriteHitValue/description",
          "source": "If alpha is greather then hit test is passed",
          "source_sha256": "f5aab8884635d252427936d82bc703b45aab5671320813d121fc568088a16bcf",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.VSync/description",
          "source": "If true, vertical synchronization is enabled",
          "source_sha256": "df5169079f9114616d592fe7a9d4dfab1cdf16414b29faf19cbbc7d1971b7539",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.WalkAnimBaseSpeed/description",
          "source": "Walk animation base speed",
          "source_sha256": "b47fad8701ac6ce43a0e6da675433228c1cb50f763af20de65c11946ee3b6984",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.WindowCentered/description",
          "source": "If true, window is centered",
          "source_sha256": "9dcf89db3fb6c3658df416b67a7ef72ea2c98c3762e06d4af7fe0725fb7dab82",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Render.WindowResizable/description",
          "source": "If true, window is resizable",
          "source_sha256": "05e9fe23428e95794324dd2288aed8806e70020e56898cc83c8f213fbf01c0ef",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.SpriteMesh.AlphaThreshold/description",
          "source": "Minimum alpha excluded from sprite mesh geometry (0-254)",
          "source_sha256": "e7599cc283b523d8f063a402dac1f53cb6b340f7b1e79268a2a101e0eb23ce33",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.SpriteMesh.AreaSavingsWeight/description",
          "source": "Score awarded for removing a full frame area; one point offsets one submitted triangle",
          "source_sha256": "0dfba7673a15c7badb439e1e80c5036ed66f8b4ed9b1dd996d1cc05fffc355c5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.SpriteMesh.Enabled/description",
          "source": "If true, polygonal sprite meshes are generated during image baking",
          "source_sha256": "139b67a44c13780f13b386b1ae93c9f6492bfc92dfe3689ec272170548b1e671",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.SpriteMesh.MaxTriangles/description",
          "source": "Maximum triangle budget searched across whole-sprite, per-component, and detailed mesh candidates",
          "source_sha256": "d16299c1a76eaaaee7cd0981aa3f9e58670c1401f8908df3f4f45be798ba62f2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.common.Timer.DeltaTimeCap/description",
          "source": "Frame delta time cap in milliseconds",
          "source_sha256": "12d88d13b283234836af6e38829dc44b8335626ca2e576a8b166310181790c72",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Android.CompileSdk/description",
          "source": "Android compile SDK level for packaging tools",
          "source_sha256": "9abe9cd9106c23bfc1b5562db4ecf9b660e3c37eee2e707a1bf61028791e1367",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Android.Icon/description",
          "source": "Android launcher icon PNG source path for packaging tools",
          "source_sha256": "82127fa0a2a410fa0d7ef333fb31a7763552a24f1c8134e72e577d81727356fe",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Android.KeyAlias/description",
          "source": "Android release signing key alias for packaging tools",
          "source_sha256": "4ba90124fb5e27d18d82e87891b4d4f6a194e48854940517810b08ba47fcdd05",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Android.KeyPassword/description",
          "source": "Android release signing key password for packaging tools",
          "source_sha256": "2982397c731f175c9bfef7550e35366771a8a9244453f6ed2ac71274f2d5ab17",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Android.Keystore/description",
          "source": "Android release signing keystore path for packaging tools",
          "source_sha256": "3c2f65f2093b162dabba5655fbfeaa73fd1c354d7a486c634f572ce4ea635c44",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Android.KeystorePassword/description",
          "source": "Android release signing keystore password for packaging tools",
          "source_sha256": "8b6919a824c2333f7e10981ecad9053adec986ee74b6c9d7e7663e5c39e40612",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Android.MinSdk/description",
          "source": "Android minimum supported SDK level for packaging tools",
          "source_sha256": "417515ba0fb29e5bee940e9d0ae11ae7650b2c5caa235d7bbd7fee33a776482a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Android.PackageName/description",
          "source": "Android application package name for packaging tools",
          "source_sha256": "75b0ef6525bcd1be0376c9158bde41b5d812ab3d580b06d178ccb7e1b5957cac",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Android.ScreenOrientation/description",
          "source": "Android activity screen orientation for packaging tools",
          "source_sha256": "7d67b57d355e740ed911593f35bd72f0a12912b6b01595c7f78bda5a8f495d8b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Android.TargetSdk/description",
          "source": "Android target SDK level for packaging tools",
          "source_sha256": "308c44f1d044fe3b86af4b3a5421d39700ab3fcf4ee760d0db18ecdac3158655",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Android.VersionCode/description",
          "source": "Android application version code for packaging tools",
          "source_sha256": "e94ea6a9f646e2598d38b54681b51791469b7150eca7ddeb67f74193b7112f4b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Critter.CritterSlotEnabled/description",
          "source": "Critter slot enabled flags",
          "source_sha256": "3b1383c87701b9bc85b47287988ded8193aa4dec223c2941090b3e5436252ee5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Critter.CritterSlotMultiItem/description",
          "source": "Critter slot multi-item flags",
          "source_sha256": "81d7d7cab19efb044cf119f45f9a5568ae8c5132c73dfadf1a5d1a9f037ddbdc",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Critter.CritterSlotSendData/description",
          "source": "Critter slot send data flags",
          "source_sha256": "e344f617f1d57a27cdf05e2ddac30377ec2aeb9552091d36bce2070ed3b91588",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.DataBase.CustomCollections/description",
          "source": "Space-separated user-defined database collections in format CollectionName:Int or CollectionName:Str",
          "source_sha256": "49e668ada0a8f61e885b5a64f5ce523b3af410855d9b363e12975d8e8d3c2ac4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.DataBase.JsonIndent/description",
          "source": "JSON backend indentation, 0 for compact output",
          "source_sha256": "85d9780175684af2a33b560d1dfc3d5b31fdb1eab8b63296f6c06585570c104b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.DataBase.MongoEscapeChar/description",
          "source": "Single character used to replace dots in Mongo document keys",
          "source_sha256": "a1d129fca0c26ec405bc1e0be0773fd9c2b3b15e2f9ada11b4e85e6e39be50e8",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.DataBase.OpLogEnabled/description",
          "source": "If true, pending database changes are mirrored to oplog for recovery; if false, any database write failure causes immediate panic",
          "source_sha256": "7749a4e4a05f466fd4f7076f96264e1eaa560a80ca5e614416f2993d0fdd4bba",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.DataBase.OpLogPath/description",
          "source": "Pending database changes oplog path; committed replay progress path is derived as this value plus -committed",
          "source_sha256": "a0ce5dfec1ff5ec542aad25fefe42558bfdbcea95aefa446fde8b3f561e3148d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.DataBase.PanicOpLogSizeThreshold/description",
          "source": "Pending database changes file size threshold in bytes after which panic is triggered",
          "source_sha256": "aeee95400970c8fb05028157a8c8527b0775350893725465571e7bcbc3ae1414",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.DataBase.PanicShutdownTimeout/description",
          "source": "Graceful shutdown timeout in milliseconds after database panic callback before forced termination",
          "source_sha256": "19a0330902ff5395add96686711ea17af1e5000d684d8e20aff82d509bc585de",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.DataBase.ReconnectRetryPeriod/description",
          "source": "Database backend retry period in milliseconds while oplog mode is active",
          "source_sha256": "2895ccf785720b567efc1af6c107419e53b8a4b3e6b155822b88ef69298f2a47",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Packaging.AppIcon/description",
          "source": "Windows application ICO source path for packaging tools",
          "source_sha256": "9dabfcb6cc2f0f181b3cea2432af845d940a8bd8a700ff2458afc67264dcb66c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Packaging.CodeSigningHook/description",
          "source": "Windows code signing hook executable path for packaging tools",
          "source_sha256": "5c7392c56a2f4b7c6a4282b2612eb9005f97b19a167477284aff036ce7be2fc3",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Packaging.MsiUpgradeCode/description",
          "source": "Windows MSI installer upgrade GUID for packaging tools, must never change once an MSI has shipped",
          "source_sha256": "9ee98c28a355dc168585a6734edc202d779ae4e3f0f849dcddca07d1613ada60",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Server.AutoStartClientOnServer/description",
          "source": "Number of embedded clients to auto-spawn on server startup; 0 disables the feature",
          "source_sha256": "6f1927be64d2b34067a550d4486b3f3391b8e1b8e12626319c484d6140ff1820",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Server.CollapseLogOnStart/description",
          "source": "If true, log is collapsed on start",
          "source_sha256": "40c53a8102a49f49c6123be8a7754d0d7e341beffdd940245702ad84a61b611a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Server.ConnectionProcessPeriodMs/description",
          "source": "Player / unlogined-player connection job re-poll period between data-arrival wakes, in milliseconds",
          "source_sha256": "4a3a630b5cee371e670b92f32ab51d826a50c7cfbb973edab2e7052c5ae07c38",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Server.CritterMovingPeriodMs/description",
          "source": "Critter movement-step job period in milliseconds",
          "source_sha256": "e45a27006467e713b8ff5a6a0d32db27befee77bf1ec25f01e1923c923b92a02",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Server.DbStorage/description",
          "source": "Database storage type",
          "source_sha256": "c7b311bca212a1dde5ab8d41560e53fd3d80d902eccd77bff1c8eb829993b475",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Server.EntityIdReserveBatch/description",
          "source": "Entity IDs reserved per persisted-counter bump, so a new entity does not force a DB write of the last-id marker every time",
          "source_sha256": "3d958f0ce097b31e3ca850bab3a4a636bdb7fe5af270a438b009c9ade7fff843",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Server.EntityStartId/description",
          "source": "Entity start ID",
          "source_sha256": "50b79c4e96d6befe77bb00c5fa1c0cc86a114eb5e44fd428ca6192e2ec2de5e1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Server.FrameTimePeriodNs/description",
          "source": "Frame-time update job period in nanoseconds",
          "source_sha256": "b3d1da8b9372e257bf3cc19c78490f7c140463f4e9bd1149e6ca043efae2abb4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Server.HealthFilePeriodMs/description",
          "source": "Health-file refresh job period in milliseconds",
          "source_sha256": "cdbc46b57cdde9b62dea29a08ba895602786619540ee86304912c703e3af5b26",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Server.LockMaxWaitTime/description",
          "source": "Maximum lock wait time in milliseconds",
          "source_sha256": "3da861a24b4b88d2fb091f412932e11104deb5df35fc4be6a64b4795794211de",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Server.MapInstanceStaticGrid/description",
          "source": "If true, map instance static grid is enabled",
          "source_sha256": "a04590c27487098ce5b61f7843d6c54d93e4cbdf396af54edf3d9b794d17d980",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Server.MaxServerLogLines/description",
          "source": "Maximum server log lines in UI",
          "source_sha256": "a389080c1c45f52a0298f241fb477dcaf08fa152398d39bdfd3753a40e52be8d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Server.MoveBridgeReportHexes/description",
          "source": "Async-fix bridge length in hexes from which the client/server movement divergence is logged; 0 disables the report",
          "source_sha256": "739cabff521eafd8c2911bb72cb1602a2ecd294e3efecabf96de3fd345dd5171",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Server.MoveFinishCatchUpMaxMs/description",
          "source": "Upper bound in milliseconds on the movement remainder a client-reported arrival may fast-forward; the effective allowance is also capped by the connection round trip",
          "source_sha256": "3aebb593db4fcd6f4a38b183101dc0dc831f2246be3187869158710779bc99d7",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Server.NoStart/description",
          "source": "If true, server start is disabled",
          "source_sha256": "0ae880c046794a245346333643eab0a60197b97a6ec8f2427dc1338049c47f8c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Server.ProtoMapStaticGrid/description",
          "source": "If true, proto map static grid is enabled",
          "source_sha256": "1d6627b4e491f5038978b2121c540627a207016f2a5734248d154a6fda6673b5",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Server.ServerHeight/description",
          "source": "Server window height in pixels (test bench host before any client is spawned)",
          "source_sha256": "afdf7d228bb939109b2053aa0d355eade24ef1139113a42423dac259c5ea2469",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Server.ServerPropertiesPackData/description",
          "source": "If true, server entities with prototypes use overlay property storage",
          "source_sha256": "f3ff134c5d47e74cfc70bf05784d364b5b6ff19b27285a701d30fea481d73032",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Server.ServerWidth/description",
          "source": "Server window width in pixels (test bench host before any client is spawned)",
          "source_sha256": "677b3b7701267f5e21f97a7406ab310eb067fea325c2885b3665102605c3f85b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Server.ShutdownGraceMs/description",
          "source": "Grace period in milliseconds for in-flight worker jobs to drain on shutdown before parked entity-lock waiters are force-aborted",
          "source_sha256": "cfac6937ce0c7b94adb198b762986d075d62c32f43b8f75d4501a37f0232af37",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Server.SingleThreadedLogic/description",
          "source": "If true, all game logic runs on one worker thread and scripts need no explicit entity synchronization",
          "source_sha256": "f0c058599eae0f4edca39d294d1481bef9a88125d846712efdb5a7713359592a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Server.SyncPeriodMs/description",
          "source": "Sync-point job period in milliseconds (100 FPS by default)",
          "source_sha256": "f38db5ef388a156ffea687f3debce4890206245b2c12fa6f2fec9fd326b89d3f",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Server.WorkerThreads/description",
          "source": "Worker thread count for entity processing (0 = auto)",
          "source_sha256": "99d24cf6d6e50d541ef7082d434cde217b5bda0254ae41493857223553064624",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.Server.WriteHealthFile/description",
          "source": "If true, health file is written",
          "source_sha256": "740f5635ac98b8d97e7557efb966c0da71cac5e0624d1ec304eb758ef75271ee",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.ServerNetwork.ChannelSecretKey/description",
          "source": "Secure channel static X25519 secret key, 64 hex digits; every server needs it, in-process connections included",
          "source_sha256": "158252f60f63e426a0b508791371f5c5b44c0243e4a51540a4f702c4de20a019",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.ServerNetwork.ClientPingTime/description",
          "source": "Client ping time in milliseconds",
          "source_sha256": "d795ab758e484ba83dcec4900f597c5b4311c73cdc2eb3c55b3d2fb2e0396353",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.ServerNetwork.DisableNetworking/description",
          "source": "If true, server networking listeners are not started",
          "source_sha256": "0ec2ee7325a9c4d56d23135cfbb5637ea732095f8a6c1c009c31fe6e65caa27c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.ServerNetwork.EnableUdp/description",
          "source": "If true, UDP listener is enabled for native clients",
          "source_sha256": "3d9c5c1a76f3d1ae56b0e916154a432f852fbc4d0ab18e387f0fb4b6d203579d",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.ServerNetwork.InactivityDisconnectTime/description",
          "source": "Inactivity disconnect time in milliseconds",
          "source_sha256": "e439335f922cc3a536c43f737d14de7bb4e493cfd2cb0c07b2e8b42f4319e090",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.ServerNetwork.ListenRetryDelay/description",
          "source": "Delay in milliseconds between listener bind attempts",
          "source_sha256": "071d6043d7f11341caaba2acbc22bb0dbe6e0fe43c8ec147fd551a5dedba0fc4",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.ServerNetwork.ListenRetryTime/description",
          "source": "Time in milliseconds to keep retrying a listener whose port is still held by the previous process (0 = do not retry)",
          "source_sha256": "f167ea3322ef30cac7c1759f3b01ceeb7680d5c99f144e0cb6af5f90b6da620b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.ServerNetwork.LoginTimeout/description",
          "source": "Maximum pre-login connection lifetime without handshake/auth/update progress in milliseconds (0 = unlimited)",
          "source_sha256": "c8d412b042c6dac764bda0a88b6bca5739ebdce6f79ddb13880b4520f5bc0c81",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.ServerNetwork.MaxBufferedInputSize/description",
          "source": "Max total unread input bytes retained per connection (0 = unlimited)",
          "source_sha256": "a4acd521d44db235f411db199f70381bad1adbd374231eaed8d191f66085d2fc",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.ServerNetwork.MaxConnections/description",
          "source": "Max simultaneous connections incl. unlogined (0 = unlimited); over this, new connections are rejected at accept",
          "source_sha256": "2d0bd3fc64c22c52a4616939bbcfebc1caef731fc09b282cd95196aed2b8bc02",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.ServerNetwork.MaxMessageSize/description",
          "source": "Max single inbound message size in bytes (0 = unlimited); rejected at the header",
          "source_sha256": "310d7a1c449a586a5dd429fa5ab4e0b3ab8b5c1d1507857b9fe182430f04d63a",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.ServerNetwork.MaxMessagesPerProcessPass/description",
          "source": "Max messages drained per connection per worker job pass (0 = unlimited)",
          "source_sha256": "5e83f40d54608067eb789080a7392ba3cfb14d2418a6c43f567ca003954e887b",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.ServerNetwork.MaxPlayers/description",
          "source": "Max simultaneous logined players (0 = unlimited); over this, new connections are rejected at accept",
          "source_sha256": "ad0b40cccc89c090046777b0a7244e3e320502281206d088671be349d3ab88d9",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.ServerNetwork.MaxRemoteCallPayloadSize/description",
          "source": "Runtime cap for a decoded remote-call payload (0 = structural per-call cap only)",
          "source_sha256": "0697aaea07a03add65d0fd18524918d9d0d0b8d32312e15ddb3a704ad4392a39",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.ServerNetwork.MaxUdpReorderAhead/description",
          "source": "Max UDP packets buffered ahead of the next expected sequence (0 = unlimited)",
          "source_sha256": "c4037dc9e27286a727aec6092d5ef280e7d3406b86378f1243841d0390c0ff45",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.ServerNetwork.NewConnectionRatePerSec/description",
          "source": "Max new connections accepted per source host per second (0 = unlimited); bursts above this are dropped at accept",
          "source_sha256": "a0c517a8bb64c24fe7e4274118845a0ae545ed298edcd90b1d05eb8cf75d17c1",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.ServerNetwork.RejectUdpConnections/description",
          "source": "If true, UDP listener silently drops incoming Connect packets so clients fall back to TCP (debug aid)",
          "source_sha256": "4093000d0f4cf919d3953312155fdbec58477fa9db1a5d574f31bff3f2258f4c",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.ServerNetwork.UpdateFilesInMemory/description",
          "source": "If true, updater files are served from memory, otherwise from disk",
          "source_sha256": "9b6391264a204d9b382df76c411e871aee19babc3c0518090d8c8bef2925270e",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.ServerNetwork.WssCertificate/description",
          "source": "WebSocket Secure certificate",
          "source_sha256": "bc5f837071cf65677490231703f54f00cd3a0f9805ec11517d1713818c8c3fe2",
          "status": "current"
        },
        {
          "locator": "/symbols/@id=setting.server.ServerNetwork.WssPrivateKey/description",
          "source": "WebSocket Secure private key",
          "source_sha256": "db82685ecf12b80c08ba089ca50bdded3ee37cf20534d42acd149600a028fbaa",
          "status": "current"
        }
      ]
    },
    "audio": {
      "source_model": "Docs/generated/audio.json",
      "entry_count": 99,
      "current_count": 99,
      "missing_count": 0,
      "complete": true,
      "entries": [
        {
          "locator": "/decoding_rules/@id=audio.decoding.acm-shape/name",
          "source": "Baked payload verification",
          "source_sha256": "fefbcdac09cac0cd39e133f8a33daf31439e6fc8c9e992a511f9e7a46b12a303",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=audio.decoding.acm-shape/rationale",
          "source": "The bake boundary catches malformed native input and encoder output before the client attempts playback; runtime then reads channel and sample-rate metadata from the verified stream.",
          "source_sha256": "4cba660fd70825985577fbe15976a4da17a2d92fe8210842b3cb8564d012d4dc",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=audio.decoding.acm-shape/requirement",
          "source": "Reject a generated or passthrough payload unless libvorbisfile opens it as a valid Vorbis stream.",
          "source_sha256": "8fdd455081884b21460ba1b53da58a7554256c8e7f75fcfc96c360cc31355bbc",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=audio.decoding.callback-mixing/name",
          "source": "Audio callback mixing",
          "source_sha256": "7ad77bbe593b40c6f6089109f81a666611d46d85903e5c6cf6ce9c0165dd0c99",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=audio.decoding.callback-mixing/rationale",
          "source": "The SDL stream callback asks AudioManager to fill output while game-thread play/stop/update operations can add, mutate, or erase sounds.",
          "source_sha256": "e87406a1f7948edaeacfc789378d2429079dad7877343fd4e56cd8c8ecf78bf1",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=audio.decoding.callback-mixing/requirement",
          "source": "Treat playback as client audio-callback work; mutations of the active sound list must hold the audio-device lock.",
          "source_sha256": "3b83d382144ff74c89409fb6f511a8fee8a1af7ea4eacb19de83cf0a6fd5711a",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=audio.decoding.device-conversion/name",
          "source": "Device conversion",
          "source_sha256": "8dc631c4911d3f9cb705567d603f99c7f3d89b629eebc7ef83843c11176f7a66",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=audio.decoding.device-conversion/rationale",
          "source": "AudioManager does not require authored assets to match one fixed hardware format.",
          "source_sha256": "b42172ab0a9a682ea75a263dbd0f59bb16f347747f2d85f9e8e3ee305678d0e0",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=audio.decoding.device-conversion/requirement",
          "source": "Let AppAudio convert decoded sample format, channel count, and rate to the active SDL output-device format before playback.",
          "source_sha256": "b85b191761f293f79ba063a24e36d7faba3d8976946b9fdab8c8036e5c4ef11c",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=audio.decoding.ogg-streaming/name",
          "source": "Ogg streaming",
          "source_sha256": "659d5d6af8572df71487e62f97e7b417c44b942ee421bcbae98436583cef1cae",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=audio.decoding.ogg-streaming/rationale",
          "source": "AudioManager uses a platform-sized streaming portion and clears OggStream when the first read reaches EOF.",
          "source_sha256": "a47f404aca0732fde8c086505bcb6c4a47b2eb5da1e8804421db71c42a768998",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=audio.decoding.ogg-streaming/requirement",
          "source": "Expect Ogg Vorbis to decode in 64 KiB native chunks and 128 KiB Web chunks; short files are retained fully and release the stream after the initial decode.",
          "source_sha256": "f3e0717221b0b065f3cc553acdfab32ebc91b0c0401afc9da65508a052e690a5",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=audio.decoding.unsupported-extension/name",
          "source": "Single runtime decoder",
          "source_sha256": "5b9b06e4f6d3124ddc44a239f98fc36339ae136e6555b724262c887a38f59af1",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=audio.decoding.unsupported-extension/rationale",
          "source": "Unsupported source extensions never enter the Audio baker, and runtime has no suffix dispatch that could silently accept an empty or differently encoded payload.",
          "source_sha256": "20fab6cdca2c737ae22fb250b444a1d99966a020544244c4cd53a66c3e6fcc2a",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=audio.decoding.unsupported-extension/requirement",
          "source": "Route authored audio through AudioBaker and let AudioManager decode every resulting resource as Ogg Vorbis regardless of its preserved source suffix.",
          "source_sha256": "646a45ff55a8465476fbe755dd45fdf1ecb4b24302806848a4445dd405b98725",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=audio.decoding.wav-chunk-order/name",
          "source": "WAV chunk order",
          "source_sha256": "64e1eb8dc2364a143fd8fa724aaa46dff3e1365b43de18d788dc8d3b57bf1225",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=audio.decoding.wav-chunk-order/rationale",
          "source": "Real exports commonly insert metadata chunks or reorder fmt and data, so the baker validates chunk bounds instead of prescribing a narrow sequence.",
          "source_sha256": "eac39f0e8f280b754122c565b0d32c0064febc72ca466d7380c111e677044c53",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=audio.decoding.wav-chunk-order/requirement",
          "source": "Provide RIFF/WAVE with one usable fmt chunk and a non-empty data chunk; AudioBaker walks chunks in any order, skips unknown chunks, and respects odd-byte padding.",
          "source_sha256": "bd0f91b29f0162379d7b86eacd74b6255a12d217ad816e2e7444c25dab346833",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=audio.decoding.wav-pcm-width/name",
          "source": "WAV PCM widths",
          "source_sha256": "a8c3062c783fa6d6d7fb9ef350eaf76ce2eb96a01e8537357e563f238c00be74",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=audio.decoding.wav-pcm-width/rationale",
          "source": "AudioBaker converts each supported sample to signed 16-bit before Vorbis encoding and rejects truncated frames or inconsistent format metadata.",
          "source_sha256": "d6ab241991cc8858dc5523af88af8b843c85a2e858b4bdd5efefe4cfc679f921",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=audio.decoding.wav-pcm-width/requirement",
          "source": "Author WAV as PCM at 8, 16, 24, or 32 bits or IEEE float at 32 bits; channel count and sample rate must be positive and block alignment must match the declared frame shape.",
          "source_sha256": "c209fb7b136493078280cca676fd4cf16de89787cf1e4ce35c7bcb98e1d94a58",
          "status": "current"
        },
        {
          "locator": "/delivery_rules/@id=audio.delivery.client-index/name",
          "source": "Client sound index",
          "source_sha256": "b452a98bb52e68aa30e4b3786d50d7b7b1ea7ee41ea2a19ee1f0f4b6d1df3d27",
          "status": "current"
        },
        {
          "locator": "/delivery_rules/@id=audio.delivery.client-index/rationale",
          "source": "The manager exposes this source-backed path catalog, while Game.PlaySound itself receives the exact selected resource path and performs no concept or variant resolution.",
          "source_sha256": "6bc4541de1a6475cc1a308e48bb2e1da165bd015119df60779d584a5b764a815",
          "status": "current"
        },
        {
          "locator": "/delivery_rules/@id=audio.delivery.client-index/requirement",
          "source": "Call AudioManager.IndexFiles after client resources are available; it records every path whose suffix occurs in Audio.SoundFileExtensions.",
          "source_sha256": "0028b2d0619df33ecf866146bfe00b9e9cedb1511e1113dc98e086472f1afef2",
          "status": "current"
        },
        {
          "locator": "/delivery_rules/@id=audio.delivery.effect-identity/name",
          "source": "Exact authored path identity",
          "source_sha256": "3accb014c1ce0c0702afe89545df39f0adc8bfce8df1fa8bf3d66bd5aa783467",
          "status": "current"
        },
        {
          "locator": "/delivery_rules/@id=audio.delivery.effect-identity/rationale",
          "source": "AudioBaker preserves the authored path while replacing WAV bytes with Vorbis, and AudioManager reads that path directly without lowercasing or replacing the extension.",
          "source_sha256": "667667777284a9c250ad959c4d5924bc1c96c9e8aa15ec54166dc22bd471362d",
          "status": "current"
        },
        {
          "locator": "/delivery_rules/@id=audio.delivery.effect-identity/requirement",
          "source": "Pass the exact baked resource path, including its authored extension, to Game.PlaySound and Game.PlayMusic.",
          "source_sha256": "9f498fb99a2485c19d9cdfb59389be6ca205eaaad3ae3d06e7a0b5561892231f",
          "status": "current"
        },
        {
          "locator": "/delivery_rules/@id=audio.delivery.extension-precedence/name",
          "source": "Source extension and payload separation",
          "source_sha256": "ad2d9706726c04c81f9563edb0ef5b7a3005381271be567fd8bb2251ad3c6768",
          "status": "current"
        },
        {
          "locator": "/delivery_rules/@id=audio.delivery.extension-precedence/rationale",
          "source": "Preserving authored paths avoids rewriting project references while one runtime decoder and one package payload format remove platform-dependent format behavior.",
          "source_sha256": "db6d09c5501fd5c5b1a82f2d345411bba14912378f346d3b41c5f29a8d2a18f9",
          "status": "current"
        },
        {
          "locator": "/delivery_rules/@id=audio.delivery.extension-precedence/requirement",
          "source": "Treat a .wav suffix in baked resources as source identity, not runtime codec identity; all runtime bytes are Ogg Vorbis and .ogg sources remain .ogg.",
          "source_sha256": "baf1f10a81b21f922da5dd44509ac8546ea92b7d36c737c89e76e1f15437c959",
          "status": "current"
        },
        {
          "locator": "/delivery_rules/@id=audio.delivery.music-path/name",
          "source": "Music path ownership",
          "source_sha256": "c247f057920325534414f59178be013118fbf6a4af41989e7c0bab42c468d816",
          "status": "current"
        },
        {
          "locator": "/delivery_rules/@id=audio.delivery.music-path/rationale",
          "source": "PlayMusic forwards the supplied filename directly to AudioManager.Load.",
          "source_sha256": "2c847ff97eb74471c47d4e9b689d098f28af3bd04add40e0257c2e22eb27a7bb",
          "status": "current"
        },
        {
          "locator": "/delivery_rules/@id=audio.delivery.music-path/requirement",
          "source": "Pass music as an exact resource path; unlike effects, music is not resolved through the normalized sound-name index.",
          "source_sha256": "44c02a7491bc64ac62e1066b1464a6d40b2489d29d260eddf39353d7e3f3a45b",
          "status": "current"
        },
        {
          "locator": "/delivery_rules/@id=audio.delivery.raw-copy/name",
          "source": "AudioBaker delivery",
          "source_sha256": "5dcbaf6226f87ec434f593d869324a4e606b41248a343f905c9bb17222b9a124",
          "status": "current"
        },
        {
          "locator": "/delivery_rules/@id=audio.delivery.raw-copy/rationale",
          "source": "Audio resources no longer use RawCopy: WAV is normalized and encoded while an already-native Ogg is verified and copied without another lossy pass.",
          "source_sha256": "02d3956c921a7296511527b851d144fc2562abd21496f2e2a85c5ae8bcc007d2",
          "status": "current"
        },
        {
          "locator": "/delivery_rules/@id=audio.delivery.raw-copy/requirement",
          "source": "Include the Audio baker in each resource pack that owns runtime audio; it accepts the configured wav and ogg inputs and writes a verified Ogg Vorbis payload.",
          "source_sha256": "ffc71600f6d1106e5517a1057446a88198ed999a6f8712ed38f65f2147ffb66d",
          "status": "current"
        },
        {
          "locator": "/description",
          "source": "Source-backed contract for FOnline audio baking, runtime decoding, playback handles, placement, mixing, script entry points, and validation boundaries.",
          "source_sha256": "0f5a2ac07cca4b7711523b5970448354471a09551ce56079a20c3db85f756137",
          "status": "current"
        },
        {
          "locator": "/formats/@id=audio.format.ogg/name",
          "source": "Ogg Vorbis",
          "source_sha256": "0ef1d73187c66942ec82bdb4c758d80a6a2526fe540dcd22d73da1d0abe721da",
          "status": "current"
        },
        {
          "locator": "/formats/@id=audio.format.ogg/rationale",
          "source": "Every runtime payload is Vorbis even when its preserved authored path ends in .wav, so runtime dispatch never trusts the suffix as a codec declaration.",
          "source_sha256": "0a7893878a1bd7ef7a0d8e7e0ebb8df63cc42502c3a809342905161d0d04b64d",
          "status": "current"
        },
        {
          "locator": "/formats/@id=audio.format.ogg/requirement",
          "source": "Use an Ogg bitstream containing Vorbis audio; AudioBaker verifies and copies an authored .ogg without lossy re-encoding, and AudioManager streams every baked audio resource through libvorbisfile.",
          "source_sha256": "df6ec237243edbe7fdfec18e40ddedc93859ec2f9ee50d64cbca3493725ef4ea",
          "status": "current"
        },
        {
          "locator": "/formats/@id=audio.format.ogg/role",
          "source": "Native runtime payload and lossless passthrough authoring input",
          "source_sha256": "e024b0674ace88636cbbd1577571123b4f33db721a97b588480d9af60ae76fbf",
          "status": "current"
        },
        {
          "locator": "/formats/@id=audio.format.wav/name",
          "source": "PCM WAV",
          "source_sha256": "5b20ae67c9a363d51cabf352b8a4e026427c8249e60b801d44a102ce0839a340",
          "status": "current"
        },
        {
          "locator": "/formats/@id=audio.format.wav/rationale",
          "source": "AudioBaker normalizes supported WAV samples to interleaved signed 16-bit PCM and encodes one checked Ogg Vorbis resource at the authored path.",
          "source_sha256": "13ce3d7e96611dfd3878bf6216ff50c137c7b0b4830628934caf97dc1a3350c1",
          "status": "current"
        },
        {
          "locator": "/formats/@id=audio.format.wav/requirement",
          "source": "Use RIFF/WAVE PCM at 8, 16, 24, or 32 bits, or IEEE float at 32 bits; chunks may appear in any order and unknown chunks are skipped with RIFF padding respected.",
          "source_sha256": "0f8740ec9bbceb71a4195701e6c74162c0ad0a02804e2ce9fb105194a91f32a1",
          "status": "current"
        },
        {
          "locator": "/formats/@id=audio.format.wav/role",
          "source": "Authoring input converted to the runtime Ogg Vorbis payload",
          "source_sha256": "d247a6140ce8a86d0fcb53cbe7d0780b8aea1afda57163597996c0bc05e6832c",
          "status": "current"
        },
        {
          "locator": "/playback_rules/@id=audio.playback.default-acm/name",
          "source": "Stereo pan law",
          "source_sha256": "685a502d511f5a66a98ad817c8f8ba8d6183d9d9b7a5c10dbe91ab6115aa2abd",
          "status": "current"
        },
        {
          "locator": "/playback_rules/@id=audio.playback.default-acm/rationale",
          "source": "AudioManager applies pan to the per-callback mix buffer rather than decoded storage, so later placement updates do not compound an earlier pan and loud samples are not boosted into clipping.",
          "source_sha256": "144eecd224ab21401facb61235f57830eecf0a71d292f18acae5b6dbf8cd28ce",
          "status": "current"
        },
        {
          "locator": "/playback_rules/@id=audio.playback.default-acm/requirement",
          "source": "Pass pan in the range -1 through 1 for the stock balance law: negative attenuates the right channel, positive attenuates the left, and the near channel stays at unity.",
          "source_sha256": "7e3b77971fb31c6ffc7efafe40e4d285d85284cecb4c9c6141b51ef1943f9050",
          "status": "current"
        },
        {
          "locator": "/playback_rules/@id=audio.playback.disabled-success/name",
          "source": "Disabled audio return convention",
          "source_sha256": "476d30014f3e6eba69410578071c414da4a4061a516f5983d3dd831c7f2b0714",
          "status": "current"
        },
        {
          "locator": "/playback_rules/@id=audio.playback.disabled-success/rationale",
          "source": "A disabled device is a normal player state, so music reports no refusal and effects report only that no live sound exists; baker validation owns resource correctness.",
          "source_sha256": "d964d1bac0a2f3fcf9db0143889882874d8507bb29d96d49f0ce782fa3cf04a6",
          "status": "current"
        },
        {
          "locator": "/playback_rules/@id=audio.playback.disabled-success/requirement",
          "source": "Do not use PlayMusic true or a PlaySound handle as resource-existence proof when audio is disabled or unavailable; PlayMusic remains a successful no-op while PlaySound returns handle zero.",
          "source_sha256": "6f187c92beba04e8db3abf5b87f90578e5208649374a6d91de7d859781822b42",
          "status": "current"
        },
        {
          "locator": "/playback_rules/@id=audio.playback.effect-api/name",
          "source": "Game.PlaySound",
          "source_sha256": "4d97f374e377beaf91ff91a2f28a04f3b62914ae314f0300aefbb2d30e5c78b5",
          "status": "current"
        },
        {
          "locator": "/playback_rules/@id=audio.playback.effect-api/rationale",
          "source": "The script method delegates the exact resource path to AudioManager and exposes the non-reused lifetime handle returned when the sound enters the mixer list.",
          "source_sha256": "716b54726a22200fe6a6c66d0990f26b9c503e405f000390ef7998aed1c6c6e9",
          "status": "current"
        },
        {
          "locator": "/playback_rules/@id=audio.playback.effect-api/requirement",
          "source": "Use Game.PlaySound on the client for non-music playback and retain its uint32 handle when the sound must be placed again; zero means no live sound was started.",
          "source_sha256": "fc60975d048d8bcaa827413af4b9b9162a743f0d74da25357b72a1621baef6d4",
          "status": "current"
        },
        {
          "locator": "/playback_rules/@id=audio.playback.effect-base-first/name",
          "source": "Exact effect path",
          "source_sha256": "eb54ba3985cc166acacebdd0bb41e96d5a97d54244b9658d22a0a7cce463a8c4",
          "status": "current"
        },
        {
          "locator": "/playback_rules/@id=audio.playback.effect-base-first/rationale",
          "source": "Variant policy belongs to the embedding project; AudioManager performs no stem normalization, suffix fallback, or catalog convention.",
          "source_sha256": "d2d0b7a11378cc6f4fda28e29539e31085487d982752d048ffb34422f1f5ceee",
          "status": "current"
        },
        {
          "locator": "/playback_rules/@id=audio.playback.effect-base-first/requirement",
          "source": "Resolve project concepts and numbered variants before Game.PlaySound, then pass the exact selected resource path including its authored suffix.",
          "source_sha256": "29b27e83b893bce4b7cddfde939a3e79ed616c839411a0ea52fc51dd8eb5228c",
          "status": "current"
        },
        {
          "locator": "/playback_rules/@id=audio.playback.effect-contiguous-variants/name",
          "source": "Placed sound start",
          "source_sha256": "fd8d331ec3bcf6064485ab8c6badea2cb1a27cb289d9b094d724d1cdfe2bed5a",
          "status": "current"
        },
        {
          "locator": "/playback_rules/@id=audio.playback.effect-contiguous-variants/rationale",
          "source": "Placement is a caller-owned projection onto mixer attenuation and stereo balance, while distance curves and listener selection remain project policy.",
          "source_sha256": "11d0c088b22b670ce255b88a17dd490489874489f4928c4448f2374c65fba5e8",
          "status": "current"
        },
        {
          "locator": "/playback_rules/@id=audio.playback.effect-contiguous-variants/requirement",
          "source": "Use the Game.PlaySound overload with attenuation and pan to start a placed sound; attenuation at or below zero returns handle zero before file I/O.",
          "source_sha256": "4b4ea9e91e2a09dab9e96621fda3d2923e856b6dcecb57914661ec0c3e5f12e1",
          "status": "current"
        },
        {
          "locator": "/playback_rules/@id=audio.playback.global-mix/name",
          "source": "Placed sound update",
          "source_sha256": "460ba5d590b32648ae3a8542ff699a3b0538a6019aed749a39599934b9689f47",
          "status": "current"
        },
        {
          "locator": "/playback_rules/@id=audio.playback.global-mix/rationale",
          "source": "The update runs under the audio-device lock, so the mixer observes one placement pair and a completed sound cannot be revived through a stale handle.",
          "source_sha256": "e52f2ff09747ea8cd03229e068ba2bd9c612f920cc233e0d9bc7dec0b8c27aa4",
          "status": "current"
        },
        {
          "locator": "/playback_rules/@id=audio.playback.global-mix/requirement",
          "source": "Call Game.UpdateSound with a live handle to replace attenuation and pan as the source or listener moves; false means the handle is zero, audio is inactive, or playback already finished.",
          "source_sha256": "a0ff0d2d997303ba48cf2c0949baa5696bc90d33f1d33ecb51b3355bea08a43b",
          "status": "current"
        },
        {
          "locator": "/playback_rules/@id=audio.playback.music-api/name",
          "source": "Game.PlayMusic",
          "source_sha256": "4b5adbaca59bd0eae749162c14d5a6f969158b453e997c920f1dd5f5cf7a3a30",
          "status": "current"
        },
        {
          "locator": "/playback_rules/@id=audio.playback.music-api/rationale",
          "source": "The script entry point owns the empty-name stop convention before delegating to AudioManager.",
          "source_sha256": "b7afef8a191b2109baa8813bbb6b4a26c6d9b5acf4895bc03ebf1655246d4895",
          "status": "current"
        },
        {
          "locator": "/playback_rules/@id=audio.playback.music-api/requirement",
          "source": "Use Game.PlayMusic with an exact resource path and repeat interval; an empty path stops current music and succeeds.",
          "source_sha256": "95b8719a03d4ef64675e13018a7dc6b999d4edcdad2960da0ff5b2b4e442bc07",
          "status": "current"
        },
        {
          "locator": "/playback_rules/@id=audio.playback.repeat/name",
          "source": "Repeat interval",
          "source_sha256": "c48d5520ca4eb81d384989eb217277be1b9f107095daeb22e7b0a7171312df96",
          "status": "current"
        },
        {
          "locator": "/playback_rules/@id=audio.playback.repeat/rationale",
          "source": "ProcessSound schedules NextPlayTime using a one-millisecond threshold and rewinds retained Ogg streams before replay.",
          "source_sha256": "5b33db19938508ea577c67d5eeb0cbad498e0fa63328266c48346b6d9b644955",
          "status": "current"
        },
        {
          "locator": "/playback_rules/@id=audio.playback.repeat/requirement",
          "source": "Pass a nonzero repeatTime to replay after completion; values at or below one millisecond repeat immediately, and larger values insert that delay.",
          "source_sha256": "93b81ccefbc1dad0fe7f0f89200f9f0a2a97157d4ca6f9c44f68e9505916e151",
          "status": "current"
        },
        {
          "locator": "/playback_rules/@id=audio.playback.separate-volumes/name",
          "source": "Sound and music volumes",
          "source_sha256": "3093538acbc038259fd55ab3556e5d210a35f96db24d2961c138dbec05bdc247",
          "status": "current"
        },
        {
          "locator": "/playback_rules/@id=audio.playback.separate-volumes/rationale",
          "source": "AudioManager owns live volume state because Engine settings are immutable, selects it by IsMusic, and AppAudio normalizes the clamped percentage before SDL mixing.",
          "source_sha256": "83f0e956903ecc70bc2164419e91fab93d1afd237374cef78c58f161c3dc307c",
          "status": "current"
        },
        {
          "locator": "/playback_rules/@id=audio.playback.separate-volumes/requirement",
          "source": "Use Audio.SoundVolume and Audio.MusicVolume as startup defaults, then Game.SetSoundVolume and Game.SetMusicVolume for live changes; the frontend clamps each mix operation to 0 through 100.",
          "source_sha256": "6515f83a317b2fdcba5b043a05d6defd1f2c7bc669b51744c6dcd8bed621d0d3",
          "status": "current"
        },
        {
          "locator": "/playback_rules/@id=audio.playback.single-music/name",
          "source": "Single music stream",
          "source_sha256": "9f254530813a415d22ca9c7378148775ab7ae1ffe730903c2a922310056949c0",
          "status": "current"
        },
        {
          "locator": "/playback_rules/@id=audio.playback.single-music/rationale",
          "source": "AudioManager.PlayMusic calls StopMusic before Load, so a failed replacement does not restore the previous track.",
          "source_sha256": "6028a62c50f459389f5406c698aa2ad239ee2fdde430bd113f3d08df3f2b34d1",
          "status": "current"
        },
        {
          "locator": "/playback_rules/@id=audio.playback.single-music/requirement",
          "source": "Expect a new music request to stop every existing music instance before attempting to load the replacement.",
          "source_sha256": "fc102b0a540c26663dec0ac94811be5b9fef9f731bc422b38a632f8b0d80cf58",
          "status": "current"
        },
        {
          "locator": "/scope/excluded",
          "source": [
            "project sound catalogs, concept-to-path mappings, variant selection, music state machines, ambient selection, and spatialization policy",
            "recording, voice chat, capture devices, DSP graphs, buses, ducking, and authored attenuation curves",
            "audio mastering targets, loudness policy, licensing, attribution, and source provenance",
            "Effekseer sound nodes, which are not supported by the FOnline Effekseer runtime",
            "video containers and video-associated audio"
          ],
          "source_sha256": "1196f8ba7cc41884fe77fd20999e3447cfbe832109f52f7047bafbaa4235c20f",
          "status": "current"
        },
        {
          "locator": "/scope/included",
          "source": [
            "WAV authoring and Ogg Vorbis native resource inputs accepted by AudioBaker",
            "AudioBaker delivery and AudioManager resource-path indexing",
            "AudioManager decoding, conversion, streaming, mixing, placement, repeat, and stop behavior",
            "Game.PlaySound, Game.UpdateSound, and Game.PlayMusic client script entry points",
            "Audio settings, headless behavior, diagnostics, and project validation boundaries"
          ],
          "source_sha256": "ee7d938dc9fbbbfb9e8d6fd2e78afe47750135de7b64cdad73b403869b03074a",
          "status": "current"
        },
        {
          "locator": "/scope/support_note",
          "source": "Authored WAV and native Ogg inputs, the baked Ogg payload, sound handles, placement updates, and client playback behavior are revision-pinned by focused baker and mixer tests.",
          "source_sha256": "49ed941bf15dd10810cc4c19d4d8b07ff60d2edbe82c93ee38c75f6afdd3d617",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=audio.validation.decoder-diagnostics/name",
          "source": "Decoder diagnostics",
          "source_sha256": "94ca715d06bb97b0cafb3a368d2fa278813ed44894112ac8f53a833a2d932288",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=audio.validation.decoder-diagnostics/rationale",
          "source": "WAV and passthrough Ogg are rejected at bake time, while a resource that exists but cannot decode at runtime logs and enters the debugger instead of becoming silent success.",
          "source_sha256": "1c6419235429cf947b3190dfe7a83c01b86309839c1acd332f766a55a6f9a24e",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=audio.validation.decoder-diagnostics/requirement",
          "source": "Treat AudioBaker exceptions and Ogg open/decode/device-conversion diagnostics as authoring or packaging failures; do not bless a zero playback handle as content validation.",
          "source_sha256": "02c368a5026bb90220fc6e7b53d52f8b9d6861046dc4efacf13a9ac65e389d39",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=audio.validation.generated-reference/name",
          "source": "Source-backed reference",
          "source_sha256": "1877ee81c2e4a68728ba3e7d488d09a2401c8f1dcaeb926452ee8a0a092c6e13",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=audio.validation.generated-reference/rationale",
          "source": "The generated model rejects source-extension, runtime-codec, chunk-size, setting, handle, test-inventory, and headless drift before prose can silently become stale.",
          "source_sha256": "7dfb02c4be2646fb5658f64ef20a28d570486b9e4fdc89cbaf7170924847c80b",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=audio.validation.generated-reference/requirement",
          "source": "Regenerate and check the audio model whenever AudioBaker, AudioManager, AppAudio, settings, package delivery, or script entry points change.",
          "source_sha256": "8d30cf8fa06c364ee5c6b2c3d32d4f412826a8b9844d8c8ec3825c0ecc75a65a",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=audio.validation.headless-boundary/name",
          "source": "Headless boundary",
          "source_sha256": "bdfbd064835ae7d143c0888897c2289fa01cdaedf388479fa2f321d03ebe61a5",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=audio.validation.headless-boundary/rationale",
          "source": "Headless audio deliberately exposes no active device or callback.",
          "source_sha256": "cfa6de1861833de95ddcb5ff1eced81eca38c8a41884fda76a1d4b977f2df343",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=audio.validation.headless-boundary/requirement",
          "source": "Do not claim audible validation from a headless or stub application; AppAudio is disabled there and playback may report no-op success.",
          "source_sha256": "749f0aaa65cc41c3858a9f1c3dcf9cd7feb8713aaa07f857502e06a57371c0f6",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=audio.validation.native-test-gap/name",
          "source": "Focused native coverage",
          "source_sha256": "70e466cbdb5850c13ab17f93eac174f76305b20a97e18b9e006e64a62434dcf3",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=audio.validation.native-test-gap/rationale",
          "source": "These suites execute the codec and callback contract directly; a visible client is still required to prove a real platform device and audible output.",
          "source_sha256": "81824f762b265629ce04c7f2da83e80bcb9e7c78be0d1c07da5e38b082c5b140",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=audio.validation.native-test-gap/requirement",
          "source": "Run Test_AudioBaker and Test_AudioManager for WAV/Ogg baking, passthrough, invalid inputs, panning, placed playback, live updates, handle expiry, and mixer output.",
          "source_sha256": "a56771434fee8712a3496f113d5ae500050b3a5a807ba8dd2c7fafbbe15fb5a2",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=audio.validation.project-boundary/name",
          "source": "Embedding-project ownership",
          "source_sha256": "4cf76ef47eaad3078ccbb182cd4fc98c1533e973dc89cf697c2ba3f5762001d5",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=audio.validation.project-boundary/rationale",
          "source": "The engine supplies baking, runtime decoding, a client mixer, and placement parameters, not a complete game audio design or asset-governance system.",
          "source_sha256": "0df4f1e721fb282c0f39b8575c05a95470ca7909fd5896f64ca85b1f591cedef",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=audio.validation.project-boundary/requirement",
          "source": "Keep catalog conventions, spatial/recipient policy, mastering, licenses, attribution, budgets, and gameplay triggers in project documentation and tests.",
          "source_sha256": "c47631d878ad7257b757d398f036b54a361bcabc738e27ca00abc1b4e4ba1590",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=audio.validation.raw-copy/name",
          "source": "Audio baking gate",
          "source_sha256": "2f6be07bc719de41b5fd99464e4f618fe461206e126e6826e1ff9a1815936c21",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=audio.validation.raw-copy/rationale",
          "source": "Focused tests prove conversion and passthrough, while an embedding-project bake proves that its pack actually selects Audio and ships the resources consumed by its scripts.",
          "source_sha256": "ef498d31fa14956d338ac263c919b340ff7e2f98cc2c7f5defafc44f5b34d66d",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=audio.validation.raw-copy/requirement",
          "source": "Bake representative PCM/float WAV and native Ogg inputs, verify authored paths are preserved, inspect the audio counters, and open every output as Vorbis.",
          "source_sha256": "d658f335199dc52da465788f24b5b17eb0b62ab470c62574076059da8bdfc191",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=audio.validation.visible-client/name",
          "source": "Visible audible validation",
          "source_sha256": "54306279de0fa8e5ba8e6f6c742d480f877b1501877252f1d1f614283d669dfd",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=audio.validation.visible-client/rationale",
          "source": "Only an active platform audio device can prove conversion, callback scheduling, mixing, and audible output.",
          "source_sha256": "2c7dea5337bd753a7d55d853a628c82c2d62d924bce2b8fb3b14045eb89aea82",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=audio.validation.visible-client/requirement",
          "source": "On every claimed platform, use a visible client with audio enabled to play baked WAV-path and native-Ogg-path resources, move a placed sound, replace music, exercise delayed and immediate repeats, and test volume endpoints.",
          "source_sha256": "9dd60203010a2d9a841e7559991e7e5f0732c46160b72bd1014e4ff696d3a3b3",
          "status": "current"
        }
      ]
    },
    "cli": {
      "source_model": "Docs/generated/cli.json",
      "entry_count": 42,
      "current_count": 42,
      "missing_count": 0,
      "complete": true,
      "entries": [
        {
          "locator": "/commands/@id=cli.buildtools.command.build-auxiliary/arguments/@id=cli.buildtools.command.build-auxiliary.argument.config/description",
          "source": "build configuration (default: Release)",
          "source_sha256": "9f5bef077ec4a3260945a72705b6cce6c83cb655673242aee460ae70141ebc0c",
          "status": "current"
        },
        {
          "locator": "/commands/@id=cli.buildtools.command.build-auxiliary/arguments/@id=cli.buildtools.command.build-auxiliary.argument.target/description",
          "source": "auxiliary tool to build",
          "source_sha256": "7579f5ef50a390eee0e6f7b7ddfa92a445bbb0135b1a9b34174289dec93f9d86",
          "status": "current"
        },
        {
          "locator": "/commands/@id=cli.buildtools.command.build-auxiliary/summary",
          "source": "build a separately packaged auxiliary tool",
          "source_sha256": "d6f8bed7a5b115de50e3e313a579311d7d3cd252e32c80d9b83c81b70ca87186",
          "status": "current"
        },
        {
          "locator": "/commands/@id=cli.buildtools.command.build/arguments/@id=cli.buildtools.command.build.argument.config/description",
          "source": "CMake build configuration",
          "source_sha256": "d8b637429cd07dcba7699fb08c80a099d5591891c0fccaffec684dac55637ae7",
          "status": "current"
        },
        {
          "locator": "/commands/@id=cli.buildtools.command.build/arguments/@id=cli.buildtools.command.build.argument.platform/description",
          "source": "engine platform key, such as linux, win64, web, or android-arm64",
          "source_sha256": "ad40d8e0da8d29fd3b8723c7808cd6e6bc2a957a0f23f90d2b697b2024ca64e4",
          "status": "current"
        },
        {
          "locator": "/commands/@id=cli.buildtools.command.build/arguments/@id=cli.buildtools.command.build.argument.target/description",
          "source": "BuildTools target profile, such as client, server, baker, or unit-tests",
          "source_sha256": "a5cf319054df6029bfffbe2aba4c8b7eede4bed322d06b4c753203a35f5a226e",
          "status": "current"
        },
        {
          "locator": "/commands/@id=cli.buildtools.command.build/summary",
          "source": "configure and build a target",
          "source_sha256": "4f721dde4ad668008884b8673f94d8929c010613de1af2c61e33675772f230e5",
          "status": "current"
        },
        {
          "locator": "/commands/@id=cli.buildtools.command.env/arguments/@id=cli.buildtools.command.env.argument.shell/description",
          "source": "environment output syntax",
          "source_sha256": "5f87b6de8257bb952d5044f3d06eab2e49fe5b23c01fea58b5aa209d97c42009",
          "status": "current"
        },
        {
          "locator": "/commands/@id=cli.buildtools.command.env/arguments/@id=cli.buildtools.command.env.argument.summary/description",
          "source": "append the resolved environment summary",
          "source_sha256": "ce71145cc786f44d12cd620286ff59f4da0a5d2194aba00a1a692cf2a8b87fe3",
          "status": "current"
        },
        {
          "locator": "/commands/@id=cli.buildtools.command.env/arguments/@id=cli.buildtools.command.env.argument.summary_only/description",
          "source": "print only the resolved environment summary",
          "source_sha256": "3d63f443bbcc3c1f61c8d0dd24f635850031cfdb9376f492e05d9660ddb2240f",
          "status": "current"
        },
        {
          "locator": "/commands/@id=cli.buildtools.command.env/summary",
          "source": "resolve BuildTools environment",
          "source_sha256": "2194cae5068db97a2895d98a50d6ddb59482296a5a7e391ec669399becab2988",
          "status": "current"
        },
        {
          "locator": "/commands/@id=cli.buildtools.command.format-source/summary",
          "source": "format engine source files",
          "source_sha256": "a5b1e26042fa18d11ce189d7a277bb51e0306d1afa3987d7cd2e13ef69c36f05",
          "status": "current"
        },
        {
          "locator": "/commands/@id=cli.buildtools.command.host-check/arguments/@id=cli.buildtools.command.host-check.argument.host/description",
          "source": "host platform to inspect",
          "source_sha256": "cab0b568cf70168c61da38215fb893bfbe1ab7132bc006ab5e7637e3e90c167f",
          "status": "current"
        },
        {
          "locator": "/commands/@id=cli.buildtools.command.host-check/summary",
          "source": "check host prerequisites",
          "source_sha256": "c23d03272563fce74149116649f7fb2f8f6c339635bb749df3609b137b6766b2",
          "status": "current"
        },
        {
          "locator": "/commands/@id=cli.buildtools.command.package-android-debug/arguments/@id=cli.buildtools.command.package-android-debug.argument.configs/description",
          "source": "config names to package (e.g. LocalTest)",
          "source_sha256": "dbf676d2e9be039321b9ddddfea5895d35ecb9101c02c7cddcf56fd16166e7c5",
          "status": "current"
        },
        {
          "locator": "/commands/@id=cli.buildtools.command.package-android-debug/arguments/@id=cli.buildtools.command.package-android-debug.argument.devname/description",
          "source": "short project name for binary/directory naming (e.g. LF)",
          "source_sha256": "ba0f5795becdc863dd04ebe0df14e715fb14f9ee7b93044884320759ff1d6f63",
          "status": "current"
        },
        {
          "locator": "/commands/@id=cli.buildtools.command.package-android-debug/arguments/@id=cli.buildtools.command.package-android-debug.argument.platform/description",
          "source": "Android target platform (e.g. android-arm64)",
          "source_sha256": "efc58917e6522a4caf61036c5e5465cb82f1285f5c1c6abf2903f851a8b6a96d",
          "status": "current"
        },
        {
          "locator": "/commands/@id=cli.buildtools.command.package-android-debug/summary",
          "source": "package the local android debug client",
          "source_sha256": "a1fbefea09e33004aa2da19ca4acdec4c8430719937a302241b149725ef36e75",
          "status": "current"
        },
        {
          "locator": "/commands/@id=cli.buildtools.command.package-web-debug/arguments/@id=cli.buildtools.command.package-web-debug.argument.configs/description",
          "source": "config names to package (e.g. RemoteSceneLaunch LocalTest)",
          "source_sha256": "e131f5461f0c87d367919ce82ac18b0dd61a038a4eab8fc57bfca24596316a87",
          "status": "current"
        },
        {
          "locator": "/commands/@id=cli.buildtools.command.package-web-debug/arguments/@id=cli.buildtools.command.package-web-debug.argument.devname/description",
          "source": "short project name for binary/directory naming (e.g. LF)",
          "source_sha256": "ba0f5795becdc863dd04ebe0df14e715fb14f9ee7b93044884320759ff1d6f63",
          "status": "current"
        },
        {
          "locator": "/commands/@id=cli.buildtools.command.package-web-debug/summary",
          "source": "package the local web debug client",
          "source_sha256": "aa39f6bd71738e63ec1776a243a2a3981e8fce145cff520d5f1fffe7ab80797f",
          "status": "current"
        },
        {
          "locator": "/commands/@id=cli.buildtools.command.prepare-host-workspace/arguments/@id=cli.buildtools.command.prepare-host-workspace.argument.check/description",
          "source": "check availability without installing or building",
          "source_sha256": "963c673df77b12fe9f30ec0a45b83ef612a6775af4aa6640be57659ca288bfa2",
          "status": "current"
        },
        {
          "locator": "/commands/@id=cli.buildtools.command.prepare-host-workspace/arguments/@id=cli.buildtools.command.prepare-host-workspace.argument.features/description",
          "source": "feature groups to prepare; omit to use the host defaults",
          "source_sha256": "432bc7db51aca522f790d70674901dced7c0c79755d5bbcf5de05e2241fb76e3",
          "status": "current"
        },
        {
          "locator": "/commands/@id=cli.buildtools.command.prepare-host-workspace/arguments/@id=cli.buildtools.command.prepare-host-workspace.argument.host/description",
          "source": "host platform to prepare",
          "source_sha256": "38448ee6847c6f315c403f28760575eda11bd40f3fc30eeb6bfb2302da76b6af",
          "status": "current"
        },
        {
          "locator": "/commands/@id=cli.buildtools.command.prepare-host-workspace/summary",
          "source": "prepare host workspace and prerequisites",
          "source_sha256": "48be57ee43f611f3a4c6613d3ab833bb4cd14e2ee2b849031704c4742cd30ca4",
          "status": "current"
        },
        {
          "locator": "/commands/@id=cli.buildtools.command.prepare-workspace/arguments/@id=cli.buildtools.command.prepare-workspace.argument.check/description",
          "source": "check availability without installing or building",
          "source_sha256": "963c673df77b12fe9f30ec0a45b83ef612a6775af4aa6640be57659ca288bfa2",
          "status": "current"
        },
        {
          "locator": "/commands/@id=cli.buildtools.command.prepare-workspace/arguments/@id=cli.buildtools.command.prepare-workspace.argument.parts/description",
          "source": "workspace components to prepare",
          "source_sha256": "284b09497a6e458983dba3edbcf1426dda3ad93a9544af77c418ba7c9918969c",
          "status": "current"
        },
        {
          "locator": "/commands/@id=cli.buildtools.command.prepare-workspace/summary",
          "source": "prepare shared workspace parts",
          "source_sha256": "89561b2be72741f1dcbf26cb9a2981e19fca2aa37ca25e3c5f7b9c1071669b50",
          "status": "current"
        },
        {
          "locator": "/commands/@id=cli.buildtools.command.repair-checkout-case/arguments/@id=cli.buildtools.command.repair-checkout-case.argument.check/description",
          "source": "check for case drift without renaming entries",
          "source_sha256": "2c480f4fd2e0e0cd776659e3cb60d3d1f5746687e3ef463833af685a2a75dffb",
          "status": "current"
        },
        {
          "locator": "/commands/@id=cli.buildtools.command.repair-checkout-case/summary",
          "source": "realign working-tree entry names with the git index",
          "source_sha256": "cc2b5338ab9937d6ea209ef4f5b718bb9314589caa0b9f71680af255f4882114",
          "status": "current"
        },
        {
          "locator": "/commands/@id=cli.buildtools.command.setup-mono/arguments/@id=cli.buildtools.command.setup-mono.argument.arch/description",
          "source": "runtime architecture key",
          "source_sha256": "4123d84c5a7ec44dfb5a185bf12fd8ed1bb1132ad6bbe8fb86c2a95ffd0dccc0",
          "status": "current"
        },
        {
          "locator": "/commands/@id=cli.buildtools.command.setup-mono/arguments/@id=cli.buildtools.command.setup-mono.argument.config/description",
          "source": "runtime build configuration",
          "source_sha256": "229a4e05aa527df61294d5719db36c0d3fee229d5761642faa3a7ea3cfd8b4c1",
          "status": "current"
        },
        {
          "locator": "/commands/@id=cli.buildtools.command.setup-mono/arguments/@id=cli.buildtools.command.setup-mono.argument.os_name/description",
          "source": "runtime operating-system key",
          "source_sha256": "ed7896bc04f3b63cb0afdd2f4467f4962ade125c781e2b101c9e0e73d2d0c8eb",
          "status": "current"
        },
        {
          "locator": "/commands/@id=cli.buildtools.command.setup-mono/summary",
          "source": "prepare mono runtime",
          "source_sha256": "d08a30d37bd80ef9e9198cbc43d60210b68db9f13b0dafb3fa99c8089712b5f0",
          "status": "current"
        },
        {
          "locator": "/commands/@id=cli.buildtools.command.toolset/arguments/@id=cli.buildtools.command.toolset.argument.target/description",
          "source": "target from the configured toolset build tree",
          "source_sha256": "b173e854292fa9d7a51807d90c89753e0e1b9f92d62f0e8986d28661697514fd",
          "status": "current"
        },
        {
          "locator": "/commands/@id=cli.buildtools.command.toolset/summary",
          "source": "build an existing toolset target",
          "source_sha256": "28fa65ef7cccac655bfd71e904544830d4395859483cbf56e90ed9b05ea665eb",
          "status": "current"
        },
        {
          "locator": "/commands/@id=cli.buildtools.command.validate/arguments/@id=cli.buildtools.command.validate.argument.names/description",
          "source": "one or more named validation scenarios",
          "source_sha256": "02fe51cb1798dff9a759e1cc9152389281bacbb87ca98804cbf128fc6f869d59",
          "status": "current"
        },
        {
          "locator": "/commands/@id=cli.buildtools.command.validate/summary",
          "source": "configure and validate scenarios",
          "source_sha256": "e52baffb10193242886bb9d727dfbfe44f0150b85a8719a614763c33f3068859",
          "status": "current"
        },
        {
          "locator": "/description",
          "source": "Shared BuildTools helpers",
          "source_sha256": "7bf9bc24039a9275c6ca8e8b02f1099531b1c1aba5af9cd18147dcb7d436b86f",
          "status": "current"
        },
        {
          "locator": "/scope/excluded",
          "source": [
            "helper-script command lines outside BuildTools/buildtools.py",
            "package.py declaration and payload contracts",
            "validation-target semantics and internal Python helpers"
          ],
          "source_sha256": "bf5fa23df7b14116c1c54e30c8997c2013f0860766b7953e041b3b34355d6421",
          "status": "current"
        },
        {
          "locator": "/scope/included",
          "source": [
            "top-level commands and arguments exposed by BuildTools/buildtools.py create_parser()",
            "argparse defaults, choices, cardinality, descriptions, usage, and --help output"
          ],
          "source_sha256": "e2fb90d46f9d730f2730e92f66a381904833af05ec3fdc18f128306fd227c917",
          "status": "current"
        },
        {
          "locator": "/scope/support_note",
          "source": "No versioned CLI support line is declared; pin an engine revision in automation.",
          "source_sha256": "8abb18c0585eb4744b3d0bd96bd508d89494f288e52f135e4e13a97e7e4f68e9",
          "status": "current"
        }
      ]
    },
    "cmake": {
      "source_model": "Docs/generated/cmake.json",
      "entry_count": 65,
      "current_count": 65,
      "missing_count": 0,
      "complete": true,
      "entries": [
        {
          "locator": "/helpers/@id=cmake.helper.AddBakingTarget/description",
          "source": "Create a project baking target with an optional subconfig, force mode, and build-hash update after SetupScriptsAndBaking.",
          "source_sha256": "f4cc5eb10e93a3e293686d09eb7eab871e063ec905ee6fed6e3325df4c1a2eea",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=cmake.helper.AddEngineSources/description",
          "source": "Add role-scoped embedding-project native sources before RegisterEngineSources.",
          "source_sha256": "1bb8ed4584f287ef0e4d8ab08b6c06cf71ddbe6c619e1c3c42b06756b7e4e030",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=cmake.helper.AddNativeIncludeDir/description",
          "source": "Add project-relative include directories when Native scripting is enabled.",
          "source_sha256": "6751e425fcaf582f1c1979374c79d8e5365beb5f78f13b81eb3961c3b0e7a206",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=cmake.helper.AddStageHook/description",
          "source": "Register a project macro at a stage boundary before that stage executes.",
          "source_sha256": "7f4580e6e2ceab2bc395eb42286e64b6ddae12ea571606b5a286ccfc3a31bdc1",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=cmake.helper.RegisterFindPackageHandler/description",
          "source": "Register the explicit package lookup handler used by the ThirdParty-stage find_package interceptor.",
          "source_sha256": "84f36641415d03acd81700af35abafa960b396270bfa8fd4bb0eff94db3606b6",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=cmake.helper.SetOption/description",
          "source": "Set an embedding-project default only when the variable is not already defined.",
          "source_sha256": "c51d7f0d9b27a106400783bc54fa1e682ff032e0a306d393747daec1d774300f",
          "status": "current"
        },
        {
          "locator": "/option_override_precedence",
          "source": [
            "matching FO_ environment variable",
            "existing CMake cache or -D value",
            "SetOption value supplied by the embedding project",
            "declared interface default"
          ],
          "source_sha256": "15d9c20d27971d43703748c8a1b39484f82e82e40b3030ef2b3b6d80ce947285",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_ANGELSCRIPT_SCRIPTING/description",
          "source": "Compile the AngelScript scripting backend.",
          "source_sha256": "94220ee86d5eb9635fa1e7653f8e14cb9ff45003c86e4563e0b861cbe6818e12",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_APP_ICON/description",
          "source": "Application icon source used by generated platform targets.",
          "source_sha256": "d0e4c8c0223f0beba95bacb1877d0e6b6b2017418d4b35254050bb0e63b03b96",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_BINARY_OUTPUT_POSTFIX/description",
          "source": "Optional postfix appended to generated binary output directory names.",
          "source_sha256": "a86a45c8a7bd2e0d48506539b069a86c2b6a2bf368ac7e441e339a7a4399826e",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_BUILD_ASCOMPILER/description",
          "source": "Generate the AngelScript compiler application target.",
          "source_sha256": "e9f16ca5d15f2449496967e9bcddc693666e4648163b5564f64a171259d91b61",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_BUILD_BAKER/description",
          "source": "Generate baker application targets.",
          "source_sha256": "6cd2886867c2c4f93cde16d23a3ed106dd0dc021ed161c019fa78f789d8b8eb7",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_BUILD_CLIENT/description",
          "source": "Generate client application targets.",
          "source_sha256": "812af9759a3a860a2a2e788abe779e9f6332460fd393ecad3364ff0185175e8b",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_BUILD_MAPPER/description",
          "source": "Generate mapper application targets.",
          "source_sha256": "2d0eba1070fcf973a58dec44db067ab52d154cfa1dfefadd97b83e321d278f83",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_BUILD_SERVER/description",
          "source": "Generate server application targets.",
          "source_sha256": "3b8d9a9cfdc04c20c883ed4e252678043c1c5a755ad753f93552fa2e7d8f60fa",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_CODE_COVERAGE/description",
          "source": "Generate the code-coverage configuration; this mode cannot be combined with application or unit-test build modes.",
          "source_sha256": "61afd89b86169e64a328107d90f9155e4b37b7657b673530a5bd972a8a8b606d",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_CXX_STANDARD/description",
          "source": "C++ language standard used for project compilation; values below 20 are unsupported.",
          "source_sha256": "b818c4b849bd0f9293f4b53ff45ffa5f2f309127b6fcc2f60d6e3cbe68221f47",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_DEV_NAME/description",
          "source": "Short project identifier used as the generated target and binary prefix.",
          "source_sha256": "47ebfc97c66c6ae1da7cd013e7ee7e9e98293c6f62783b5cd96243c3beacbdee",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_DISABLE_ASIO/description",
          "source": "Disable the Asio networking backend.",
          "source_sha256": "cb7731f077b23b1e68f5b29d464463497e3ae1879ee5c0525b9b03f8871567c5",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_DISABLE_MONGO/description",
          "source": "Disable MongoDB backend support.",
          "source_sha256": "1ab4b8bf6ab61f200bef9044d87197d7e9ce7fd60b849db2e3d433ca5dcb8aaa",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_DISABLE_NAMESPACE/description",
          "source": "Compile engine native symbols without the FOnline namespace.",
          "source_sha256": "b37699c017b0cb086cfa0cbdb1123b16051912fd809b3b26eeb48d40046df856",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_DISABLE_RPMALLOC/description",
          "source": "Disable the bundled rpmalloc allocator.",
          "source_sha256": "32cf386df267c9d9c885abd09313d2404817d760be1f8c2bee36a672a800128c",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_DISABLE_SDL_GPU/description",
          "source": "Disable the SDL_GPU rendering backend.",
          "source_sha256": "b78fde660528d4b5844fc93850ac31df40639ab0744055e22b7490929c67f4be",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_DISABLE_SQLITE/description",
          "source": "Disable SQLite backend support.",
          "source_sha256": "cf0c3b7aa950a5205986d3b6ef67125fb9504039b2181ad9b62259a595afdb63",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_DISABLE_VULKAN/description",
          "source": "Disable the Vulkan rendering backend.",
          "source_sha256": "62ad5b510987669ad221c561d5405dd5ca735687a38c64c7fd1f940d62775916",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_DISABLE_WEB_SOCKETS/description",
          "source": "Disable WebSocket transport support.",
          "source_sha256": "c6251f1142e5e31d386047cb870bb2f6d635e1aa8f2f74a1d18c0f9739b35ea4",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_EFFECT_MAX_PASSES/description",
          "source": "Maximum number of passes in one effect.",
          "source_sha256": "ded9b76989a14b7fdb75242801aa180efc6015cac5354d1be40210e26f37b6cf",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_EFFECT_SCRIPT_VALUES/description",
          "source": "Number of float slots in ScriptValueBuf; the value must be a multiple of four.",
          "source_sha256": "3d864dd7b193b382ab29f095b8fcd3bcf30069de3d48798b922b6ce291831604",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_EFFEKSEER_PARTICLES/description",
          "source": "Compile the Effekseer project compiler and runtime backend.",
          "source_sha256": "dea982414c52d4a1ad1af84b90146b77024e6f87b8af20a695811589c9546a73",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_EMBEDDED_DATA_CAPACITY/description",
          "source": "Capacity reserved for embedded data in generated binaries.",
          "source_sha256": "eed89dc486baa7aff0982ba9ea0411b3bf5d69cb93fa7a05c525c99889897f80",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_ENABLE_3D/description",
          "source": "Compile support for 3D models.",
          "source_sha256": "838aa93261c0ec593d3ab7f8bc228ba3de76198f75232e0ca823c4ac92385f81",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_GEOMETRY/description",
          "source": "World-grid geometry mode.",
          "source_sha256": "47d7d183ce4d04c2c823c62d73ab9d0d356bad09e5773d8b81e076cbf05adebc",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_MAIN_CONFIG/description",
          "source": "Path to the embedding project's main .fomain configuration file.",
          "source_sha256": "92dd4c028c8bd44c5a74ab0cb62dcc07a07a0cb2ef640a9e16f6cdd24d271bf1",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_MANAGED_SCRIPTING/description",
          "source": "Compile the Managed C# scripting backend and embedded Mono runtime.",
          "source_sha256": "8f3352e6b2552155fd5e3380f59caff431b514cacbab5e2a5816125375f4030b",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_MAP_CAMERA_ANGLE/description",
          "source": "Map camera angle in degrees.",
          "source_sha256": "4e59adc5d69b5fa4e7f87aa208a55de700c21fdb12583b5773067e94336755d5",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_MAP_HEX_HEIGHT/description",
          "source": "Map cell height in pixels.",
          "source_sha256": "2666f1fe02e3f58056b929b436cfcf2ad457ce0c4ae82c42539416aa8ff2ed6e",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_MAP_HEX_WIDTH/description",
          "source": "Map cell width in pixels.",
          "source_sha256": "78f6fd0cd5d984c627826ecdcc50fc69e145b5ccf06471e88248b5def972895a",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_MEMORY_DIAGNOSTICS/description",
          "source": "Enable rpmalloc occupancy statistics in regular builds; Debug and Tracy already enable them when rpmalloc is available.",
          "source_sha256": "b9192e59ad08c23e8b0388cb86c22509e51e0499e3a5b239db009cb77a5ded7e",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_MODEL_BONES_PER_VERTEX/description",
          "source": "Number of bone influences compiled into each 3D model vertex.",
          "source_sha256": "1204d1d23e8215ca61659114d1628619a68d2118edddd559d471424eb7bdfdd1",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_MODEL_LAYERS_COUNT/description",
          "source": "Number of model rendering layers compiled into the engine shape contract.",
          "source_sha256": "9567c08d1b1c22ec8ce6284fe23eaabaa517af6571332c8fd4a79cab0f204399",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_MODEL_MAX_BONES/description",
          "source": "Maximum number of bone matrices available to one 3D model.",
          "source_sha256": "cba5f92c08429a16eceb7e3a35f47eb5b77f7bc59ec299c14a9cbe9010e9c04b",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_MODEL_MAX_TEXTURES/description",
          "source": "Maximum number of textures available to one 3D model.",
          "source_sha256": "59f8186ae955de6bbce6235d94dc0902120b0a1bf77d0ac0b51e730209539386",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_MSAN_IGNORELIST/description",
          "source": "MemorySanitizer ignorelist path.",
          "source_sha256": "f0f071873a966922a27d61349ef6711865edd12f84d7fcbabc1a829ff4e695cf",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_MSAN_LIBCXX_ROOT/description",
          "source": "Install prefix of an MSan-instrumented libc++ used by San_Memory configurations.",
          "source_sha256": "26921b8670691d4c39c8165efe1e288ec7a81e6e5c1a4d8292c46e349a2f4b6c",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_NATIVE_SCRIPTING/description",
          "source": "Reserve the Native scripting source-root option; the current tree has no implemented Native backend.",
          "source_sha256": "1791afe39c39cda44da8494aea86e0d869a3b619f7331dce0efd94d96cabaa72",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_NICE_NAME/description",
          "source": "Human-readable project name used by generated applications and packages.",
          "source_sha256": "cee64f7ec2cda8e97ec1445746437a731cdd90d0450601a3468b53b605a41b9e",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_OUTPUT_PATH/description",
          "source": "Common root for generated binaries, packages, baking data, and validation output.",
          "source_sha256": "b13a62f36dcbb184bb7edc66cb2dbedb54a2051a422298f06cbe8829b53f5741",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_RESHARPER_SETTINGS/description",
          "source": "Optional ReSharper solution settings file copied during finalization.",
          "source_sha256": "8ca6c46afedb50209bd28a1508c7f0972511d24c903a91315c676dbb277dbe6b",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_SPARK_PARTICLES/description",
          "source": "Compile the SPARK particle baker, runtime backend, and Mapper authoring tools.",
          "source_sha256": "5ee608e173224431e0c0ca5a8ebb82f122de9e83f91d0569e1dda93af08b8f54",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_STRING_INLINE_CAPACITY/description",
          "source": "Characters kept inside an engine string before it allocates; the value must be one less than a multiple of eight.",
          "source_sha256": "9b0e5be982f4eb857ebe5b0a7744f16de56f221bd162be5fbe19f05e097be695",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_UNIT_TESTS/description",
          "source": "Generate engine unit-test targets.",
          "source_sha256": "0464a01fa3fd54b2aff8e9d664caa338c62bb09782be946b2ea8948d5a3b2746",
          "status": "current"
        },
        {
          "locator": "/options/@id=cmake.option.FO_VERBOSE_BUILD/description",
          "source": "Enable verbose FOnline build-system status output.",
          "source_sha256": "e21912ca94fa1f32ccc9e808d5686473edf7eeeea3500fbaea2c33d494260388",
          "status": "current"
        },
        {
          "locator": "/scope/excluded",
          "source": [
            "internal CMake implementation helpers",
            "package declaration grammar and payload layouts",
            "BuildTools command-line interfaces",
            "toolchain files and platform preset policy"
          ],
          "source_sha256": "cb3ecb1f970fe44817ca33366c1042d4b61f15c71af3b0991d27b0637a2b5858",
          "status": "current"
        },
        {
          "locator": "/scope/included",
          "source": [
            "project cache options declared during the Init stage",
            "ordered project-generation stage entrypoints and hooks",
            "selected embedding-project helper commands"
          ],
          "source_sha256": "7aee8fdc9ddcdd503f964fb493fcd8920860d043cc3caeea72c95721c5233577",
          "status": "current"
        },
        {
          "locator": "/scope/support_note",
          "source": "No versioned support line is declared yet; embedding projects should pin an engine revision.",
          "source_sha256": "95ce6b4808e168e4c00551a41af0231038eeaf5dfd1fd08653253da090246110",
          "status": "current"
        },
        {
          "locator": "/stages/@id=cmake.stage.Applications/description",
          "source": "Create enabled client, server, mapper, compiler, baker, viewer, and test applications.",
          "source_sha256": "cdb4c6ae8c2ffe8a3b93aca19c029745a79c8c420a7712f1b764327e3a7a4ad2",
          "status": "current"
        },
        {
          "locator": "/stages/@id=cmake.stage.Codegen/description",
          "source": "Define generated metadata/source outputs and code-generation targets.",
          "source_sha256": "79722e6b6c3853461eaaed76797949daad4baefe8ddd01889782cdcc34f07812",
          "status": "current"
        },
        {
          "locator": "/stages/@id=cmake.stage.CoreLibs/description",
          "source": "Create reusable engine libraries from the registered source groups.",
          "source_sha256": "50dfda67858cccc5da28ec41723c5d1d3914fe7f25d934349eb5ab8f1398f341",
          "status": "current"
        },
        {
          "locator": "/stages/@id=cmake.stage.EngineSources/description",
          "source": "Aggregate engine and embedding-project source lists and generated resource inputs.",
          "source_sha256": "7e40d0725a161b7788200dffc0b584f3fc9592f2473656cef99960371e5cca7a",
          "status": "current"
        },
        {
          "locator": "/stages/@id=cmake.stage.Finalize/description",
          "source": "Finalize target organization and verify that every stage ran exactly once.",
          "source_sha256": "0aa388c57e0d7b8e0c7d6c0b7f5b973d63ad071f9125b9de64e924917b8671c7",
          "status": "current"
        },
        {
          "locator": "/stages/@id=cmake.stage.Init/description",
          "source": "Declare options, detect the platform/toolchain, and establish common build state.",
          "source_sha256": "899feee357aa0e1be015bcc0624479a114ba0727d5c6c023c0ed836e8a45e6b7",
          "status": "current"
        },
        {
          "locator": "/stages/@id=cmake.stage.Packages/description",
          "source": "Create package targets from embedding-project package declarations.",
          "source_sha256": "73d0a364bbb43e69aae363349f50ac06040435d52bbf41f03a4259f06e319d37",
          "status": "current"
        },
        {
          "locator": "/stages/@id=cmake.stage.ProjectOptions/description",
          "source": "Normalize project option combinations and reject incompatible build modes.",
          "source_sha256": "0966645f3a97b04643980039ecb7487e978891214ba5c6da8f77009192f9e12d",
          "status": "current"
        },
        {
          "locator": "/stages/@id=cmake.stage.ScriptsAndBaking/description",
          "source": "Create script compilation and resource baking targets.",
          "source_sha256": "a68fa17d2f70ffdc1d749329dadb3cdfb5dcae79fe2c9e74e5478e1c601f8f84",
          "status": "current"
        },
        {
          "locator": "/stages/@id=cmake.stage.ThirdParty/description",
          "source": "Register bundled third-party dependencies and package lookup isolation.",
          "source_sha256": "50cbc96bea400db66cd480c0a6d8b711effb2eae698341580583ee5ae1828851",
          "status": "current"
        }
      ]
    },
    "effect-format": {
      "source_model": "Docs/generated/effect-format.json",
      "entry_count": 157,
      "current_count": 157,
      "missing_count": 0,
      "complete": true,
      "entries": [
        {
          "locator": "/baking_rules/@id=effect-format.baking.compiler-prelude/name",
          "source": "Generated shader prelude",
          "source_sha256": "55d2849d4e02fe1cff338f4ac21ceeab46a0047d63fe122eaadd5fa1fa41f7eb",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=effect-format.baking.compiler-prelude/rationale",
          "source": "Authored shaders share one compile-time shape contract and must not duplicate these directives.",
          "source_sha256": "cda472001cba43a59bd21a1c9fd6718858d1287447ceb396445d133124984668",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=effect-format.baking.compiler-prelude/requirement",
          "source": "The baker prepends '#version <Version> es', 'precision highp float', MAX_SCRIPT_VALUES, and, in 3D builds, MAX_BONES and MAX_TEXTURES before ShaderCommon and stage text.",
          "source_sha256": "34478e9e7c0f9b3494aa9e136c61f5c4e5b6201294ce1705e3b257fbb5560c1b",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=effect-format.baking.compiler-target/name",
          "source": "glslang target environment",
          "source_sha256": "517bbe2258f968a524832cf9e7312296ffa9b74755b68f155e3bd1927e3d0dde",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=effect-format.baking.compiler-target/rationale",
          "source": "All backend flavors derive from the same validated linked program.",
          "source_sha256": "902c5edf9095b4f4913342e1cac86063a74484bfe23530f40698c472139eef4b",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=effect-format.baking.compiler-target/requirement",
          "source": "Both stages compile as GLSL for a Vulkan 1.0 client and SPIR-V 1.0 target, then link and build reflection once per pass.",
          "source_sha256": "1d5e069e32fcba6ef72731145c2946f85a78f3071d6823348427fd86c4db4032",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=effect-format.baking.incremental/name",
          "source": "Incremental output set",
          "source_sha256": "84640c7aadf326256e608a063279777148d60aafb6b9c2c91e88a7260a433882",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=effect-format.baking.incremental/rationale",
          "source": "A missing or stale flavor must make the effect eligible for rebaking.",
          "source_sha256": "669cbc9da1399a812e6a246f8b3cd5dd1039269774b13e6b7139bce6f35a25ac",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=effect-format.baking.incremental/requirement",
          "source": "The bake checker tracks the source copy, pass metadata, and every stage/flavor artifact for every declared pass.",
          "source_sha256": "fad88b13a9b8fc66ef0aa065df91213c4f867ce1a746d090a3511b27b6586c79",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=effect-format.baking.link-interface/name",
          "source": "Stage interface validation",
          "source_sha256": "005bd1a4217b333d05842426c39b24786a28aa35b0ba8a1bc6cf7f76708a16eb",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=effect-format.baking.link-interface/rationale",
          "source": "Location/type mismatches and syntax errors fail the resource bake before runtime.",
          "source_sha256": "0a0fa844bcad80d234762c27f9f7d3d1e2ff8ca8f8d8b7468acfc04b25399f24",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=effect-format.baking.link-interface/requirement",
          "source": "Vertex and fragment stages must parse, link, and expose a valid reflection model for every pass.",
          "source_sha256": "b935a9b400adb2134bdda40a3f39743bbd08861e93116c7c7b5a5babbdef0506",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=effect-format.baking.metadata/name",
          "source": "Per-pass metadata",
          "source_sha256": "ab9f9b343985b00a7a090f83c0dac6ff540fb05f5a7e25c42bf898b137abbc05",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=effect-format.baking.metadata/rationale",
          "source": "Runtime backends consume reflection results without running glslang.",
          "source_sha256": "3b4e9b8a29ec3593abd4507dcaf72dfeaf408191060730240619b645825c0490",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=effect-format.baking.metadata/requirement",
          "source": "Each pass emits an info artifact with [EffectInfo] native bindings and [EffectInfoSdl] per-stage dense slots and resource counts.",
          "source_sha256": "c4ccc720a6d4edad968b630f1b93ad09eaa1195718f143c7231f209be6f4d230",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=effect-format.baking.native-flavors/name",
          "source": "Native and cross-compiled flavors",
          "source_sha256": "c4a480f458576ddc9200ad3f9b96af06867660c25ace1f2202ae0b9c66890cb5",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=effect-format.baking.native-flavors/rationale",
          "source": "One source effect supports the active renderer backends without project-side shader forks.",
          "source_sha256": "3cd20f5de9f1e0760e02f46018bd120c9e5e1396558108244e585f2c40037326",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=effect-format.baking.native-flavors/requirement",
          "source": "Each stage emits native Vulkan SPIR-V, desktop GLSL 330, GLSL ES 300, HLSL Shader Model 4.0, and Metal source for macOS and iOS.",
          "source_sha256": "8c36c6b55d24f3f2173891c57ce29122dd2b639bbf1fd9524f630ee99829f429",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=effect-format.baking.sdl-remap/name",
          "source": "SDL_GPU descriptor remap",
          "source_sha256": "5af42c050b3123b37a815bec4ba7aa5c36669c9e123a182a7f35d3d75b7211a5",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=effect-format.baking.sdl-remap/rationale",
          "source": "Native Vulkan bindings remain untouched while SDL_GPU gets dense stage-local slots.",
          "source_sha256": "3bd22a0a4c1fafd9a5bb1befc7994107bc976c00ee185d2a62f08939738d022c",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=effect-format.baking.sdl-remap/requirement",
          "source": "The baker copies native SPIR-V, rewrites descriptor sets and bindings to SDL_GPU's per-stage convention, and emits the result as spv_sdl. Metal source is compiled from the remapped module.",
          "source_sha256": "1ea1c11c3d938f49dbfb2c64939e215d3b94cd36ad46e48c3c828b1bb38f8f40",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=effect-format.baking.source-copy/name",
          "source": "Baked source copy",
          "source_sha256": "89f6ff3d6f87130e7d9eaaac8a0e1e9fb2e5a893a30ddce6140c26de0d3554a2",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=effect-format.baking.source-copy/rationale",
          "source": "RenderEffect reparses [Effect] state at runtime; the source file is part of the runtime artifact set.",
          "source_sha256": "8f44a825b6a9b35f6d181aa888571e8d77048b1e0f87ae723b067d459a2861b7",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=effect-format.baking.source-copy/requirement",
          "source": "The original .fofx source is written to the baked resource set after all pass artifacts.",
          "source_sha256": "30e31431ca9afa1e2d24b2837159449f8c44e86b5d0447bf7e2abbcbd1d6e9c8",
          "status": "current"
        },
        {
          "locator": "/compile_limits/@id=effect-format.limit.model-bones/description",
          "source": "Number of WorldMatrices entries exposed to 3D effects through ModelBuf and the MAX_BONES shader define.",
          "source_sha256": "bacba0ce72f7842465792adc012357a6733373794d1ea56cc4c6d3a2adec4712",
          "status": "current"
        },
        {
          "locator": "/compile_limits/@id=effect-format.limit.model-textures/description",
          "source": "Number of ModelTexN samplers and ModelTexBuf entries available to 3D effects.",
          "source_sha256": "0e2becb8c70fcca4573238fa5d797075c71d88710e6dedb2d5a465ac2e0a1910",
          "status": "current"
        },
        {
          "locator": "/compile_limits/@id=effect-format.limit.passes/description",
          "source": "Maximum number of render passes in one effect and the exclusive storage bound for per-pass state and backend objects.",
          "source_sha256": "b5a38ce1d89598df55d99fd4c9c99707e5ec86090e88c14cb43d06391d362f2a",
          "status": "current"
        },
        {
          "locator": "/compile_limits/@id=effect-format.limit.script-values/description",
          "source": "Number of float slots in ScriptValueBuf. The value must be positive and divisible by four because the GLSL declaration is an array of vec4 values and the native buffer is 16-byte aligned.",
          "source_sha256": "cb4f0ef6e77de8dae7faedf458f82f9dcbdae0023f33700a574a3e141f75e614",
          "status": "current"
        },
        {
          "locator": "/description",
          "source": "Source-backed authoring, baking, renderer-resource, runtime-loading, and script-control contract for FOnline .fofx effects.",
          "source_sha256": "ab8af6544c5b2b40543dc3c7049f7f74df2ea6536f78df64bea1759ccf14d531",
          "status": "current"
        },
        {
          "locator": "/effect_options/@id=effect-format.option.blend-equation/rationale",
          "source": "Unknown tokens fail effect construction instead of falling back silently.",
          "source_sha256": "757bacc8ea6af89b4047a15ac61188726c4a45e109adfc26eb9b3e6ce08bdf64",
          "status": "current"
        },
        {
          "locator": "/effect_options/@id=effect-format.option.blend-equation/requirement",
          "source": "The value selects one accepted blend equation. A pass-specific key inherits the unsuffixed default when absent.",
          "source_sha256": "98bd61b854a724b75e7f207103f8ed5897ea7cd7acbd02c46f564fea50a18e88",
          "status": "current"
        },
        {
          "locator": "/effect_options/@id=effect-format.option.blend-func/rationale",
          "source": "The runtime parses factors before each backend creates its blend state.",
          "source_sha256": "8081edeb86f62528103df0c3bf11c4430accc8ddf4b342afa1c8ca336f675670",
          "status": "current"
        },
        {
          "locator": "/effect_options/@id=effect-format.option.blend-func/requirement",
          "source": "The value contains exactly two accepted tokens: source factor followed by destination factor. A pass-specific key inherits the unsuffixed default when absent.",
          "source_sha256": "92d4aa69194e7e5258267ef258299e686c3192c42864778680cdb1998809ba09",
          "status": "current"
        },
        {
          "locator": "/effect_options/@id=effect-format.option.cull-variants/rationale",
          "source": "Models and particle emitter nodes can carry independent culling intent, while backend pipeline/state multiplication remains opt-in.",
          "source_sha256": "5123a9c1c8fa221be1553bf827dba58e4b40f8eebcd9dc0f30d5866b1706af88",
          "status": "current"
        },
        {
          "locator": "/effect_options/@id=effect-format.option.cull-variants/requirement",
          "source": "Enable this only when callers need to select None, Back, or Front face culling per draw. Without it, the effect accepts only the default None mode.",
          "source_sha256": "40ec0454e65f63858bdc3451428acf1aef4dec154125b67233e5246fb04e570f",
          "status": "current"
        },
        {
          "locator": "/effect_options/@id=effect-format.option.depth-func/rationale",
          "source": "Depth-dependent effects must choose comparison explicitly because the default never rejects a fragment.",
          "source_sha256": "1b4959ee2417e1fd554305e1bb29cc3640b996d3d511d90f69eb95f463a9fc1e",
          "status": "current"
        },
        {
          "locator": "/effect_options/@id=effect-format.option.depth-func/requirement",
          "source": "The value selects one accepted depth comparison. A pass-specific key inherits the unsuffixed default when absent.",
          "source_sha256": "da2e53b658dd0d304362785ea03c477ae21b20fa7e51454d6e17c1867778cdcf",
          "status": "current"
        },
        {
          "locator": "/effect_options/@id=effect-format.option.depth-variants/rationale",
          "source": "Particle emitter nodes carry depth intent independently from their shader, while ordinary effects should not pay for unused backend objects and pipelines.",
          "source_sha256": "f6c0f39931ee2634e0a5a288f5f366c68cf37b416b9fdc8560c41cd2778cca0a",
          "status": "current"
        },
        {
          "locator": "/effect_options/@id=effect-format.option.depth-variants/requirement",
          "source": "Enable this only when callers need to select depth-test and depth-write state per draw. The renderer then builds all four test/write combinations; otherwise only the state declared by DepthWrite and DepthFunc exists.",
          "source_sha256": "527c26f2ac1aca4d443482c4e276de5d19e3012baa0bb1a4eef689d6fc5f3f3c",
          "status": "current"
        },
        {
          "locator": "/effect_options/@id=effect-format.option.depth-write/rationale",
          "source": "UI, primitive, and flush targets may have no depth attachment even though the state remains present in the effect; variant-aware backends resolve the selected slot instead of reading the default directly.",
          "source_sha256": "dab03aadc0bf5b2cfd5c02f95dfa0bdcdf8a02617d79ab2adb522276b002309c",
          "status": "current"
        },
        {
          "locator": "/effect_options/@id=effect-format.option.depth-write/requirement",
          "source": "The value is parsed as a boolean and provides the default depth-write state for QuadSprite and Model usages when the active target has a depth attachment. A draw may select another state only when DepthVariants is enabled.",
          "source_sha256": "1e2eb5998bc005ed6496769e7efbee1ee40ceb4056590c8e7ef588aac626885b",
          "status": "current"
        },
        {
          "locator": "/effect_options/@id=effect-format.option.pass-overrides/rationale",
          "source": "State overrides and stage overrides use intentionally different config spellings.",
          "source_sha256": "c1c6b4037e2a17e080408bc61612a64b717c419696e6995f825059b066126bad",
          "status": "current"
        },
        {
          "locator": "/effect_options/@id=effect-format.option.pass-overrides/requirement",
          "source": "BlendFunc, BlendEquation, DepthWrite, and DepthFunc support an exact one-based _PassN suffix. Shader sections use a space before PassN instead.",
          "source_sha256": "aa796f6183a7013bd1b76702e61d33f0972a21841ffc79ee7b40afff843dbf58",
          "status": "current"
        },
        {
          "locator": "/effect_options/@id=effect-format.option.passes/rationale",
          "source": "The runtime allocates fixed per-pass arrays and validates the authored count before loading metadata.",
          "source_sha256": "91866b5cd9583766a450cecaed957b6aeeefec01159bb7bf488edc44e7eb66a1",
          "status": "current"
        },
        {
          "locator": "/effect_options/@id=effect-format.option.passes/requirement",
          "source": "Passes must be in the inclusive range 1..EFFECT_MAX_PASSES. Pass indices in section names and state suffixes are one-based.",
          "source_sha256": "d7b92a9fc603d02d3f618b67066188fce36399e5691068700d458b2a20f14382",
          "status": "current"
        },
        {
          "locator": "/effect_options/@id=effect-format.option.shadow-pass/rationale",
          "source": "Shadow execution can be disabled independently at runtime for 3D draws.",
          "source_sha256": "3391c239ed471bb7336d0e57a36635252f6758e95e2011e4cdd8e422d2f4c54c",
          "status": "current"
        },
        {
          "locator": "/effect_options/@id=effect-format.option.shadow-pass/requirement",
          "source": "ShadowPass is -1 for no shadow pass or a one-based pass index in 1..EFFECT_MAX_PASSES. It marks that pass as the model shadow pass.",
          "source_sha256": "e904409fbe2eab82c8665474771743eb8cc74cb914116c352c2ec68ef62ceb52",
          "status": "current"
        },
        {
          "locator": "/effect_options/@id=effect-format.option.version/rationale",
          "source": "The authored source omits its own version directive because the baker supplies it.",
          "source_sha256": "03ac657cc0ba40e3caa67263aaef26ad208f485d4b5d9bde44a79d44215f1e61",
          "status": "current"
        },
        {
          "locator": "/effect_options/@id=effect-format.option.version/requirement",
          "source": "Version is parsed as an integer and emitted as '#version <Version> es' for glslang input.",
          "source_sha256": "5341ad587f7ffd47c271f4c31f3182deb694aaa2b02dfe0867db28cf20c9e2fe",
          "status": "current"
        },
        {
          "locator": "/resources/@id=effect-format.resource.camera/name",
          "source": "CameraBuf affine bases",
          "source_sha256": "920ff15b89aa936dd1b43c9e3449d40bf78d0932b13509c8184d405561f6c817",
          "status": "current"
        },
        {
          "locator": "/resources/@id=effect-format.resource.camera/rationale",
          "source": "The scale terms preserve continuity across padded/chunked render targets and zoom.",
          "source_sha256": "9e7a92ed0838f7c15a476c482d845b0a7ce190974b49d0ea319564ee4164bb36",
          "status": "current"
        },
        {
          "locator": "/resources/@id=effect-format.resource.camera/requirement",
          "source": "CameraBuf contains MapAnchorScreenPos and ChunkScreenAnchor. Shaders evaluate either basis as '.xy + TexCoord * .zw' for world-anchored or screen-anchored coordinates.",
          "source_sha256": "70a8fb8a1723bbc1749f3740e4eddad00f00e8e4190ab8aa7df6bfcc75b47470",
          "status": "current"
        },
        {
          "locator": "/resources/@id=effect-format.resource.explicit-bindings/name",
          "source": "Explicit bindings",
          "source_sha256": "f272454f73d3bda8d733f2ec14aaf5ebf961f6522e8197db8811069ecc20dde9",
          "status": "current"
        },
        {
          "locator": "/resources/@id=effect-format.resource.explicit-bindings/rationale",
          "source": "SDL_GPU slot assignment sorts authored bindings and remaps them to dense per-stage slots.",
          "source_sha256": "406b1d0e1340f28c511909142c9f9fbe7d95853e2a2675b71fee4a14898ba0bd",
          "status": "current"
        },
        {
          "locator": "/resources/@id=effect-format.resource.explicit-bindings/requirement",
          "source": "Every live sampler and uniform block must declare an explicit binding. Binding numbers must be unique within each shader stage and resource class.",
          "source_sha256": "81a2e41ea003a42021cc870d56f005fba8dfb157161b0b08ed187f9131905768",
          "status": "current"
        },
        {
          "locator": "/resources/@id=effect-format.resource.general-buffers/name",
          "source": "General uniform buffers",
          "source_sha256": "6fd8f1065e38e89680864605c9d1850ca52a2d1ffd5943ff143df8349d4aae7b",
          "status": "current"
        },
        {
          "locator": "/resources/@id=effect-format.resource.general-buffers/rationale",
          "source": "EffectBaker validates reflected byte sizes against RenderEffect buffer structures.",
          "source_sha256": "05cd4b9b3c30017858d8c5f24f8cc64f81758a345fe15e230573e77371ed5a21",
          "status": "current"
        },
        {
          "locator": "/resources/@id=effect-format.resource.general-buffers/requirement",
          "source": "Recognized general buffers are ProjBuf, MainTexBuf, EggBuf, SpriteBorderBuf, ParticleSamplingBuf, TimeBuf, RandomValueBuf, ScriptValueBuf, and CameraBuf. ParticleSamplingBuf is caller-defined per draw for particle texture sampling and distortion controls. Declarations must match the native std140-compatible layouts exactly.",
          "source_sha256": "c4b304f3cd910b6971878d92ce109487bd865c66b99662af302c2a41017e2f19",
          "status": "current"
        },
        {
          "locator": "/resources/@id=effect-format.resource.model-buffers/name",
          "source": "3D uniform buffers",
          "source_sha256": "1ee10d17bd4c63d0f9b309691ea6f58adbb99927621dc5dd859419c6a4253762",
          "status": "current"
        },
        {
          "locator": "/resources/@id=effect-format.resource.model-buffers/rationale",
          "source": "These layouts carry skinning, lighting, texture-atlas, and animation timing data for model effects.",
          "source_sha256": "a844160d0d636d2242a448c9b9ca319c5920df6c5d959f5d5c7329eae28f990c",
          "status": "current"
        },
        {
          "locator": "/resources/@id=effect-format.resource.model-buffers/requirement",
          "source": "Recognized model buffers are ModelBuf, ModelTexBuf, and ModelAnimBuf, with MAX_BONES and MAX_TEXTURES supplied by the baker prelude.",
          "source_sha256": "fddf9424cce0a3632633da2e41738b2fae8704b216359e8955e32e191666c770",
          "status": "current"
        },
        {
          "locator": "/resources/@id=effect-format.resource.native-descriptor-sets/name",
          "source": "Native Vulkan descriptor convention",
          "source_sha256": "861ad13794f0d4004ba0b9fec02d1fc46f1e9a74f0bebed94cf66dcd44c2c26f",
          "status": "current"
        },
        {
          "locator": "/resources/@id=effect-format.resource.native-descriptor-sets/rationale",
          "source": "The native SPIR-V is consumed unchanged by Rendering-Vulkan and is the source for GLSL, GLSL ES, and HLSL cross-compilation.",
          "source_sha256": "3fc5cc51cafd73d140d7c7acf68af7e81ff24325fded8a252dd6381ac23c1758",
          "status": "current"
        },
        {
          "locator": "/resources/@id=effect-format.resource.native-descriptor-sets/requirement",
          "source": "Author native shader resources with uniform buffers in descriptor set 0 and combined image samplers in descriptor set 1.",
          "source_sha256": "8eb9ac796962e9c3c61405dee5424700971d812dcd21145254de4a7dc2c8e639",
          "status": "current"
        },
        {
          "locator": "/resources/@id=effect-format.resource.samplers/name",
          "source": "Renderer-provided samplers",
          "source_sha256": "abff2c2d9cc74b30ceeeb354c4a6e17d94f3de6919d3326b9990ee7a152fd1aa",
          "status": "current"
        },
        {
          "locator": "/resources/@id=effect-format.resource.samplers/rationale",
          "source": "A shader may compile with another sampler name but receives no Engine-owned texture binding.",
          "source_sha256": "0a4dde7213dc947d753035fc38baf4c3990ab7c1674ad645e9d414b573675a8d",
          "status": "current"
        },
        {
          "locator": "/resources/@id=effect-format.resource.samplers/requirement",
          "source": "The runtime has producers for MainTex, IndoorMaskTex, and BackgroundTex, plus ModelTex0 through ModelTexN-1 in 3D builds. BackgroundTex is a caller-supplied scene snapshot for refraction. Other reflected sampler names are not populated by RenderEffect.",
          "source_sha256": "e3f54674334bbe060c449c524d54c3f38939130a098ab7f1f2ea9cd2ad346855",
          "status": "current"
        },
        {
          "locator": "/resources/@id=effect-format.resource.script-values/name",
          "source": "ScriptValueBuf",
          "source_sha256": "8a99f3fe1eb75b544f5ce62caea85f4077cd89c3c3a528c1e64ef823ccc6c805",
          "status": "current"
        },
        {
          "locator": "/resources/@id=effect-format.resource.script-values/rationale",
          "source": "The baker supplies MAX_SCRIPT_VALUES and the client API writes float ranges into the same native buffer.",
          "source_sha256": "94c9e9c9f22f91940e56bcc17c1de4ef666143e8ef84edd70d1e0c6f59dfb13e",
          "status": "current"
        },
        {
          "locator": "/resources/@id=effect-format.resource.script-values/requirement",
          "source": "Declare 'vec4 ScriptValue[MAX_SCRIPT_VALUES / 4]' inside ScriptValueBuf. The flat script-facing index range is 0..EFFECT_SCRIPT_VALUES-1.",
          "source_sha256": "9af4298c93a4e66f734630e1cc97144c6c3b329043e7cf8b933e1d2f874cd804",
          "status": "current"
        },
        {
          "locator": "/resources/@id=effect-format.resource.sdl-limits/name",
          "source": "SDL_GPU per-stage limits",
          "source_sha256": "0d5a3b1199e8b6569999dc21aacb386406fb0a517d54e7fca74b65b425f4d359",
          "status": "current"
        },
        {
          "locator": "/resources/@id=effect-format.resource.sdl-limits/rationale",
          "source": "SDL_CreateGPUShader requires per-stage counts and the backend descriptor convention differs from native Vulkan.",
          "source_sha256": "52d1914980fd7db9886dd3012668003a01e057941d0c7ffc306ec4ce16e3fd39",
          "status": "current"
        },
        {
          "locator": "/resources/@id=effect-format.resource.sdl-limits/requirement",
          "source": "Each shader stage may use at most 16 samplers and 4 uniform buffers. Slots become dense independently for vertex samplers, vertex UBOs, fragment samplers, and fragment UBOs.",
          "source_sha256": "9743830a6037d576f99fcc2b94501aa10e5777af5195dcde6c109d26eac37ec3",
          "status": "current"
        },
        {
          "locator": "/resources/@id=effect-format.resource.time-random/name",
          "source": "Per-frame buffers",
          "source_sha256": "21963f068d5a7e78c1026a498bfcdd974a260f000366b1eec4f4a0b6c98ec2dd",
          "status": "current"
        },
        {
          "locator": "/resources/@id=effect-format.resource.time-random/rationale",
          "source": "These buffers are updated per loaded effect only when reflection reports that the effect needs them.",
          "source_sha256": "db5541bef178d37505c497f618ee1c07fa5ebcf05262f230750f9d3e18dbe98d",
          "status": "current"
        },
        {
          "locator": "/resources/@id=effect-format.resource.time-random/requirement",
          "source": "TimeBuf exposes FrameTime.x and GameTime.x as session-relative seconds wrapped at 8192; RandomValueBuf exposes four independent [0,1] values refreshed each frame.",
          "source_sha256": "386c991de17c1482b2deecf6ba33b51d02716218a99199739b3292a25b4585f2",
          "status": "current"
        },
        {
          "locator": "/resources/@id=effect-format.resource.unsupported/name",
          "source": "Unsupported shader resources",
          "source_sha256": "ca99def1bd137aee120a336ef23ec7bacf44c5925878f181a09a36d0596da2df",
          "status": "current"
        },
        {
          "locator": "/resources/@id=effect-format.resource.unsupported/rationale",
          "source": "The renderer binds only its fixed buffer vocabulary and sampled textures.",
          "source_sha256": "d0079b1fb057381394c8181182204b84c8df1c27291968030347d10dc9995c79",
          "status": "current"
        },
        {
          "locator": "/resources/@id=effect-format.resource.unsupported/requirement",
          "source": "Unknown uniform blocks, storage buffers, and storage images are rejected. Dead declared descriptor resources are rejected during SDL SPIR-V patching.",
          "source_sha256": "09722e0a3e2226bc5903caeecc48cad2320fa4dd72d79d259db1fdd6cd55964b",
          "status": "current"
        },
        {
          "locator": "/resources/@id=effect-format.resource.vertex-2d/name",
          "source": "Vertex2D input layout",
          "source_sha256": "106c1a27c9e36df51af43465f0187041573b550156b9ee971aceef0aa5518819",
          "status": "current"
        },
        {
          "locator": "/resources/@id=effect-format.resource.vertex-2d/rationale",
          "source": "The non-model usages share one native vertex structure even when a shader ignores some inputs.",
          "source_sha256": "a790792326da34f14ebc2279de23944f20b6a24e34cf17553adf9d0a813fc55c",
          "status": "current"
        },
        {
          "locator": "/resources/@id=effect-format.resource.vertex-2d/requirement",
          "source": "ImGui, QuadSprite, and Primitive effects consume locations 0..3 from Vertex2D: vec3 position, normalized color, vec2 texture coordinate, and vec2 egg/auxiliary data.",
          "source_sha256": "f36efd8026e883223150a694cefa0f5a49984064e2d831df25e95c1e7bdcffd2",
          "status": "current"
        },
        {
          "locator": "/resources/@id=effect-format.resource.vertex-model/name",
          "source": "Vertex3D input layout",
          "source_sha256": "cf72680d0e196304cae0822e060b04dad03b5854b08dbe213c07e62c17327d1a",
          "status": "current"
        },
        {
          "locator": "/resources/@id=effect-format.resource.vertex-model/rationale",
          "source": "All model shaders must match the fixed Vertex3D layout configured by every active backend.",
          "source_sha256": "968fb1334e4ebbf34de98cb8ed62b6ceea899160b79ab6dbabdfa8ba13fc06f2",
          "status": "current"
        },
        {
          "locator": "/resources/@id=effect-format.resource.vertex-model/requirement",
          "source": "Model effects consume locations 0..8: position, normal, primary UV, base UV, tangent, bitangent, blend weights, blend indices, and color.",
          "source_sha256": "c05edc4ab7fd03740c3fdd9160261e8d9803ebe5b2d0134ad1f00d5d56fcd8cf",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=effect-format.runtime.cache-key/name",
          "source": "Path-only effect cache",
          "source_sha256": "11ae1df22a35b5022438f06aa00190f43b8efc4c31640048815b9ad6fbff67b5",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=effect-format.runtime.cache-key/rationale",
          "source": "ScriptValueBuf and per-frame optional buffers belong to the cached object, not to an effect slot.",
          "source_sha256": "ee23faa8a54cb12b5abd4abd6b9ce0e7367b5d34cb1ff2490c936323ef4d8876",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=effect-format.runtime.cache-key/requirement",
          "source": "EffectManager caches one mutable RenderEffect object per resource path. Re-loading the same path returns the existing object.",
          "source_sha256": "85fea548f1f233dbf9c422b4b0b32328b002bba603076c1531cc7d7714fbc1b9",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=effect-format.runtime.default-selection/name",
          "source": "Default effect resolution",
          "source_sha256": "24480bf0b62d8a83b8215ff0f9fc247605a9c06f484047d534eb97fdf16c5625",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=effect-format.runtime.default-selection/rationale",
          "source": "Projects can temporarily override a slot and restore the Engine/project default without naming its path.",
          "source_sha256": "6e93c3448d941f8ce25451bf51ca779d987871ce7a14a371aa7bb9abfec55813",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=effect-format.runtime.default-selection/requirement",
          "source": "An empty SetEffect path resolves back to the slot's default effect; a non-empty path loads it using the default effect's EffectUsage.",
          "source_sha256": "e3c1f2f25baad5e823eccd61f72053285c592720830f5297fbcda76f37816dc2",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=effect-format.runtime.first-usage/name",
          "source": "First-load EffectUsage",
          "source_sha256": "d5267f3121801379c68c4ebead6ff56f445a93ece7adc6fe1e33ed57f9ccc70a",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=effect-format.runtime.first-usage/rationale",
          "source": "The cache key omits EffectUsage and later loads return the first object without rebuilding its vertex layout or pipeline assumptions.",
          "source_sha256": "76de88676ea7f160f7fd2b775939389ed54ad5990d39cedcdcefe64c4092ee4c",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=effect-format.runtime.first-usage/requirement",
          "source": "The first load of a path fixes that RenderEffect object's EffectUsage. Do not reuse one path across incompatible ImGui, QuadSprite, Primitive, or Model usage categories.",
          "source_sha256": "a7df8930cf8939b93c0b3923b4fea48f2972d9cc7c2143c98f8862bd666c5c53",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=effect-format.runtime.per-frame-update/name",
          "source": "Per-frame buffer updates",
          "source_sha256": "6e9fa713e2601a2820df3a6b8f9311171e5040f95a29f9843a37ed3b69044585",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=effect-format.runtime.per-frame-update/rationale",
          "source": "Declaring a built-in buffer opts the effect into its Engine producer.",
          "source_sha256": "6b6eb0e1a6245f0e564b59553110849c00d2796c1db1857304c95ca696bf0830",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=effect-format.runtime.per-frame-update/requirement",
          "source": "Every loaded effect is visited each frame; TimeBuf and RandomValueBuf are allocated/refreshed only when reflection marks them as needed.",
          "source_sha256": "fc53690bd42e47f1fa824f17d02929bde124c704ab74a54e32d1aa007d8cf266",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=effect-format.runtime.script-value-lifetime/name",
          "source": "ScriptValue persistence",
          "source_sha256": "3e81e2657684d717a7097bf21b3d54ba27846a5afa1e45cddccc216b67ce0e80",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=effect-format.runtime.script-value-lifetime/rationale",
          "source": "Switching to another path selects another object's buffer, while switching back to a previously loaded path restores that object's prior values.",
          "source_sha256": "184c3eb8f8b83d7f58c4e5c5fcf6b4a37229ee0935a72c259cc75c177fd804ce",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=effect-format.runtime.script-value-lifetime/requirement",
          "source": "An effect declaring ScriptValueBuf receives a zeroed buffer on first load. Values persist on the cached path until overwritten or explicitly cleared; SetEffect does not clear them.",
          "source_sha256": "360865d07fe1df0bd806e538a61ad808a8e3902d3888304a04785ff66c3460a8",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=effect-format.runtime.script-value-target/name",
          "source": "Script-value target resolution",
          "source_sha256": "7a3b67d35868d2db0ba68a5bd976bb9ee99ba4a957c08d6a8c989161ca73fdfd",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=effect-format.runtime.script-value-target/rationale",
          "source": "Writing a slot on a passthrough/default effect without ScriptValueBuf is a script error.",
          "source_sha256": "217c8bc2e1d1c8dad412d8875a7a7955e68cf7d51e6283fef59b9b5bbcd145d2",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=effect-format.runtime.script-value-target/requirement",
          "source": "Script writes resolve the currently selected effect for one EffectType/subtype, require it to be loaded, and require that it declares ScriptValueBuf.",
          "source_sha256": "6857cc525647718a9bdd54d1bffe6a21f2e3425065ea6d49ba5d1ab1b44073a1",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=effect-format.runtime.state-and-metadata/name",
          "source": "Runtime artifact pair",
          "source_sha256": "ad4da8afe7e62dfd0df49fca207bc333989df0b07f596cd0695a505dcc43d50c",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=effect-format.runtime.state-and-metadata/rationale",
          "source": "Changing only a shader binary cannot change pass count or blend/depth state.",
          "source_sha256": "881a808fbdaf7548bb6e22a697f34b429dcee557f24b5b67186f781a6b5e9159",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=effect-format.runtime.state-and-metadata/requirement",
          "source": "RenderEffect loads the baked .fofx source for pass/render state and one .fofx-N-info artifact per pass for reflected resource positions.",
          "source_sha256": "e01d7043f12ca74268e78b8cb9266953d95a95fc7d959672efe3e2910461e464",
          "status": "current"
        },
        {
          "locator": "/scope/excluded",
          "source": [
            "project effect catalogs, shader art direction, quality tiers, and concrete resource-pack shadowing policy",
            "project-defined ScriptValue indices, ranges, ownership, defaults, and gameplay meaning",
            "general GLSL language reference, GPU performance tuning, and vendor-specific shader debugging",
            "particle-system authoring, image formats, sprite baking, model-description grammar, and GUI layout"
          ],
          "source_sha256": "e22a5d3cdeb8a91c8e8108d4a6fe233ffc2a3bbb99f9233e03d5131f99672b19",
          "status": "current"
        },
        {
          "locator": "/scope/included",
          "source": [
            ".fofx config sections, shader-stage fallback, pass declarations, render state, optional per-draw depth/cull variants, and shader compiler prelude",
            "vertex input layouts, recognized samplers, built-in uniform buffers, descriptor conventions, reflection, and backend limits",
            "per-pass baked artifacts for Vulkan, SDL_GPU, OpenGL, OpenGL ES, Direct3D, and Metal",
            "runtime loading, path cache identity, EffectUsage selection, script-value persistence, script methods, and validation"
          ],
          "source_sha256": "6071a8b5faf67dceb0f109037730c91e369cf974bd3b9135c7844578df86067f",
          "status": "current"
        },
        {
          "locator": "/scope/support_note",
          "source": "The contract is generated for a pinned Engine revision. Projects own effect catalogs, visual policy, quality profiles, concrete override paths, and ScriptValue slot meanings.",
          "source_sha256": "76249e9f46587f5fbb840821005c1534381ec026fc59fb319800017aef148bdc",
          "status": "current"
        },
        {
          "locator": "/script_methods/@id=effect-format.script.clear-values/behavior",
          "source": "Zeroes the entire ScriptValueBuf of the selected cached effect object.",
          "source_sha256": "79f7cc5cdb487fd8880fb00c1e9d78e823ad48997e38903bed362405c08bdaec",
          "status": "current"
        },
        {
          "locator": "/script_methods/@id=effect-format.script.clear-values/rationale",
          "source": "Clearing is explicit because SetEffect does not reset cached values.",
          "source_sha256": "6845a29418d60501d9e45942c78384ea21c03c38a0b358f518ebde250976b875",
          "status": "current"
        },
        {
          "locator": "/script_methods/@id=effect-format.script.clear-values/requirement",
          "source": "The selected effect must be loaded and declare ScriptValueBuf.",
          "source_sha256": "c66b5b3a7098d00a88dace0ec15d57f1d1dbffd1303b3217035fb665936a2771",
          "status": "current"
        },
        {
          "locator": "/script_methods/@id=effect-format.script.set-effect/behavior",
          "source": "Selects a path for the requested effect slot or restores the default when effectPath is empty.",
          "source_sha256": "df4ed7274e7474fb574ec2a7f26ca592cffa2ad5c0286a7b84d5f7e73c753003",
          "status": "current"
        },
        {
          "locator": "/script_methods/@id=effect-format.script.set-effect/rationale",
          "source": "Effect selection is client-renderer state and is not a server API.",
          "source_sha256": "d859ea728273f3ca63cdbbb9f2cbd88c2978b760d4d307a9555dda54b5997d26",
          "status": "current"
        },
        {
          "locator": "/script_methods/@id=effect-format.script.set-effect/requirement",
          "source": "Invalid subtypes and missing/broken effects throw. The selected path must be compatible with the slot's EffectUsage.",
          "source_sha256": "a6816c820b8651fcc98af471d47bb22efaa0e61407807028075a01b63cf6d0e4",
          "status": "current"
        },
        {
          "locator": "/script_methods/@id=effect-format.script.set-value/behavior",
          "source": "Writes one float into the selected cached effect object's ScriptValueBuf.",
          "source_sha256": "ab4a8954736a92439840d4c27ba8a66e4ecda994feb5686d6e4112811087727d",
          "status": "current"
        },
        {
          "locator": "/script_methods/@id=effect-format.script.set-value/rationale",
          "source": "Single-value writes suit infrequent scalar tuning.",
          "source_sha256": "19e0b41d1d5dd3b1358cba8bc658569d7f621d071038996883730dbef93f2c2b",
          "status": "current"
        },
        {
          "locator": "/script_methods/@id=effect-format.script.set-value/requirement",
          "source": "The index must be in range and the selected effect must be loaded and declare ScriptValueBuf.",
          "source_sha256": "96db6b4d3d4557e238c70ee274d7dbfe2fd01668fa8266e2512bd85be7d63fc8",
          "status": "current"
        },
        {
          "locator": "/script_methods/@id=effect-format.script.set-values/behavior",
          "source": "Writes a contiguous slice of values in one native call; valuesCount -1 selects the remaining input range.",
          "source_sha256": "14c44faf986cd4052aa0bc898bff86bf9abad73eff23476f8dc2250cf6d8c263",
          "status": "current"
        },
        {
          "locator": "/script_methods/@id=effect-format.script.set-values/rationale",
          "source": "Bulk writes avoid repeated native calls for parameter blocks updated together.",
          "source_sha256": "3e9de78e1bd9fcda5cb5b7d9b15552f1ea301d643ab05f416f923e8f1abec627",
          "status": "current"
        },
        {
          "locator": "/script_methods/@id=effect-format.script.set-values/requirement",
          "source": "Input offset/count and destination range are validated before resolving and writing the effect.",
          "source_sha256": "fade9e77b75e739c9d8a2f47d5ff186333e0b15ebc1c11cab8a3e82127f5087e",
          "status": "current"
        },
        {
          "locator": "/sections/@id=effect-format.section.effect/name",
          "source": "[Effect]",
          "source_sha256": "fa6c4d7fab7f0288a85b7f14415ee0fb8cd73d81c6a93b6773d1434289240bf5",
          "status": "current"
        },
        {
          "locator": "/sections/@id=effect-format.section.effect/rationale",
          "source": "Both the baker and runtime loader reject a source without this section.",
          "source_sha256": "92ae25cb7e862a91c1c0b4c44a1d98af101d579ec7ac802ab5389c4dd283b8b7",
          "status": "current"
        },
        {
          "locator": "/sections/@id=effect-format.section.effect/requirement",
          "source": "Every .fofx source must contain an Effect section. It stores pass count, shader version, shadow-pass selection, and default or per-pass render state.",
          "source_sha256": "804da268c7bfd904faa00023a3ee4e37ce952c022e29373adb70a150567bc1e3",
          "status": "current"
        },
        {
          "locator": "/sections/@id=effect-format.section.fragment/name",
          "source": "[FragmentShader] and [FragmentShader PassN]",
          "source_sha256": "1cc252bb4f54e2eceab8629b96040b7a1184d68e3445e22a2c46b90427f7f2b1",
          "status": "current"
        },
        {
          "locator": "/sections/@id=effect-format.section.fragment/rationale",
          "source": "Multi-pass effects often share geometry processing and vary only the fragment stage.",
          "source_sha256": "0a5a69a5b288a85703857260ed593b84ad68ee6d8eb4e7247bdd842271cbfddd",
          "status": "current"
        },
        {
          "locator": "/sections/@id=effect-format.section.fragment/requirement",
          "source": "Each declared pass needs non-empty fragment shader text. The baker first reads FragmentShader PassN and falls back to the generic FragmentShader section when the pass-specific section is empty.",
          "source_sha256": "61777bbb7310929d9854494c95396d39f1dd9573e4a8baa5a48a74efc2899a98",
          "status": "current"
        },
        {
          "locator": "/sections/@id=effect-format.section.shader-common/name",
          "source": "[ShaderCommon]",
          "source_sha256": "4f2ddf262e542dcecd58060081b7fdef10a1723d8b588387d79ea5eb8016a9a1",
          "status": "current"
        },
        {
          "locator": "/sections/@id=effect-format.section.shader-common/rationale",
          "source": "It is the only format-level reuse block; the .fofx parser has no include directive.",
          "source_sha256": "4c311fdb7cf19418d5274eb643704640aa0a4f68474ed2f9d95d87cf21fbaa5f",
          "status": "current"
        },
        {
          "locator": "/sections/@id=effect-format.section.shader-common/requirement",
          "source": "ShaderCommon is optional raw shader text prepended to both stages of every pass after the Engine-generated prelude.",
          "source_sha256": "773abb118ae5fd7c177c932edf1ee80b80dfae91653e89324f5ce14676f6da91",
          "status": "current"
        },
        {
          "locator": "/sections/@id=effect-format.section.vertex/name",
          "source": "[VertexShader] and [VertexShader PassN]",
          "source_sha256": "7e42b10240c6b35cfb7c309a7b8cbec1cb5ced160375107d38342172edf27815",
          "status": "current"
        },
        {
          "locator": "/sections/@id=effect-format.section.vertex/rationale",
          "source": "A shared vertex stage can serve all passes while selected passes override it.",
          "source_sha256": "c8c8d970dbec6ba60aba032d896ddea3bb37dec7ce1060e6ac69a028b00e2991",
          "status": "current"
        },
        {
          "locator": "/sections/@id=effect-format.section.vertex/requirement",
          "source": "Each declared pass needs non-empty vertex shader text. The baker first reads VertexShader PassN and falls back to the generic VertexShader section when the pass-specific section is empty.",
          "source_sha256": "f408774c96a0e7d04caa47d835c823be932110a4f95f723f69fd10947f1e3188",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=effect-format.validation.bindings/name",
          "source": "Descriptor bindings",
          "source_sha256": "8d0316ac7acd705e6117b249495c0085910502a5e9509fd32bd8b5325a343a42",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=effect-format.validation.bindings/rationale",
          "source": "Dense SDL slot remapping must be deterministic and complete.",
          "source_sha256": "2c4790db1d0498093f10f7b1212e9fa7fc7a00d05818b52a0886c92f933bf90c",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=effect-format.validation.bindings/requirement",
          "source": "Reject missing explicit bindings, duplicate same-stage bindings, dead descriptor declarations, and SDL_GPU stage-limit overflow.",
          "source_sha256": "14baf4cd3b08ab2360a3424bcd7b3308e72023fc8fe9f9c5387f88c896b6c735",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=effect-format.validation.buffer-layout/name",
          "source": "Uniform buffer layout",
          "source_sha256": "3d5f66f12ed83dfde49a03e4fa90d0b0a76a251ac71540df1a0b39fb80b812d0",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=effect-format.validation.buffer-layout/rationale",
          "source": "All backends upload fixed native structures without per-shader layout adaptation.",
          "source_sha256": "ed9bb59dffaa77b96f56576758f882ebe66780250e52693a60d0158938be398f",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=effect-format.validation.buffer-layout/requirement",
          "source": "Reject known uniform buffers whose reflected byte size differs from the corresponding RenderEffect structure and reject every unknown uniform block.",
          "source_sha256": "803fdd11110254aaec311f524fad4db4315cfd0e94a40317fd79730913fbb54d",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=effect-format.validation.compiler-diagnostics/name",
          "source": "Compiler diagnostics",
          "source_sha256": "674e9062fcf2ef0ea0e6f76548a55196d4ace43e25153a298f26717c24c024fd",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=effect-format.validation.compiler-diagnostics/rationale",
          "source": "Build logs remain machine-readable while preserving the shader compiler message.",
          "source_sha256": "210d9536984e605bb2b2a30d34a848c97650f80f09a32ee345d256a9c5e759dd",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=effect-format.validation.compiler-diagnostics/requirement",
          "source": "Shader parse/link/reflection failures stop effect baking and normalize compiler diagnostics to a single log line.",
          "source_sha256": "036e6eaeebd762eb78d2a20802e26ba33651704bf86c8afd97f1299ec700233d",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=effect-format.validation.cross-backend/name",
          "source": "Cross-backend visible validation",
          "source_sha256": "cda8ea6d2665b006a3be20d1b837c001857927bcf72d437e55a49bf596edba73",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=effect-format.validation.cross-backend/rationale",
          "source": "Cross-compilation cannot prove driver behavior, feature-level support, visual output, or performance.",
          "source_sha256": "c8b9e629224fa2654c71c66e7c4d4165798c775fd782a56103625da4f2f6bc81",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=effect-format.validation.cross-backend/requirement",
          "source": "Validate project effects on every renderer/backend profile the embedding project ships, including depth/blend-sensitive scenes and the lowest supported shader profile.",
          "source_sha256": "1a354705c27ccdf8ebc81d8a89482b0e37949840f8419c12bcbc804aacdad18f",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=effect-format.validation.metadata-bindings/name",
          "source": "Reflection metadata",
          "source_sha256": "78fec614c97379dc40cf11848a32e8e8aa63471ed5aad5ab2927414172c388f1",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=effect-format.validation.metadata-bindings/rationale",
          "source": "Backends depend on metadata identity even when shader compilation itself succeeds.",
          "source_sha256": "04fc14509b6e3f034bf7b5794b24956721a9f5fd5333f26bbf0841d433ce7630",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=effect-format.validation.metadata-bindings/requirement",
          "source": "Verify native [EffectInfo] binding values and SDL [EffectInfoSdl] counts/slots for representative effects.",
          "source_sha256": "26bb39873fb8662623b6758a55f5ea58a1b509a90e57f2a4536b9c6722a5fe90",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=effect-format.validation.output-flavors/name",
          "source": "Baked flavor completeness",
          "source_sha256": "d3782bd291b232820d7dddb46b2a4b10a56e9ed3e289622337542d1ee3583b3f",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=effect-format.validation.output-flavors/rationale",
          "source": "A resource can pass one backend and still be incomplete for another package.",
          "source_sha256": "42b5be26a1c2722933fe40e1c79055b7c52d2026c3c1b1c46e6be135df78298a",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=effect-format.validation.output-flavors/requirement",
          "source": "Verify source, metadata, native SPIR-V, SDL SPIR-V, GLSL, GLSL ES, HLSL, and both MSL outputs for every stage/pass.",
          "source_sha256": "f4c2ee516d0cbd7544022660152674dec4e4d7fe8dddb202cbb20bcc30f1c31e",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=effect-format.validation.project-ownership/name",
          "source": "Project contract validation",
          "source_sha256": "d52090d2a9280f2b2f57fe8b6fc0c34ba2210417d1c7189bc005a72197ae0f70",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=effect-format.validation.project-ownership/rationale",
          "source": "The Engine can validate format mechanics but cannot infer project shader semantics or art-direction intent.",
          "source_sha256": "314c2c74c4dda49482d8d9c7c6f2fbedf895332696c7f7b9e198d873df15ad7f",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=effect-format.validation.project-ownership/requirement",
          "source": "An embedding project must validate every effect path, EffectType/subtype assignment, ScriptValue slot registry, buffer writer, resource-pack override, and visible fallback it owns.",
          "source_sha256": "dc00b34fd83ea6e498130a897bd57b6e1f283088a70f715b796417719805d875",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=effect-format.validation.required-sections/name",
          "source": "Required source content",
          "source_sha256": "8fd5c10fc134422cd4a7ae52734013a5f296f37b9d2f802082b0c1cf14a96d42",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=effect-format.validation.required-sections/rationale",
          "source": "A partial source cannot produce a complete linked program or runtime state.",
          "source_sha256": "b2d8175b9566c2bdb5ab065af96de05bb7b8481df98391abdd1c2985f075fdc3",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=effect-format.validation.required-sections/requirement",
          "source": "Reject a missing Effect section or a pass without usable vertex or fragment text.",
          "source_sha256": "28f0e884e7bf31b5dab190c66caf15ad46fd3705ff98baf287b870745d77e083",
          "status": "current"
        }
      ]
    },
    "font-format": {
      "source_model": "Docs/generated/font-format.json",
      "entry_count": 187,
      "current_count": 187,
      "missing_count": 0,
      "complete": true,
      "entries": [
        {
          "locator": "/binding_rules/@id=font-format.binding.bind-time-scale/name",
          "source": "Bind-time downscale",
          "source_sha256": "1f5094833fd46338b8988f4b50d204a697cdc2971dfdf26211f98b2adbc31306",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=font-format.binding.bind-time-scale/rationale",
          "source": "Binding area-averages glyph pixels and rounds metrics once; values above one and nonpositive or nonfinite values are rejected.",
          "source_sha256": "4075a124a417eb0aff953dee6adea8a70e94c3cd763be4471e351f5c1a14ae54",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=font-format.binding.bind-time-scale/requirement",
          "source": "Pass a finite defaultScale in (0, 1]; use a larger authored bitmap and downscale it rather than requesting runtime upscaling.",
          "source_sha256": "d20eb70ce7e48218db9b1449f85f30b593328ce8544717d575c75089d86396ab",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=font-format.binding.extension-dispatch/name",
          "source": "Exact extension dispatch",
          "source_sha256": "a981cceb6bc578716cc367f0ec857fc0f44323489a4547589b91785c5cdae160",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=font-format.binding.extension-dispatch/rationale",
          "source": "Dispatch uses case-sensitive ends_with checks and does not sniff descriptor content.",
          "source_sha256": "42b2ab8d982eb35dfa5a7e56ed3cb67ca428db89f71e36da1315c6d9d24e3002",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=font-format.binding.extension-dispatch/requirement",
          "source": "Call Game.BindFont with an exact lowercase .fofnt or .fnt path; every other suffix throws a script exception.",
          "source_sha256": "672a815324ec31cd5c241b7e53eacd05ad6519d240d35eb0a2b9e8d28660c3f4",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=font-format.binding.font-slots/name",
          "source": "Project-extensible font slots",
          "source_sha256": "41b5f068872c3aba76d415681cdec868d56dfa73149c48d81703505ce495d7cf",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=font-format.binding.font-slots/rationale",
          "source": "FontType is an indexed loaded-font table, and unloaded or out-of-range slots throw.",
          "source_sha256": "700adba7dcb2b7a97aed82f6429d9c9c4f4fd4f571e291656ff5e4e69ae756e3",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=font-format.binding.font-slots/requirement",
          "source": "Bind every FontType slot before it is measured or drawn; the Engine names only Default = 0 and embedding scripts may extend the enum through codegen annotations.",
          "source_sha256": "a5a0e45d49e79e0ab14e0fb574fe5f7e87a7240a0de1f2b28c5b4ae568edefc2",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=font-format.binding.iface-atlas/name",
          "source": "Interface sprite atlas",
          "source_sha256": "812a41c9a80a3f212cbe650af6b200c421077bcc29aa50c3c63838c6c98addf0",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=font-format.binding.iface-atlas/rationale",
          "source": "Both Game.BindFont descriptor branches pass the same interface atlas type.",
          "source_sha256": "4df500f6cb63a529164c98fb4fd80fd92d715cf174278fc17f6502b322487c0c",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=font-format.binding.iface-atlas/requirement",
          "source": "Script-bound fonts allocate their normal and optional bordered textures in AtlasType::IfaceSprites.",
          "source_sha256": "3dc965380aefef54159ede89a899f291ce60cdbda5a469fc14eff8d420e415a5",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=font-format.binding.image-resource/name",
          "source": "Separately baked image",
          "source_sha256": "559edea976b5efb53e85d65b486ebf0718007ca0636d40ca945029d081b0fad9",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=font-format.binding.image-resource/rationale",
          "source": "The descriptor is raw-copied, but its image is loaded through SpriteManager and the normal image-format pipeline.",
          "source_sha256": "f223e1735f55aae5f18283eca1a4f47b687a9295b247ca6b93923151e27659f7",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=font-format.binding.image-resource/requirement",
          "source": "Ship the referenced image as an independently supported image resource in the same pack and preserve its relative path.",
          "source_sha256": "df7cea84870a53353570a2072ed5a22bcab46da76649f8bd466392c9083d5798",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=font-format.binding.raw-copy/name",
          "source": "Descriptor raw-copy boundary",
          "source_sha256": "8dcd1bf00560de4d2729360f2e6a50f3b3cdb8bd12fa2c010b24abd84184e369",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=font-format.binding.raw-copy/rationale",
          "source": "There is no dedicated font descriptor baker; RawCopyBaker preserves path and bytes.",
          "source_sha256": "ff911c077271cf2ed11de2a795ef9d948c850ceb6aee5e5d49c0d0ffca63d4e6",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=font-format.binding.raw-copy/requirement",
          "source": "Keep fofnt and fnt in Baking.RawCopyFileExtensions so descriptor bytes reach baked resources unchanged.",
          "source_sha256": "92ca8c1d82ebbecdfe75aa6f213e8626c1cbd0965b1a68f9d3a4a47796e03f7b",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=font-format.binding.rebind/name",
          "source": "Slot replacement and cache reset",
          "source_sha256": "1137938b999e75dfe47a3052a44745261ecd1ec42395efffed85e33b992dec1e",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=font-format.binding.rebind/rationale",
          "source": "StoreFont replaces the optional table entry, rebuilds atlas data, and clears the format cache.",
          "source_sha256": "792e3d39d262542763598e1e8ad2761fb6f66159d94140143f3b3cafecc159e3",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=font-format.binding.rebind/requirement",
          "source": "Treat a repeated binding of the same slot as replacement; all cached layouts are discarded before the rebuilt font is used.",
          "source_sha256": "bd2d20e7ca05aa9f664e0970f9f1c76e7cd5f97507f08a239f0df4bf11c911d0",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=font-format.binding.updater-default/name",
          "source": "Updater fallback font",
          "source_sha256": "23124eb82fb3f77c6395e2cc8b13e655d70667ab43dfce9446c1d895c3d768bb",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=font-format.binding.updater-default/rationale",
          "source": "Updater binds the Default slot from that exact path with skip-if-loaded behavior.",
          "source_sha256": "3f62671965c85275abded06b157bf154c53b3e83efc1c8ba79aa397725c7da5d",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=font-format.binding.updater-default/requirement",
          "source": "Keep Fonts/Default.fofnt available for the built-in updater path unless the host replaces that resource contract deliberately.",
          "source_sha256": "c43ed032103137e4d6898a69950e1528a2a93da99781b4b7b95cee35c40c2113",
          "status": "current"
        },
        {
          "locator": "/bmfont_rules/@id=font-format.bmfont.binary-v3-signature/name",
          "source": "Binary v3 signature",
          "source_sha256": "388d324ac16cbff31f2e22064253d9cb8f8f65f2583c17554817f7b6878a810f",
          "status": "current"
        },
        {
          "locator": "/bmfont_rules/@id=font-format.bmfont.binary-v3-signature/rationale",
          "source": "Any other signature or BMFont version is rejected before block parsing.",
          "source_sha256": "afa7bc6a6bbc13f662c4b9b408e126052a7c47eb39968af20c7589f3caa6653f",
          "status": "current"
        },
        {
          "locator": "/bmfont_rules/@id=font-format.bmfont.binary-v3-signature/requirement",
          "source": "The first four bytes must be B, M, F, and binary-format version 3.",
          "source_sha256": "e2abbe4ae415a8ed6e47f4a55b5b8919b30b45aa666de377372f36a217a5a5d3",
          "status": "current"
        },
        {
          "locator": "/bmfont_rules/@id=font-format.bmfont.block-order/name",
          "source": "Fixed block order",
          "source_sha256": "228cf5021835c11ec9a55aa82774c3bb7950c1e464baf5af85a1c7c4b4ca9bf7",
          "status": "current"
        },
        {
          "locator": "/bmfont_rules/@id=font-format.bmfont.block-order/rationale",
          "source": "The parser advances by each block size and reads the next block payload directly; it does not search by block type.",
          "source_sha256": "8189b0969e8648a09d594ba951e713eeb3dd74ea549d223e26cba3b32378ec66",
          "status": "current"
        },
        {
          "locator": "/bmfont_rules/@id=font-format.bmfont.block-order/requirement",
          "source": "Export Info, Common, Pages, and Chars blocks in standard binary order without interposed optional blocks.",
          "source_sha256": "887f4be1b45b7cb391500793c9cdefe91c3e6a28a707d6c9936151606cf625d7",
          "status": "current"
        },
        {
          "locator": "/bmfont_rules/@id=font-format.bmfont.char-records/name",
          "source": "Twenty-byte character records",
          "source_sha256": "cc806b66d32b747d6db51fdca0ca21fb2c7ea40c24a94543d65b781aaf88fb47",
          "status": "current"
        },
        {
          "locator": "/bmfont_rules/@id=font-format.bmfont.char-records/rationale",
          "source": "Bundled fonts contain negative bearings, so this source-backed limitation must remain visible instead of being documented as correct signed decoding.",
          "source_sha256": "2edb337751f913c7a9343f3324fa85e1906405308b545b235dfb59357044b10f",
          "status": "current"
        },
        {
          "locator": "/bmfont_rules/@id=font-format.bmfont.char-records/requirement",
          "source": "Encode each Chars record in the 20-byte BMFont v3 layout. The format defines signed xoffset, yoffset, and xadvance fields, but the current loader reads all three as unsigned little-endian uint16 values; avoid negative metrics until that runtime defect is fixed separately.",
          "source_sha256": "54d8b84cbcb72233ba593319c0fce7b075c87d1b96f2e893a7791e4421954b56",
          "status": "current"
        },
        {
          "locator": "/bmfont_rules/@id=font-format.bmfont.gray-bordered/name",
          "source": "Grayscale and border preparation",
          "source_sha256": "0b22e93f033df5beb0ec8ab3edcd3b256b1f90e11fa9afbd681bbeb5943141c3",
          "status": "current"
        },
        {
          "locator": "/bmfont_rules/@id=font-format.bmfont.gray-bordered/rationale",
          "source": "This makes runtime tinting and FontFlag::Bordered available without descriptor-specific switches.",
          "source_sha256": "31dec7cbad7d1d8e2c4053ab749eb86048b3451a17b74e26f81400a37620a1c6",
          "status": "current"
        },
        {
          "locator": "/bmfont_rules/@id=font-format.bmfont.gray-bordered/requirement",
          "source": "Binary BMFont bindings always normalize nontransparent pixels to gray and create a second bordered atlas copy.",
          "source_sha256": "0662f58b61df5ef5447d02defbddf4ec8bb84bd71acd9316e4ba0e42605548ca",
          "status": "current"
        },
        {
          "locator": "/bmfont_rules/@id=font-format.bmfont.info-padding/name",
          "source": "One-pixel exporter padding",
          "source_sha256": "3376773bd430502b17e8ec2c2ef38b9bb69d9ae95120b4784405eba42c879f53",
          "status": "current"
        },
        {
          "locator": "/bmfont_rules/@id=font-format.bmfont.info-padding/rationale",
          "source": "The loader requires the four padding bytes to equal 0x01010101 and later removes one pixel from each side of every glyph rectangle.",
          "source_sha256": "5013dee24a4bcc43dcd708b0bd0ff85115f754dd0b959390c3207ee317553f39",
          "status": "current"
        },
        {
          "locator": "/bmfont_rules/@id=font-format.bmfont.info-padding/requirement",
          "source": "Set BMFont Info padding up, right, down, and left to exactly one pixel each.",
          "source_sha256": "ece01ae534f9b58692473fdd8997315f172a40ebc6bf29285c0881149b63f0db",
          "status": "current"
        },
        {
          "locator": "/bmfont_rules/@id=font-format.bmfont.line-metrics/name",
          "source": "Derived line metrics",
          "source_sha256": "a6b563c286bd26074ea1c59a74722b983f40c60970323ed2878e7dde006ac062",
          "status": "current"
        },
        {
          "locator": "/bmfont_rules/@id=font-format.bmfont.line-metrics/rationale",
          "source": "The BMFont Common.lineHeight field is used for bearing conversion but is not copied directly into the Engine line height.",
          "source_sha256": "1ceff2a93d927d65fe39520c92611df28e034c3bf7d34d5b86a45ca0af346fa0",
          "status": "current"
        },
        {
          "locator": "/bmfont_rules/@id=font-format.bmfont.line-metrics/requirement",
          "source": "Expect Engine LineHeight to use the visible W glyph height when W exists, otherwise Common.base; YAdvance is half that resulting height.",
          "source_sha256": "9238dcbe64d9afc440b69eb0390f6790b79d765deb63352b57175a9dfe075a79",
          "status": "current"
        },
        {
          "locator": "/bmfont_rules/@id=font-format.bmfont.metric-conversion/name",
          "source": "Engine metric conversion",
          "source_sha256": "6addb0c2a3a6fb5986e4fabc67ebf54eb18947dee4b17ff96eb3e56a2c7b2f10",
          "status": "current"
        },
        {
          "locator": "/bmfont_rules/@id=font-format.bmfont.metric-conversion/rationale",
          "source": "The Engine samples an expanded rectangle for antialiasing and optional border dilation while keeping the visible glyph metrics separate.",
          "source_sha256": "5fb2688835f6d99996e1bd8310f2b359f93b7b9e01212e84ed6e85528228de31",
          "status": "current"
        },
        {
          "locator": "/bmfont_rules/@id=font-format.bmfont.metric-conversion/requirement",
          "source": "Reserve one transparent pixel around every glyph; the loader shifts x/y inward, removes two pixels from width/height, negates bearings, and adds one pixel to xadvance.",
          "source_sha256": "5d762a74c8669e37912d8b51f6c78f7344d94f24916a00e32253ccf328cfa88e",
          "status": "current"
        },
        {
          "locator": "/bmfont_rules/@id=font-format.bmfont.relative-page-image/name",
          "source": "Relative page image",
          "source_sha256": "87adc102b3da9352f3709500e42fdbc8e7a2c814cbe00f5ab1c2c7b037cb0bbb",
          "status": "current"
        },
        {
          "locator": "/bmfont_rules/@id=font-format.bmfont.relative-page-image/rationale",
          "source": "The Pages payload is read as one string and combined with the descriptor directory before sprite loading.",
          "source_sha256": "76a57150803ff46bb1367ebda7f3a5d3d04b3ba4dc1d7b908cd9bbac1cedddd8",
          "status": "current"
        },
        {
          "locator": "/bmfont_rules/@id=font-format.bmfont.relative-page-image/requirement",
          "source": "Store a NUL-terminated page filename resolvable relative to the .fnt descriptor directory.",
          "source_sha256": "6c39baa35f763d6e7dcf1ff60dc6b7d8ffe7d2acbfb549bc6be59602a827b58d",
          "status": "current"
        },
        {
          "locator": "/bmfont_rules/@id=font-format.bmfont.single-page/name",
          "source": "Single texture page",
          "source_sha256": "4a6c2912d3785978dd6665d9a47b9b57921a9679c56d4e85c547c522296725e4",
          "status": "current"
        },
        {
          "locator": "/bmfont_rules/@id=font-format.bmfont.single-page/rationale",
          "source": "The Common block page count must be one; multi-page BMFont descriptors are rejected.",
          "source_sha256": "402ae9658bbc85aa903fe16044ac9ceca3e1aa0168f8bd019514e270a228db8c",
          "status": "current"
        },
        {
          "locator": "/bmfont_rules/@id=font-format.bmfont.single-page/requirement",
          "source": "Export exactly one texture page.",
          "source_sha256": "f68ef1e2f678a797baf7f9ffcb95fad5efbacfd3bc7aa485aa2eafe31be65b1b",
          "status": "current"
        },
        {
          "locator": "/description",
          "source": "Source-backed contract for FOnline FOFNT and binary BMFont descriptors, client font binding, text layout, rendering, scaling, caching, and validation.",
          "source_sha256": "0a5ccfa8eb78f3a7b592efbb9a57646622856485fd5f4fee71f81dc7a2c7e5a7",
          "status": "current"
        },
        {
          "locator": "/fofnt_fields/@id=font-format.fofnt.end-and-comments/name",
          "source": "End and comments",
          "source_sha256": "4e59d280b90503f292d4d9927e086a7a40d34461e57ad1f58f9340eee99bc2cd",
          "status": "current"
        },
        {
          "locator": "/fofnt_fields/@id=font-format.fofnt.end-and-comments/rationale",
          "source": "End stops parsing, while the parser strips comment markers from the current key token rather than implementing a line-oriented comment grammar.",
          "source_sha256": "24e4a83dd922b1be87cc1e8a9c5cb93d3e70babae188b84ca9fbed8be62826ef",
          "status": "current"
        },
        {
          "locator": "/fofnt_fields/@id=font-format.fofnt.end-and-comments/requirement",
          "source": "Terminate the useful descriptor with End; # and ; begin comments only when encountered inside the whitespace-delimited key token.",
          "source_sha256": "76957c8619a44b46143aa8d3c2804c99f0851976d38cb02218a99828e25f4a6f",
          "status": "current"
        },
        {
          "locator": "/fofnt_fields/@id=font-format.fofnt.height/name",
          "source": "Height",
          "source_sha256": "bfe2eca401797325bc268f93c7397554551de4274d5d73ed421ee36fe9cd3ae0",
          "status": "current"
        },
        {
          "locator": "/fofnt_fields/@id=font-format.fofnt.height/rationale",
          "source": "Rendering samples Height plus two pixels and the maximum height can define an omitted LineHeight.",
          "source_sha256": "aab9b373e663dcba14a37554d7c4dcba5baa1ae43334b9f0bad3ed5db5e44ade",
          "status": "current"
        },
        {
          "locator": "/fofnt_fields/@id=font-format.fofnt.height/requirement",
          "source": "Set the visible glyph rectangle height, excluding the one-pixel sampling border.",
          "source_sha256": "8d89846af4ba3e95feed9e0030a8bd84e178e50c270b93d239886d4643bde5ba",
          "status": "current"
        },
        {
          "locator": "/fofnt_fields/@id=font-format.fofnt.image/name",
          "source": "Image",
          "source_sha256": "1aa4cb0bcca76e92e30677e809bb3d4b5c066715ef4d558184e319496bcc5125",
          "status": "current"
        },
        {
          "locator": "/fofnt_fields/@id=font-format.fofnt.image/rationale",
          "source": "The current loader accesses image_name.back() without an empty guard, so authoring validation must enforce this mandatory field before runtime; the trailing marker is removed before relative resource resolution.",
          "source_sha256": "ecf0e8f842c7b6b7730639120d25a5906fcb058f35b12d37435c5ec98abf4034",
          "status": "current"
        },
        {
          "locator": "/fofnt_fields/@id=font-format.fofnt.image/requirement",
          "source": "Name a non-empty image resource relative to the descriptor; append * to request grayscale normalization and runtime tinting.",
          "source_sha256": "681edfa346c78de64c311caba1d291c31af1faa06db795f3e2edcf647d30f7c8",
          "status": "current"
        },
        {
          "locator": "/fofnt_fields/@id=font-format.fofnt.letter/name",
          "source": "Letter",
          "source_sha256": "1bf163f269ae847bcc1f7d9fe26c27cbe20e5416ba8d6e6e8347324c428795d2",
          "status": "current"
        },
        {
          "locator": "/fofnt_fields/@id=font-format.fofnt.letter/rationale",
          "source": "The parser decodes exactly one codepoint to select the glyph map entry; later duplicate records overwrite earlier metrics.",
          "source_sha256": "bf77e1fc37fa33087e3a0b0dd8eb27335efcb18b0c1a3fa096c44b1643692102",
          "status": "current"
        },
        {
          "locator": "/fofnt_fields/@id=font-format.fofnt.letter/requirement",
          "source": "Start each glyph record with Letter and one valid UTF-8 codepoint after the first apostrophe.",
          "source_sha256": "3d2d082cd773fed92929bf450eb37d28657041fae2428fc5698e6703801519b8",
          "status": "current"
        },
        {
          "locator": "/fofnt_fields/@id=font-format.fofnt.line-height/name",
          "source": "LineHeight",
          "source_sha256": "a6cbd7ab061ed3101c5e6e57bfa68720de01039b947e1175e5b6630cd98a7a31",
          "status": "current"
        },
        {
          "locator": "/fofnt_fields/@id=font-format.fofnt.line-height/rationale",
          "source": "BuildFont replaces zero LineHeight with the maximum glyph height after optional scaling.",
          "source_sha256": "8d37dd3a640856302e909e63a94340444f7eb665efa7cb0865a46446d6b35324",
          "status": "current"
        },
        {
          "locator": "/fofnt_fields/@id=font-format.fofnt.line-height/requirement",
          "source": "Set the glyph-line height in pixels, or leave it zero/omitted to derive the maximum authored glyph height.",
          "source_sha256": "b3f813bc350524adb8f16a561812b91f33951e30fa8d95036db8808be4ee2e8d",
          "status": "current"
        },
        {
          "locator": "/fofnt_fields/@id=font-format.fofnt.offset-x/name",
          "source": "OffsetX",
          "source_sha256": "90c34dc86b2e4be21b60e6899ae08595b0d096a69e3b6e463ab47a49ee81bbcb",
          "status": "current"
        },
        {
          "locator": "/fofnt_fields/@id=font-format.fofnt.offset-x/rationale",
          "source": "The descriptor value is stored unchanged and subtracted when generating glyph vertices.",
          "source_sha256": "292631aedd839704e71574da5dc1c9827376e50bf2c24a37441769352b41116f",
          "status": "current"
        },
        {
          "locator": "/fofnt_fields/@id=font-format.fofnt.offset-x/requirement",
          "source": "Set the signed horizontal bearing in Engine coordinates; drawing places the quad at cursor X minus OffsetX.",
          "source_sha256": "2de193b8d8650f1a8a5ddaa7ea4e6f722ead81763458889bdca2b00d83e49d12",
          "status": "current"
        },
        {
          "locator": "/fofnt_fields/@id=font-format.fofnt.offset-y/name",
          "source": "OffsetY",
          "source_sha256": "04780034bd7d3a0bbffb52e61cc01fd124edbb1f43d092086923fdebb79b5e64",
          "status": "current"
        },
        {
          "locator": "/fofnt_fields/@id=font-format.fofnt.offset-y/rationale",
          "source": "The descriptor value is stored unchanged and subtracted when generating glyph vertices.",
          "source_sha256": "292631aedd839704e71574da5dc1c9827376e50bf2c24a37441769352b41116f",
          "status": "current"
        },
        {
          "locator": "/fofnt_fields/@id=font-format.fofnt.offset-y/requirement",
          "source": "Set the signed vertical bearing in Engine coordinates; drawing places the quad at cursor Y minus OffsetY.",
          "source_sha256": "99a0547ed402e1579c7378b1dab63fb1cc4034648053791d3fd5dd3925efe63c",
          "status": "current"
        },
        {
          "locator": "/fofnt_fields/@id=font-format.fofnt.position-x/name",
          "source": "PositionX",
          "source_sha256": "5fb879043910349bf64bda5fb748459a2abcbfe1163ec27280baf8e6e114f0bb",
          "status": "current"
        },
        {
          "locator": "/fofnt_fields/@id=font-format.fofnt.position-x/rationale",
          "source": "BuildFont converts this position, expanded by one padding pixel, into texture coordinates.",
          "source_sha256": "7ae62cbfe9e14aa975c047b6e8636cd6c86f1a65c2ef66c31cd0c7349f0b57fa",
          "status": "current"
        },
        {
          "locator": "/fofnt_fields/@id=font-format.fofnt.position-x/requirement",
          "source": "Set the glyph rectangle's left coordinate in the image.",
          "source_sha256": "2e8e0a2f80207a12551113b557758e832ba3599ff0cda8ea3a07c7a3bf25069b",
          "status": "current"
        },
        {
          "locator": "/fofnt_fields/@id=font-format.fofnt.position-y/name",
          "source": "PositionY",
          "source_sha256": "7dd0605fb089286dbffe7ae7a78ae273c473ff2818e816e3d6e6f0d86ab92f79",
          "status": "current"
        },
        {
          "locator": "/fofnt_fields/@id=font-format.fofnt.position-y/rationale",
          "source": "BuildFont converts this position, expanded by one padding pixel, into texture coordinates.",
          "source_sha256": "7ae62cbfe9e14aa975c047b6e8636cd6c86f1a65c2ef66c31cd0c7349f0b57fa",
          "status": "current"
        },
        {
          "locator": "/fofnt_fields/@id=font-format.fofnt.position-y/requirement",
          "source": "Set the glyph rectangle's top coordinate in the image.",
          "source_sha256": "9b0d757089c1dd81636d06a67fab738ee715d813a27a103e415272f43665a388",
          "status": "current"
        },
        {
          "locator": "/fofnt_fields/@id=font-format.fofnt.version/name",
          "source": "Version",
          "source_sha256": "dd167905de0defcaf72de673ee44c07431770d129ccffab286bd2edfdaf62396",
          "status": "current"
        },
        {
          "locator": "/fofnt_fields/@id=font-format.fofnt.version/rationale",
          "source": "The parser requires the first key to be Version and uses 2 as its current maximum accepted version.",
          "source_sha256": "419105395e79b4c43574bbff9b1ca5fd9d21a4f34fab0e62760ebaf97f20a989",
          "status": "current"
        },
        {
          "locator": "/fofnt_fields/@id=font-format.fofnt.version/requirement",
          "source": "Make Version the first parsed key; author version 2 for current resources. Values greater than 2 are rejected.",
          "source_sha256": "0d51e5c8ad80e5eb5ea111f6a1e18c97c80c1c827d63730af8e8b0c786b92387",
          "status": "current"
        },
        {
          "locator": "/fofnt_fields/@id=font-format.fofnt.width/name",
          "source": "Width",
          "source_sha256": "3019947b6daf18b0534a15d8c7ac30ab587e36cc93fb45a6e7b750348006d620",
          "status": "current"
        },
        {
          "locator": "/fofnt_fields/@id=font-format.fofnt.width/rationale",
          "source": "Rendering samples Width plus two pixels and bind-time scaling rewrites the visible size.",
          "source_sha256": "f8af9f05c18aaef11b98bb63822d5147d0937b741f35751a3c351e7d0845a435",
          "status": "current"
        },
        {
          "locator": "/fofnt_fields/@id=font-format.fofnt.width/requirement",
          "source": "Set the visible glyph rectangle width, excluding the one-pixel sampling border.",
          "source_sha256": "d4a6178e356efb9da0e9ebd30c679ec561a72bcddaa1562b6542b5e57982eab5",
          "status": "current"
        },
        {
          "locator": "/fofnt_fields/@id=font-format.fofnt.x-advance/name",
          "source": "XAdvance",
          "source_sha256": "0e0118c464db8899b0d227d045fe954c20a4fe0719cb2873aa51e5287c4eb37b",
          "status": "current"
        },
        {
          "locator": "/fofnt_fields/@id=font-format.fofnt.x-advance/rationale",
          "source": "The glyph advance drives wrapping and drawing, and the space glyph's XAdvance becomes SpaceWidth.",
          "source_sha256": "034b19341f57a8894f7c05347d0dd533309d33aa804db6edfdfeed4100e8cb42",
          "status": "current"
        },
        {
          "locator": "/fofnt_fields/@id=font-format.fofnt.x-advance/requirement",
          "source": "Set the horizontal cursor advance after the glyph; include an explicit space glyph when spaces must consume width.",
          "source_sha256": "732c30c00c7dcaf05eb7da1f62300bace6ef1b32df301f8db7f40882474b5106",
          "status": "current"
        },
        {
          "locator": "/fofnt_fields/@id=font-format.fofnt.y-advance/name",
          "source": "YAdvance",
          "source_sha256": "d93206fecf6fcab91f11275e3f4102fdd860353a08dc7678bb6b8956408725cd",
          "status": "current"
        },
        {
          "locator": "/fofnt_fields/@id=font-format.fofnt.y-advance/rationale",
          "source": "Layout advances by LineHeight plus YAdvance and scales the value at bind time.",
          "source_sha256": "2d7f1d9a15c63151e041081d845d994f4a54860b515bb0c5db8c064c1ff3573c",
          "status": "current"
        },
        {
          "locator": "/fofnt_fields/@id=font-format.fofnt.y-advance/requirement",
          "source": "Set the extra vertical gap added between consecutive text lines.",
          "source_sha256": "700f3f264e414eb9fcc62b585eb45d41c316409e512628948d19a029a5604560",
          "status": "current"
        },
        {
          "locator": "/formats/@id=font-format.format.bmfc-sidecar/rationale",
          "source": "The default raw-copy list contains bmfc, but the runtime extension dispatch contains only fofnt and fnt.",
          "source_sha256": "29367880a7973669430cd45782fcc880d418ce176dde16cbaf9254122b6b0d4f",
          "status": "current"
        },
        {
          "locator": "/formats/@id=font-format.format.bmfc-sidecar/requirement",
          "source": "Treat .bmfc as an optional BMFont tool configuration file and never pass it to Game.BindFont.",
          "source_sha256": "ceee4c42d9df40c346930fe786155a709fdebb247cf5f447a13e92822b4aa00b",
          "status": "current"
        },
        {
          "locator": "/formats/@id=font-format.format.bmfc-sidecar/role",
          "source": "Raw-copied authoring sidecar; not a runtime descriptor",
          "source_sha256": "04a34b490f48fbb5119a4bf761934dc15f4fa3d6cd9c326496df64318f3b6d3a",
          "status": "current"
        },
        {
          "locator": "/formats/@id=font-format.format.bmfont-binary-v3/rationale",
          "source": "The client reads the binary BMF header and fixed block layout; text and XML BMFont files are not accepted.",
          "source_sha256": "35b655d5201829132a9c76fb89c8d156662a8ed86df4682018c0a14a75450b49",
          "status": "current"
        },
        {
          "locator": "/formats/@id=font-format.format.bmfont-binary-v3/requirement",
          "source": "Export BMFont binary version 3 with one texture page and one-pixel padding on every side of each glyph.",
          "source_sha256": "7664b9afd4193096f72b8a586c5c4933c90ce27624c76c9f1b8c9c5102dfdab0",
          "status": "current"
        },
        {
          "locator": "/formats/@id=font-format.format.bmfont-binary-v3/role",
          "source": "Runtime descriptor",
          "source_sha256": "a838a25280894b79b60a04024f25c4ae7cdc0a5605e2c939cdff36ccdeb734e3",
          "status": "current"
        },
        {
          "locator": "/formats/@id=font-format.format.fofnt/rationale",
          "source": "Game.BindFont dispatches the exact lowercase .fofnt suffix to FontManager::BindFoFont.",
          "source_sha256": "83884849dfc4785e76624156263229b98afaf570b6d46a64345f2c164e32ab70",
          "status": "current"
        },
        {
          "locator": "/formats/@id=font-format.format.fofnt/requirement",
          "source": "Use the Engine text descriptor when authoring explicit image, line, and per-codepoint glyph metrics.",
          "source_sha256": "881ea1ca3af1847b67d1c86ab9b0dcf7d56bde8c849a412dca2dffe4c248a19d",
          "status": "current"
        },
        {
          "locator": "/formats/@id=font-format.format.fofnt/role",
          "source": "Runtime descriptor",
          "source_sha256": "a838a25280894b79b60a04024f25c4ae7cdc0a5605e2c939cdff36ccdeb734e3",
          "status": "current"
        },
        {
          "locator": "/layout_rules/@id=font-format.layout.horizontal-alignment/name",
          "source": "Horizontal alignment",
          "source_sha256": "8049d5b162341b2e1d1e435586768f5be0f09c6a6527049eb91840b6a98eff6c",
          "status": "current"
        },
        {
          "locator": "/layout_rules/@id=font-format.layout.horizontal-alignment/rationale",
          "source": "The initial and every post-newline X coordinate are recalculated from that line's measured width.",
          "source_sha256": "eabc66cbdd64acae41be7b5e985e69dd1b8bddc1d18e56402c47c98571b69d9f",
          "status": "current"
        },
        {
          "locator": "/layout_rules/@id=font-format.layout.horizontal-alignment/requirement",
          "source": "CenterX and AlignRight position each line independently inside the supplied rectangle; do not combine contradictory alignment flags.",
          "source_sha256": "63bf7737ee301135e1f3cca46faa6fcb662629b54447c146d40df69f350019f4",
          "status": "current"
        },
        {
          "locator": "/layout_rules/@id=font-format.layout.justification/name",
          "source": "Justification",
          "source_sha256": "c24c06c3f7fd49d74eda48d43093d4347e42c0fce89bfe0056499b4f267b39dc",
          "status": "current"
        },
        {
          "locator": "/layout_rules/@id=font-format.layout.justification/rationale",
          "source": "Tabs are fixed at four SpaceWidth units and are not justification opportunities.",
          "source_sha256": "4b65f3ec0cb33d8208792660425a2f6ed7516840b34903195c2d17615d783e97",
          "status": "current"
        },
        {
          "locator": "/layout_rules/@id=font-format.layout.justification/requirement",
          "source": "Justify distributes remaining finite rectangle width over breakable spaces on wrapped non-skipped lines.",
          "source_sha256": "9e79eb2be7453ff5902eb958599f2f6d7567fd3418e29b621f6cb5e1dffc5ebd",
          "status": "current"
        },
        {
          "locator": "/layout_rules/@id=font-format.layout.measurement/name",
          "source": "Measurement matches layout",
          "source_sha256": "634504fba956fc4ff0e75adceaf73ea7715d3617e4872208cea9336ee415c4e7",
          "status": "current"
        },
        {
          "locator": "/layout_rules/@id=font-format.layout.measurement/rationale",
          "source": "Measurement and drawing share GetOrFormat, skips, line metrics, and bind-time scale; NoWrap truncation is intentionally gated to Draw mode.",
          "source_sha256": "4a66d13452f18667b5d36055c25d02b191b46240e8e05f1ecc92db657d663cd1",
          "status": "current"
        },
        {
          "locator": "/layout_rules/@id=font-format.layout.measurement/requirement",
          "source": "Use Game.GetTextInfo and related line helpers with the same rectangle and TextFormat used for drawing, but do not infer draw-only NoWrap truncation from measurement.",
          "source_sha256": "9e3de71fb1ad8b72b9b61d2cd3bfb331b0cd05cba5b0310eab53aeed38b6c7e9",
          "status": "current"
        },
        {
          "locator": "/layout_rules/@id=font-format.layout.no-wrap-and-truncate/name",
          "source": "NoWrap and TruncateLine",
          "source_sha256": "c5c2c6b73fdcc8e61d6ae59a58dbe747ca12a7a0d9b453948058b0583ab5d8aa",
          "status": "current"
        },
        {
          "locator": "/layout_rules/@id=font-format.layout.no-wrap-and-truncate/rationale",
          "source": "These flags intentionally choose different loss behavior and should not be treated as synonyms.",
          "source_sha256": "6988f6d02acef088cd4b6191b8d83632f1b6c2483066cd661bde2780d971386c",
          "status": "current"
        },
        {
          "locator": "/layout_rules/@id=font-format.layout.no-wrap-and-truncate/requirement",
          "source": "NoWrap ends draw text at the first width overflow; TruncateLine removes overflowing glyphs through the next authored newline.",
          "source_sha256": "7c9aea65c2ee1148f5e6769248968acb36f44d821ba2de05f6850ec17b64c7a6",
          "status": "current"
        },
        {
          "locator": "/layout_rules/@id=font-format.layout.skip-lines-and-tail/name",
          "source": "SkipLines and KeepTail",
          "source_sha256": "64be2dbe9a221eb1ca8310087c87ba84947ef7f29ac7c84bec20baf616f5e268",
          "status": "current"
        },
        {
          "locator": "/layout_rules/@id=font-format.layout.skip-lines-and-tail/rationale",
          "source": "These mechanisms serve pagination and log-tail behavior but use different counters and overflow conditions.",
          "source_sha256": "4ad37a3d12e76c1e1f04eaea982bbcdcc2a26dce81ac7624dafa78f1dea85a2e",
          "status": "current"
        },
        {
          "locator": "/layout_rules/@id=font-format.layout.skip-lines-and-tail/requirement",
          "source": "SkipLines removes leading lines by default and trailing lines with AlignBottom; KeepTail discards leading overflow so the newest visible lines remain.",
          "source_sha256": "782dfe82606a16be99acd88b1f7ecdc01df309d3c3b4e49c64ef3c0bbb1eace6",
          "status": "current"
        },
        {
          "locator": "/layout_rules/@id=font-format.layout.text-format/name",
          "source": "TextFormat value",
          "source_sha256": "34d129562b67ae694bf49460ff11c1913a850e6a90b88c37d6894787c21469c8",
          "status": "current"
        },
        {
          "locator": "/layout_rules/@id=font-format.layout.text-format/rationale",
          "source": "The exported value type is a fixed 12-byte layout consumed by measurement and drawing.",
          "source_sha256": "2e77233c1a21a182d624fa9df606855da1cec82e21ad278511246fe598f0c687",
          "status": "current"
        },
        {
          "locator": "/layout_rules/@id=font-format.layout.text-format/requirement",
          "source": "Pass a Font slot, FontFlag bitmask, and nonnegative SkipLines count as TextFormat.",
          "source_sha256": "9d96c39203068857af506b801df70016f25fbe535304d648d692f1d2abcaef66",
          "status": "current"
        },
        {
          "locator": "/layout_rules/@id=font-format.layout.utf8-and-missing-glyphs/name",
          "source": "UTF-8 and missing glyphs",
          "source_sha256": "fd6f3348ea4205c93045261aed77334d90c4fcffa7d553cee138748ccf056742",
          "status": "current"
        },
        {
          "locator": "/layout_rules/@id=font-format.layout.utf8-and-missing-glyphs/rationale",
          "source": "The layout maps invalid sequences to codepoint zero and unknown codepoints to zero advance, while drawing skips missing map entries.",
          "source_sha256": "3720fe776f9d85d9a31afe97b4e2a0d331f50d2e1bc24448a884ccb92b5bca8e",
          "status": "current"
        },
        {
          "locator": "/layout_rules/@id=font-format.layout.utf8-and-missing-glyphs/requirement",
          "source": "Author every required Unicode codepoint; invalid UTF-8 and absent glyphs consume no glyph width and render no fallback symbol.",
          "source_sha256": "558650e8f6607b79d4a3d61646a7ab41c2dfa44926558d7519059098f74f32a7",
          "status": "current"
        },
        {
          "locator": "/layout_rules/@id=font-format.layout.vertical-alignment/name",
          "source": "Vertical alignment",
          "source_sha256": "81804c3d1be9002cbbc1577354a620427f2036ce4339712ee40cbf2f30daf935",
          "status": "current"
        },
        {
          "locator": "/layout_rules/@id=font-format.layout.vertical-alignment/rationale",
          "source": "Vertical placement depends on the number of lines that fit, not the total source-string byte length.",
          "source_sha256": "ea0f37d8fbbfcdaed37ba502b7703e2036c1302d99d21e10f66fdd722707b94f",
          "status": "current"
        },
        {
          "locator": "/layout_rules/@id=font-format.layout.vertical-alignment/requirement",
          "source": "CenterY centers the visible block and AlignBottom places it against the rectangle bottom using LineHeight and YAdvance.",
          "source_sha256": "f2db2166e1df96a27bbaeb49a8b7d67668d532e4e49690d0944c2b786e71cc7d",
          "status": "current"
        },
        {
          "locator": "/layout_rules/@id=font-format.layout.wrap-overflow/name",
          "source": "Width overflow and wrapping",
          "source_sha256": "10e3e364dcc882597071230ab7d24130cb0d5c4c2869c8b1e89317e9e7c0f8b4",
          "status": "current"
        },
        {
          "locator": "/layout_rules/@id=font-format.layout.wrap-overflow/rationale",
          "source": "Layout mutates its cached text copy to establish line boundaries without changing the caller's source string.",
          "source_sha256": "3b0c6375a0d4141c7c1ff418cb8b9d8c38a3ec6df67a7ef9550f82e8e5ac684a",
          "status": "current"
        },
        {
          "locator": "/layout_rules/@id=font-format.layout.wrap-overflow/requirement",
          "source": "With finite width, default layout wraps at the latest space or tab and inserts a line break before an overlong token when no break point exists.",
          "source_sha256": "2faccfb7c2aa6bcb80ee49214d88eba67b7b67363df65c5ad4845e31f8f41645",
          "status": "current"
        },
        {
          "locator": "/outputs/font_flags/@name=AlignBottom/description",
          "source": "Aligns the text block to the bottom and makes SkipLines count from the trailing lines",
          "source_sha256": "513d7201eea78346ce4030103c06ca2991b9d080d8ce025946d1c148f39d42b9",
          "status": "current"
        },
        {
          "locator": "/outputs/font_flags/@name=AlignRight/description",
          "source": "Right-aligns each rendered line within the target rectangle",
          "source_sha256": "74880511cbb07441c8cf9481f73561a82ce031b4072488daa49ae801bd92a4d0",
          "status": "current"
        },
        {
          "locator": "/outputs/font_flags/@name=Bordered/description",
          "source": "Uses the bordered or outlined font-texture variant for glyph rendering",
          "source_sha256": "94d7f3ce88ec56bf93cdc0c74cde5b9ffc87daf67a281068e619a0adb3375c8c",
          "status": "current"
        },
        {
          "locator": "/outputs/font_flags/@name=CenterX/description",
          "source": "Horizontally centers each rendered line within the target rectangle",
          "source_sha256": "be5a016a0b1884ae287fd0d0eaf02ed1905cbe743a9d89de5b0bbc555e91bc94",
          "status": "current"
        },
        {
          "locator": "/outputs/font_flags/@name=CenterY/description",
          "source": "Vertically centers the complete text block within the target rectangle",
          "source_sha256": "2aecbbbfd0a49701a67a08b8ff5f7551491ec40aa41c06d055c299553ea61bf8",
          "status": "current"
        },
        {
          "locator": "/outputs/font_flags/@name=Justify/description",
          "source": "Distributes extra spacing between words to fill each line's target width",
          "source_sha256": "3049ebc7d74dbd529492e1c3f45d5a94a95482bccd8acb9fbcfb10ba8a881104",
          "status": "current"
        },
        {
          "locator": "/outputs/font_flags/@name=KeepTail/description",
          "source": "Renders the tail of a text block that is taller than the target rectangle",
          "source_sha256": "ff65b0059e9d2448bf57bdccf1e3a7275efaa218fd1d2d4fd33a8635a9ddb6e8",
          "status": "current"
        },
        {
          "locator": "/outputs/font_flags/@name=NoColorize/description",
          "source": "Removes inline color tags while retaining the supplied base text color",
          "source_sha256": "d0f8573e60475155327a341aa2a04301162aa5376889afee63865a7fc7d52c18",
          "status": "current"
        },
        {
          "locator": "/outputs/font_flags/@name=NoWrap/description",
          "source": "Truncates the remaining text at rectangle-width overflow instead of wrapping it",
          "source_sha256": "3db8d394413fd609166b9247a9843990220fac89d125529b7ca6528ffcb8f4be",
          "status": "current"
        },
        {
          "locator": "/outputs/font_flags/@name=None/description",
          "source": "Applies no optional text-layout or glyph-rendering flags",
          "source_sha256": "11355563da99f242b04c37a32ac97244bc567c0f80e51bb170defad333369aff",
          "status": "current"
        },
        {
          "locator": "/outputs/font_flags/@name=TruncateLine/description",
          "source": "Skips overflowing glyphs through the next newline instead of wrapping the current line",
          "source_sha256": "b02ef1429a24fd98dd060e4892f5ce16d02f829be5a2c8496bd25895ec7140e8",
          "status": "current"
        },
        {
          "locator": "/outputs/font_slots/@name=Default/description",
          "source": "Built-in default font slot used when no project-defined slot is selected",
          "source_sha256": "1540de2e20060c310daa1e3f4faa6abf72dbce39df7189d3394189193d69420b",
          "status": "current"
        },
        {
          "locator": "/rendering_rules/@id=font-format.rendering.bind-time-resampling/name",
          "source": "Area-average downsampling",
          "source_sha256": "9c27199d0e42ee43034237fc5e39a37f7ef81a90c722c02819382d79a2380af7",
          "status": "current"
        },
        {
          "locator": "/rendering_rules/@id=font-format.rendering.bind-time-resampling/rationale",
          "source": "The scaler uses alpha-weighted area averages, clears the original glyph rectangle, and keeps the same top-left position.",
          "source_sha256": "9b788b61faf44c2c7f6427c6951668ed957754871cb956d9fb53438dea502333",
          "status": "current"
        },
        {
          "locator": "/rendering_rules/@id=font-format.rendering.bind-time-resampling/requirement",
          "source": "Expect defaultScale below one to rewrite the bound atlas region and integer glyph metrics once, with no per-widget font scale.",
          "source_sha256": "b86f0d26edc457df7069652bc36fa588f9bec705718d74949c8af423bb010d04",
          "status": "current"
        },
        {
          "locator": "/rendering_rules/@id=font-format.rendering.bordered-copy/name",
          "source": "Bordered atlas copy",
          "source_sha256": "73b8b3fe3af9865228806c7e25f7afb4cfc1397825ca0354bece3e74ecb750a6",
          "status": "current"
        },
        {
          "locator": "/rendering_rules/@id=font-format.rendering.bordered-copy/rationale",
          "source": "The loader duplicates the image and fills transparent neighbors of visible pixels before calculating bordered UVs.",
          "source_sha256": "e93a160d66fcca63b3c67537536e503d4e5ed2677a616337d4852376c779593e",
          "status": "current"
        },
        {
          "locator": "/rendering_rules/@id=font-format.rendering.bordered-copy/requirement",
          "source": "Reserve transparent padding for a one-pixel black dilation; FontFlag::Bordered selects the generated second texture.",
          "source_sha256": "1f072eae8b6b445c6f7dedce8f8c3f759cdcca77f4272c74f85712f5c6a13e37",
          "status": "current"
        },
        {
          "locator": "/rendering_rules/@id=font-format.rendering.font-effect/name",
          "source": "Shared and per-slot font effect",
          "source_sha256": "6d12ca2c259d76a4c6a780eb7150706d25abf49f40469aa4e6f6b78c3293f7c5",
          "status": "current"
        },
        {
          "locator": "/rendering_rules/@id=font-format.rendering.font-effect/rationale",
          "source": "Draw batching keys include the selected texture and RenderEffect pointer.",
          "source_sha256": "19e55da5efd86464e5ea9978f3d497b2491e81587614cb96ba38f254bfbb82ad",
          "status": "current"
        },
        {
          "locator": "/rendering_rules/@id=font-format.rendering.font-effect/requirement",
          "source": "Fonts start with the Engine shared font effect; a per-slot EffectType::Font override replaces it and a null override returns to the shared effect.",
          "source_sha256": "7af7d80903444e3c279bba38b1ecd5f8a98b7e24e1883a5b042877047e97bd1c",
          "status": "current"
        },
        {
          "locator": "/rendering_rules/@id=font-format.rendering.grayscale-tint/name",
          "source": "Grayscale normalization and tint",
          "source_sha256": "06405063b8fcd472596d269331c465ee443cb8fd5f3ce10daac5543fcc5f06a4",
          "status": "current"
        },
        {
          "locator": "/rendering_rules/@id=font-format.rendering.grayscale-tint/rationale",
          "source": "Nontransparent RGB becomes 128/128/128 while alpha is preserved; transparent pixels are cleared.",
          "source_sha256": "c7deade4eee0ded3908ca92ef8f13c146a8215601bce9e012004e4e978c20813",
          "status": "current"
        },
        {
          "locator": "/rendering_rules/@id=font-format.rendering.grayscale-tint/requirement",
          "source": "Use a trailing * on FOFNT Image, or binary BMFont, when the bitmap should be normalized to middle gray and tinted by draw color.",
          "source_sha256": "3e55ad21411a0cc16836f5555f41bff22e7a7b477ae6a5e967e5d6d15ce4ec4e",
          "status": "current"
        },
        {
          "locator": "/rendering_rules/@id=font-format.rendering.inline-color/name",
          "source": "Inline color tags",
          "source_sha256": "327aab12e61b97d71092abc79f8376e9363482a003598223870582981f09d007",
          "status": "current"
        },
        {
          "locator": "/rendering_rules/@id=font-format.rendering.inline-color/rationale",
          "source": "Formatting removes valid markers before wrapping and records color transitions by output byte offset.",
          "source_sha256": "2916d33cfeec6cff41eed2644d2f8f4643c95f2fd8648355e91319b02f96ab2c",
          "status": "current"
        },
        {
          "locator": "/rendering_rules/@id=font-format.rendering.inline-color/requirement",
          "source": "Use @color:BBGGRR@ or @color:AABBGGRR@, optionally with a 0x prefix, to push a color and @color@ to restore the previous color; NoColorize strips valid tags without applying them.",
          "source_sha256": "4dbeed2dc1cf2f4fc3ffe07a8dcd5b6c1c592b5bff0831ca8cd73e66447b3834",
          "status": "current"
        },
        {
          "locator": "/rendering_rules/@id=font-format.rendering.layout-cache/name",
          "source": "Three-frame layout cache",
          "source_sha256": "c366c228c284ff9b7616c774e449d0100294d9e29583526c614a532d29b8bf2c",
          "status": "current"
        },
        {
          "locator": "/rendering_rules/@id=font-format.rendering.layout-cache/rationale",
          "source": "The cache is a client implementation detail and is cleared whenever fonts are stored or cleared.",
          "source_sha256": "b7026c186d5487ba231eb435fc0fd10fcd6cb92530455a35b10f3fe30c792cd6",
          "status": "current"
        },
        {
          "locator": "/rendering_rules/@id=font-format.rendering.layout-cache/requirement",
          "source": "Do not depend on cached layout identity or lifetime; the cache key includes text, font, flags, skips, rectangle size, color, and mode and expires after three unused frames.",
          "source_sha256": "5dbc0f6d76ac67995462832e8f9d15d9e692c9b94de3fa94c987db686a5c5597",
          "status": "current"
        },
        {
          "locator": "/rendering_rules/@id=font-format.rendering.one-pixel-sampling-border/name",
          "source": "One-pixel sampling border",
          "source_sha256": "61da84a325e9b5e68973e9098827b2eb28a56f28b9064c7187a297c431a79595",
          "status": "current"
        },
        {
          "locator": "/rendering_rules/@id=font-format.rendering.one-pixel-sampling-border/rationale",
          "source": "Texture coordinates and submitted quads expand each visible glyph by one pixel on all sides.",
          "source_sha256": "e4dc3c7e639de1e000c14a3f2bc4dac2a64c7ddd4b631c2adf604a90a372d27e",
          "status": "current"
        },
        {
          "locator": "/rendering_rules/@id=font-format.rendering.one-pixel-sampling-border/requirement",
          "source": "Leave at least one pixel of valid transparent padding around every glyph rectangle and around the image edge.",
          "source_sha256": "5e443b37014057f6855df791cf79c3713510e4a2cc6e7bf4f1191855cff1e421",
          "status": "current"
        },
        {
          "locator": "/scope/excluded",
          "source": [
            "embedding-project font names, slot catalogs, GUI assignments, and typography policy",
            "font licensing, redistribution rights, and language-specific glyph acceptance",
            "BMFont text or XML descriptors, which the runtime does not parse",
            ".bmfc authoring-tool configuration semantics",
            "vector font or runtime TTF/OTF rasterization, which the client does not provide",
            "project-local localization packs and authored display strings"
          ],
          "source_sha256": "81efb67d98235f441ef251a1ba52b81de037fed8250198cc9723bc75e71707ab",
          "status": "current"
        },
        {
          "locator": "/scope/included",
          "source": [
            ".fofnt text descriptors and their glyph metrics",
            "binary BMFont v3 .fnt descriptors accepted by the client",
            "raw-copy delivery and separately baked font images",
            "Game.BindFont dispatch, font slots, atlas placement, and startup fallback",
            "bind-time downscaling, grayscale conversion, border generation, and effects",
            "TextFormat flags, wrapping, alignment, measurement, inline colors, and caching",
            "source-backed diagnostics and validation routing"
          ],
          "source_sha256": "c0bbc8e1361fa6fa3abb0108dd54fa0281d400589d196311a312b5a884e73f05",
          "status": "current"
        },
        {
          "locator": "/scope/support_note",
          "source": "The two runtime descriptor formats and client layout behavior are supported but still experimental; embedding projects own font choice, glyph coverage, typography, GUI slots, and visual acceptance.",
          "source_sha256": "fcfb17899dba5004f336bb7e70a7b3bd53956ee88621fa0551901cebc9527122",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=font-format.validation.bmfont-header/name",
          "source": "BMFont header, padding, and pages",
          "source_sha256": "c2b0d78eeeda11d17039d9a535d943c396b267845966908752dd9901f724819d",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=font-format.validation.bmfont-header/rationale",
          "source": "The runtime has explicit exceptions for all three incompatibilities.",
          "source_sha256": "7ed179752e708231b7e9a78d1e94c55447c89ac03c28948f2dad2e8596ff4e2a",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=font-format.validation.bmfont-header/requirement",
          "source": "Reject BMFont descriptors that are not binary v3, do not use 1/1/1/1 padding, or declare any page count other than one.",
          "source_sha256": "469f9f2afd409cc0d48f5bdb671ef0443cd8fcc4fbbcb25a54866d3aad0dc994",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=font-format.validation.descriptor-and-image-presence/name",
          "source": "Descriptor and image presence",
          "source_sha256": "7b60a2e10c50d15feeedd51f04d653f826e124d03ca2294ac09c313616ea3b54",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=font-format.validation.descriptor-and-image-presence/rationale",
          "source": "Pre-runtime validation must cover the omitted-Image case because the loader reaches image_name.back() before it can produce a diagnostic.",
          "source_sha256": "290b1628f7cbd81d621759b470fbeb8fefc657f684743922f55bd655606dec8a",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=font-format.validation.descriptor-and-image-presence/requirement",
          "source": "Fail the asset gate when the descriptor is missing, FOFNT omits Image, or the relative image cannot load as an atlas sprite. The runtime reports missing descriptor and image files, but currently has no explicit empty-Image guard.",
          "source_sha256": "d6325ace5203f3e4cfe1807ba76ec7d2b34e809c480a02d2a6a9402c083f32c1",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=font-format.validation.embedding-project/name",
          "source": "Embedding-project bake and visible check",
          "source_sha256": "21b41cc4347ff9504b6877471380ab6c28d76a79a80817827f2c5b8a9b29f337",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=font-format.validation.embedding-project/rationale",
          "source": "A raw-copy success cannot prove glyph coverage, atlas padding, typography, backend rendering, or GUI fit.",
          "source_sha256": "2806e88940365fe93f023597fc40e19ca5353da51060877add4e65f2afc62718",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=font-format.validation.embedding-project/requirement",
          "source": "Bake descriptor and image resources, run measurement tests for every bound scale, and visibly inspect regular, bordered, wrapped, aligned, localized, and missing-glyph cases.",
          "source_sha256": "0f0078606020f8b1979f92aca488df68c42e6969a47429eab6ac88f192299c68",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=font-format.validation.engine-tests/name",
          "source": "Engine regression gates",
          "source_sha256": "cd843cc7ada17d7b366d2d22ad53839bd5ad1986f4b8ae6ea2c98df7f99156c2",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=font-format.validation.engine-tests/rationale",
          "source": "Structural checks pin source-derived contracts while native tests cover resource and client construction paths.",
          "source_sha256": "b5dae4ea4b620fd78cb8ece6b81a6db047fb76149422a7b8b618776fc7f6166d",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=font-format.validation.engine-tests/requirement",
          "source": "Run the focused documentation test and the full generated Engine unit-test target after FontManager or font descriptor changes.",
          "source_sha256": "fa8ab60bf8e85d45f9467e81f5357aff79da8f5f2ae996ee21f7aaa4610e65eb",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=font-format.validation.fofnt-header/name",
          "source": "FOFNT header and UTF-8",
          "source_sha256": "4b0cf246aeb530be34756f0283e59f74eecdd8e6f5dd5c5409bb54dc20e1b571",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=font-format.validation.fofnt-header/rationale",
          "source": "These are hard parser failures rather than recoverable missing-glyph cases.",
          "source_sha256": "e76594783ab03da52b6c0031747d7610a9e7c44bbe15dfd6592c87ebd982ceae",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=font-format.validation.fofnt-header/requirement",
          "source": "Reject a FOFNT whose first key is not Version, whose version exceeds 2, or whose Letter line does not contain one valid UTF-8 codepoint.",
          "source_sha256": "ba9a98c04328056c09eadd6310ec33dfcf41db8871023db9defdd357a0a5e148",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=font-format.validation.generated-contract/name",
          "source": "Generated contract drift",
          "source_sha256": "2625bea9b9bc28288102c50aff48f4d3324178931b0f68431cb5a6d03fda6039",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=font-format.validation.generated-contract/rationale",
          "source": "The checked model makes silent source/documentation drift fail CI.",
          "source_sha256": "109f1fec6bd9794c118de08da98b90047a18a63439b97d0ad70ffa8771aca2de",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=font-format.validation.generated-contract/requirement",
          "source": "Regenerate and check the font-format model whenever parser keys, binary constants, font enums, binding dispatch, raw-copy defaults, scale, cache, or bundled descriptors change.",
          "source_sha256": "2474840edcf3fb40e850ef7efc05a970f7345c735450113837d2a4e21c7fc254",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=font-format.validation.scale-range/name",
          "source": "Scale range",
          "source_sha256": "e7e1b3ad44ba29534d232eed1c79a459cb384eb892795bf467a18fa0bdac0bcc",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=font-format.validation.scale-range/rationale",
          "source": "The Engine supports deterministic bind-time downscaling, not bitmap upscaling.",
          "source_sha256": "1c87bf5dd1ea9338738fae15340198e0b2828b9df982f0055fb0574abd45922c",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=font-format.validation.scale-range/requirement",
          "source": "Reject NaN, infinity, zero, negative values, and values greater than one before mutating the font table or atlas.",
          "source_sha256": "e11102f0dd92d15bbbbcc12db9f2eab0cfba2e2f144da07da00a659c2011594c",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=font-format.validation.signed-bmfont-metrics/name",
          "source": "Unsigned BMFont metric limitation",
          "source_sha256": "7ebe0ab56d7ee12efacd1093318ce858a2b6a5d5c0f7226481ff38f26ec84f8f",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=font-format.validation.signed-bmfont-metrics/rationale",
          "source": "Values such as -2 are currently reinterpreted as 65534 and can move rendered glyphs far outside their intended position; the runtime fix belongs in a separate code change.",
          "source_sha256": "b979d4df8a02863f12222f278012bba6c677a338bf4c24679668dd2a4502b2f3",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=font-format.validation.signed-bmfont-metrics/requirement",
          "source": "Track that the current loader reads xoffset, yoffset, and xadvance with GetLEUInt16 even though bundled binary fonts contain negative bearings.",
          "source_sha256": "3d66e13d231f5a82addd560733a0fb847a6ed44d870ca68d42a2886f2bdb8dcf",
          "status": "current"
        }
      ]
    },
    "helper-cli": {
      "source_model": "Docs/generated/helper-cli.json",
      "entry_count": 125,
      "current_count": 125,
      "missing_count": 0,
      "complete": true,
      "entries": [
        {
          "locator": "/description",
          "source": "Canonical ownership and publication boundary for executable FOnline helper-script command lines.",
          "source_sha256": "86c297656059f060d79a58f8a6860d2bf962c22555aa1ab5c41f9713227ba097",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.ai-control-client/commands/@id=helper-cli.ai-control-client.command.act/arguments/@id=helper-cli.ai-control-client.command.act.argument.append/description",
          "source": "Request project queue append semantics.",
          "source_sha256": "3c87f95f31d1c4dd0a8bb83bf82087efe33ed7e8e6ac9ca42518476632a12285",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.ai-control-client/commands/@id=helper-cli.ai-control-client.command.act/arguments/@id=helper-cli.ai-control-client.command.act.argument.aux_id/description",
          "source": "Optional auxiliary entity identifier.",
          "source_sha256": "1e8237dd7aead641543b6b75893b476f4f1740ed4e1f80991b307adf7bc731dd",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.ai-control-client/commands/@id=helper-cli.ai-control-client.command.act/arguments/@id=helper-cli.ai-control-client.command.act.argument.int_arg/description",
          "source": "Optional integer payload.",
          "source_sha256": "7c8f2a72a9b9a30a7ecd51a61ad10e3c7e8474ac0ffe51ef8e04efd08e217378",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.ai-control-client/commands/@id=helper-cli.ai-control-client.command.act/arguments/@id=helper-cli.ai-control-client.command.act.argument.item_id/description",
          "source": "Optional item entity identifier.",
          "source_sha256": "be720b16d40d29e2400d1f30a11b516415f05e02a06c65e52e3cc8f934bc3231",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.ai-control-client/commands/@id=helper-cli.ai-control-client.command.act/arguments/@id=helper-cli.ai-control-client.command.act.argument.screen_x/description",
          "source": "Optional screen X coordinate.",
          "source_sha256": "cfcdd9e9d76e984a5f18012c039dc0e4ebd1212e1ac891f2699268875b5325b0",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.ai-control-client/commands/@id=helper-cli.ai-control-client.command.act/arguments/@id=helper-cli.ai-control-client.command.act.argument.screen_y/description",
          "source": "Optional screen Y coordinate.",
          "source_sha256": "0799d31cfb18469a1a7b8480b266bc4f32c16c48de6c2f96eda26110d2bc739e",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.ai-control-client/commands/@id=helper-cli.ai-control-client.command.act/arguments/@id=helper-cli.ai-control-client.command.act.argument.string_arg/description",
          "source": "Optional string payload.",
          "source_sha256": "f5becc641fd66d82ce8bc7845ed0c1c6f47245fc1679198e0e6d5347aa708ef3",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.ai-control-client/commands/@id=helper-cli.ai-control-client.command.act/arguments/@id=helper-cli.ai-control-client.command.act.argument.target_id/description",
          "source": "Optional target entity identifier.",
          "source_sha256": "f307318b8d4c9eecfb1e3f8baeb42f049717f1504cbc0fc741f29cb9f6dabb21",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.ai-control-client/commands/@id=helper-cli.ai-control-client.command.act/arguments/@id=helper-cli.ai-control-client.command.act.argument.type/description",
          "source": "Project-defined command type.",
          "source_sha256": "f90a32fa96d43366e607a91facec4d4f3b175bea804f2454c37a4fb169e2c71a",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.ai-control-client/commands/@id=helper-cli.ai-control-client.command.act/arguments/@id=helper-cli.ai-control-client.command.act.argument.x/description",
          "source": "Optional project world X coordinate.",
          "source_sha256": "f995d572a5982ec24512c56fd4f9acbefd298274ad257fee60877efe1699e3a3",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.ai-control-client/commands/@id=helper-cli.ai-control-client.command.act/arguments/@id=helper-cli.ai-control-client.command.act.argument.y/description",
          "source": "Optional project world Y coordinate.",
          "source_sha256": "15bcbaef80d662d357eff8e93415b2e08410267e79bc5762b24f1fbd95896ad9",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.ai-control-client/commands/@id=helper-cli.ai-control-client.command.act/summary",
          "source": "Enqueue one project-defined command.",
          "source_sha256": "1ed4f22db667a119f1006b09b815e08133b74191e11a0a974f9892264af6fdb6",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.ai-control-client/commands/@id=helper-cli.ai-control-client.command.events/arguments/@id=helper-cli.ai-control-client.command.events.argument.after_seq/description",
          "source": "Exclusive event cursor.",
          "source_sha256": "35310e3c4fe79c1b2c22581892dd9b7c911cf3a0c4d51bcc387d14ccad1dd23a",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.ai-control-client/commands/@id=helper-cli.ai-control-client.command.events/arguments/@id=helper-cli.ai-control-client.command.events.argument.limit/description",
          "source": "Maximum events to return.",
          "source_sha256": "3cd79e44c929491c0dced34729204f695e3bda2433b20ea75b357ba8028eba53",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.ai-control-client/commands/@id=helper-cli.ai-control-client.command.events/summary",
          "source": "Read events after a sequence cursor.",
          "source_sha256": "7ce48257ca7e9bbb8d7c3ff566ece112196dc0c5404ee06bbd50d2283a35f63f",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.ai-control-client/commands/@id=helper-cli.ai-control-client.command.observe/summary",
          "source": "Read the latest project observation.",
          "source_sha256": "4523dc8486f85150e8adf3b136b88a9808ac808b5b1352782a1eef3e3ad94581",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.ai-control-client/commands/@id=helper-cli.ai-control-client.command.ping/summary",
          "source": "Check bridge liveness.",
          "source_sha256": "5b9bb51d9f6deece6596fb805775f11fc7ba81dff2f5cddb4fdd938415fca2ad",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.ai-control-client/commands/@id=helper-cli.ai-control-client.command.status/summary",
          "source": "Read bridge status and queue limits.",
          "source_sha256": "7698896eec46bbaf64ab19624178913d257498d92eb5e198f54149aba9cdcde3",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.ai-control-client/description",
          "source": "Call an Engine-compatible project AiControl bridge through the versioned NDJSON/TCP envelope without exposing shared tokens on the command line.",
          "source_sha256": "70d41fc854d9e2c67ef16dab6c548de58c9483cb023161148eaf4797b7238166",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.ai-control-client/global_arguments/@id=helper-cli.ai-control-client.argument.allow_remote/description",
          "source": "Permit a non-loopback endpoint; transport remains unencrypted.",
          "source_sha256": "d41ce04dbe73e13396945ae5e7e60a5164e0af0b0634f833838960c867320ce6",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.ai-control-client/global_arguments/@id=helper-cli.ai-control-client.argument.host/description",
          "source": "Bridge host.",
          "source_sha256": "a0ec88737b49428e936a7359a0a54d321d793accbc4c1d7b4e9acd51ee368d13",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.ai-control-client/global_arguments/@id=helper-cli.ai-control-client.argument.port/description",
          "source": "Bridge port.",
          "source_sha256": "3e926786ff592e90beba1c7e70df4fc5e27050cdc01bcc1780f72f91397d6afe",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.ai-control-client/global_arguments/@id=helper-cli.ai-control-client.argument.timeout/description",
          "source": "Socket timeout in seconds.",
          "source_sha256": "9380d77a0e3742471369315a58a641e5589ed9dc6679d44a0c328f163b1935a6",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.ai-control-client/global_arguments/@id=helper-cli.ai-control-client.argument.token_env/description",
          "source": "Environment variable containing the shared token.",
          "source_sha256": "9385bec220b74f54308dc68cb7b658977906b3cd08811a088d0883404233c995",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.ai-control-client/invocation_owner",
          "source": "embedding-project AI adapters, protocol smoke tests, and direct developer diagnostics",
          "source_sha256": "263fe0a3e68fc04367d8f396da22d155ab304f070e0d13adc1aefac5cb5fd72c",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.ai-control-client/name",
          "source": "AiControl protocol client",
          "source_sha256": "1fce5be80b11fa71633553785ff984f41e5258d21c1f3ebbc06e469e2b65c4be",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.android-device/commands/@id=helper-cli.android-device.command.connect/arguments/@id=helper-cli.android-device.command.connect.argument.device/description",
          "source": "Device IP[:port]; if omitted, auto-discovery and interactive selection are used",
          "source_sha256": "9f42ce387e09e93930a254405d53481bd9a716ec813c0372cfc549fa459f1469",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.android-device/commands/@id=helper-cli.android-device.command.connect/summary",
          "source": "Connect to an Android Wi-Fi device and cache the endpoint",
          "source_sha256": "b77691ca447ada2dd861cefba7a586969d7c44a773827340df088f52bf23e7d6",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.android-device/commands/@id=helper-cli.android-device.command.discover/summary",
          "source": "List Android Wi-Fi devices discovered through adb mdns",
          "source_sha256": "499143e7762ecd8cd51949e1e08c87499ce4f03f78d5bf4e52f0963e7360a71f",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.android-device/commands/@id=helper-cli.android-device.command.install/arguments/@id=helper-cli.android-device.command.install.argument.apk/description",
          "source": "APK path",
          "source_sha256": "4e0c70a1df3c13268544bf989561fc93f6b6e7ac367f27f65bc162aeeb140077",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.android-device/commands/@id=helper-cli.android-device.command.install/arguments/@id=helper-cli.android-device.command.install.argument.device/description",
          "source": "Device IP[:port]; if omitted, cached endpoint or discovery is used",
          "source_sha256": "ec2ce15fd1b5d61a9706c24828acda8fe338662a9a1fc15499e4a22ee29dae92",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.android-device/commands/@id=helper-cli.android-device.command.install/summary",
          "source": "Install an APK on the selected Android Wi-Fi device",
          "source_sha256": "b4465301b75ac6fbd748ef57f283f77a9b49d991ed41ac450bdbb42c30ed794d",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.android-device/commands/@id=helper-cli.android-device.command.launch-game/arguments/@id=helper-cli.android-device.command.launch-game.argument.activity/description",
          "source": "Fully qualified activity component, e.g. com.example.game/.FOnlineActivity",
          "source_sha256": "6a93b52c7508429949fac78dd394013824c3967f07ff778b377cefb24a1a08c7",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.android-device/commands/@id=helper-cli.android-device.command.launch-game/arguments/@id=helper-cli.android-device.command.launch-game.argument.device/description",
          "source": "Device IP[:port]; if omitted, cached endpoint or discovery is used",
          "source_sha256": "ec2ce15fd1b5d61a9706c24828acda8fe338662a9a1fc15499e4a22ee29dae92",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.android-device/commands/@id=helper-cli.android-device.command.launch-game/arguments/@id=helper-cli.android-device.command.launch-game.argument.server_host/description",
          "source": "Host IP or name for ClientNetwork.ServerHost; if omitted, auto-detected from the route to the selected device",
          "source_sha256": "49e37cf5c7a85efcc6cef5a3591f8d1ec5cb3df5875125a1f35a6e57de91e108",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.android-device/commands/@id=helper-cli.android-device.command.launch-game/summary",
          "source": "Launch the Android game activity and pass RemoteSceneLaunch server host override",
          "source_sha256": "7febcfa0f713ab5488987a1ff25649326347bee30bf05426bc02508834bd6d7a",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.android-device/commands/@id=helper-cli.android-device.command.launch/arguments/@id=helper-cli.android-device.command.launch.argument.activity/description",
          "source": "Fully qualified activity component, e.g. com.example.game/.FOnlineActivity",
          "source_sha256": "6a93b52c7508429949fac78dd394013824c3967f07ff778b377cefb24a1a08c7",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.android-device/commands/@id=helper-cli.android-device.command.launch/arguments/@id=helper-cli.android-device.command.launch.argument.device/description",
          "source": "Device IP[:port]; if omitted, cached endpoint or discovery is used",
          "source_sha256": "ec2ce15fd1b5d61a9706c24828acda8fe338662a9a1fc15499e4a22ee29dae92",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.android-device/commands/@id=helper-cli.android-device.command.launch/summary",
          "source": "Launch an Android activity on the selected device",
          "source_sha256": "d6481bb863bcc4639487c515eeb49811b9fcf4875dcaaf15022c9275ee420feb",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.android-device/commands/@id=helper-cli.android-device.command.logcat/arguments/@id=helper-cli.android-device.command.logcat.argument.device/description",
          "source": "Device IP[:port]; if omitted, cached endpoint or discovery is used",
          "source_sha256": "ec2ce15fd1b5d61a9706c24828acda8fe338662a9a1fc15499e4a22ee29dae92",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.android-device/commands/@id=helper-cli.android-device.command.logcat/summary",
          "source": "Stream logcat from the selected device",
          "source_sha256": "c34fe579ff8815550ee5b771f227e6be73e4f2075d7a884dc0d4b382d4009c3e",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.android-device/commands/@id=helper-cli.android-device.command.stop/arguments/@id=helper-cli.android-device.command.stop.argument.device/description",
          "source": "Device IP[:port]; if omitted, cached endpoint or discovery is used",
          "source_sha256": "ec2ce15fd1b5d61a9706c24828acda8fe338662a9a1fc15499e4a22ee29dae92",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.android-device/commands/@id=helper-cli.android-device.command.stop/arguments/@id=helper-cli.android-device.command.stop.argument.package_name/description",
          "source": "Android package name",
          "source_sha256": "b2435d15ef23feed93deb1f778db35b57a28affcfbc1f87a3ca70ca9958aff12",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.android-device/commands/@id=helper-cli.android-device.command.stop/summary",
          "source": "Force-stop an Android package on the selected device",
          "source_sha256": "ad32379501863dbe232d703f4dc1f68b7846f23abd261b55c4dde6aa9e2940b5",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.android-device/description",
          "source": "Discover, connect, install, launch, stop, and inspect Android Wi-Fi devices through adb.",
          "source_sha256": "4d696bc7f6d6f917de4f4eaca255f4eb92bcedb7e554d023f54746b08ba6499d",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.android-device/global_arguments/@id=helper-cli.android-device.argument.workspace_root/description",
          "source": "Workspace directory path containing android-sdk and android-debug",
          "source_sha256": "6dbb759a454d1f95f4ab8ddfecc6b3301087c0e6198c669bbdb4ab1a3c590d6f",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.android-device/invocation_owner",
          "source": "embedding-project Android tasks and direct developer use",
          "source_sha256": "cfc597db1e5e206ec839a6e0b116e1ce7c91b900401512f8479878a23411dbd7",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.android-device/name",
          "source": "Android device control",
          "source_sha256": "aea99625aefb8459c19638eccdce88b569ba0213285d812047b14b7a7bd5be44",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codecoverage/commands/@id=helper-cli.codecoverage.command.clean/arguments/@id=helper-cli.codecoverage.command.clean.argument.backend/description",
          "source": "coverage compiler/toolchain backend",
          "source_sha256": "aa1fb879cb02c5b3148f25e5eaba5e6e772934ec69f98ce2e3ecb63b9f54dcdb",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codecoverage/commands/@id=helper-cli.codecoverage.command.clean/arguments/@id=helper-cli.codecoverage.command.clean.argument.binary/description",
          "source": "instrumented test executable",
          "source_sha256": "523bdc4bb473ace817b1879650e7fcea2ae6acf38bc7d3af74a8786d368885cb",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codecoverage/commands/@id=helper-cli.codecoverage.command.clean/arguments/@id=helper-cli.codecoverage.command.clean.argument.binary_args/description",
          "source": "arguments passed to the test binary",
          "source_sha256": "d92c86dff50003d216a22a6b892ae8b87e296c261475576eaf962e8b50d10d6e",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codecoverage/commands/@id=helper-cli.codecoverage.command.clean/arguments/@id=helper-cli.codecoverage.command.clean.argument.build_dir/description",
          "source": "configured CMake build directory",
          "source_sha256": "013362827657e08f22bc8870e4c3b12d21581b205cbfc923889081d8feed664f",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codecoverage/commands/@id=helper-cli.codecoverage.command.clean/arguments/@id=helper-cli.codecoverage.command.clean.argument.objects/description",
          "source": "additional instrumented executable or shared library for LLVM reporting; repeatable",
          "source_sha256": "7f20d12e6c1e63d0ee223080c922c8125add0a8b8825163ec79d9d534bcc0d2b",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codecoverage/commands/@id=helper-cli.codecoverage.command.clean/arguments/@id=helper-cli.codecoverage.command.clean.argument.output_dir/description",
          "source": "coverage data and report output directory",
          "source_sha256": "e92181990d5b3f3cfd250411849c94143fb7ff5ee7a440dba2571e9e6be66aac",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codecoverage/commands/@id=helper-cli.codecoverage.command.clean/arguments/@id=helper-cli.codecoverage.command.clean.argument.workspace_root/description",
          "source": "embedding-project source directory",
          "source_sha256": "f600b2319fef950bd2ab0d1ba79835565785723b0cd5c864e8df85850b8301cf",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codecoverage/commands/@id=helper-cli.codecoverage.command.clean/description",
          "source": "Remove previously collected coverage data and reports",
          "source_sha256": "74998682dcd49c0bd7bf22841eb19703eaf27a6a7d707766943889fc22381b42",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codecoverage/commands/@id=helper-cli.codecoverage.command.clean/summary",
          "source": "Remove previously collected coverage data and reports",
          "source_sha256": "74998682dcd49c0bd7bf22841eb19703eaf27a6a7d707766943889fc22381b42",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codecoverage/commands/@id=helper-cli.codecoverage.command.full/arguments/@id=helper-cli.codecoverage.command.full.argument.backend/description",
          "source": "coverage compiler/toolchain backend",
          "source_sha256": "aa1fb879cb02c5b3148f25e5eaba5e6e772934ec69f98ce2e3ecb63b9f54dcdb",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codecoverage/commands/@id=helper-cli.codecoverage.command.full/arguments/@id=helper-cli.codecoverage.command.full.argument.binary/description",
          "source": "instrumented test executable",
          "source_sha256": "523bdc4bb473ace817b1879650e7fcea2ae6acf38bc7d3af74a8786d368885cb",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codecoverage/commands/@id=helper-cli.codecoverage.command.full/arguments/@id=helper-cli.codecoverage.command.full.argument.binary_args/description",
          "source": "arguments passed to the test binary",
          "source_sha256": "d92c86dff50003d216a22a6b892ae8b87e296c261475576eaf962e8b50d10d6e",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codecoverage/commands/@id=helper-cli.codecoverage.command.full/arguments/@id=helper-cli.codecoverage.command.full.argument.build_dir/description",
          "source": "configured CMake build directory",
          "source_sha256": "013362827657e08f22bc8870e4c3b12d21581b205cbfc923889081d8feed664f",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codecoverage/commands/@id=helper-cli.codecoverage.command.full/arguments/@id=helper-cli.codecoverage.command.full.argument.objects/description",
          "source": "additional instrumented executable or shared library for LLVM reporting; repeatable",
          "source_sha256": "7f20d12e6c1e63d0ee223080c922c8125add0a8b8825163ec79d9d534bcc0d2b",
          "status": "current",
          "translation_source_locator": "/helpers/@id=helper-cli.codecoverage/commands/@id=helper-cli.codecoverage.command.clean/arguments/@id=helper-cli.codecoverage.command.clean.argument.objects/description"
        },
        {
          "locator": "/helpers/@id=helper-cli.codecoverage/commands/@id=helper-cli.codecoverage.command.full/arguments/@id=helper-cli.codecoverage.command.full.argument.output_dir/description",
          "source": "coverage data and report output directory",
          "source_sha256": "e92181990d5b3f3cfd250411849c94143fb7ff5ee7a440dba2571e9e6be66aac",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codecoverage/commands/@id=helper-cli.codecoverage.command.full/arguments/@id=helper-cli.codecoverage.command.full.argument.workspace_root/description",
          "source": "embedding-project source directory",
          "source_sha256": "f600b2319fef950bd2ab0d1ba79835565785723b0cd5c864e8df85850b8301cf",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codecoverage/commands/@id=helper-cli.codecoverage.command.full/description",
          "source": "Clean, run the instrumented binary, and generate reports",
          "source_sha256": "aab03451f489a5d56729d1b581d909dfd9876e7a6bab11045f1b958d1fd42b07",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codecoverage/commands/@id=helper-cli.codecoverage.command.full/summary",
          "source": "Clean, run the instrumented binary, and generate reports",
          "source_sha256": "aab03451f489a5d56729d1b581d909dfd9876e7a6bab11045f1b958d1fd42b07",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codecoverage/commands/@id=helper-cli.codecoverage.command.report/arguments/@id=helper-cli.codecoverage.command.report.argument.backend/description",
          "source": "coverage compiler/toolchain backend",
          "source_sha256": "aa1fb879cb02c5b3148f25e5eaba5e6e772934ec69f98ce2e3ecb63b9f54dcdb",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codecoverage/commands/@id=helper-cli.codecoverage.command.report/arguments/@id=helper-cli.codecoverage.command.report.argument.binary/description",
          "source": "instrumented test executable",
          "source_sha256": "523bdc4bb473ace817b1879650e7fcea2ae6acf38bc7d3af74a8786d368885cb",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codecoverage/commands/@id=helper-cli.codecoverage.command.report/arguments/@id=helper-cli.codecoverage.command.report.argument.binary_args/description",
          "source": "arguments passed to the test binary",
          "source_sha256": "d92c86dff50003d216a22a6b892ae8b87e296c261475576eaf962e8b50d10d6e",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codecoverage/commands/@id=helper-cli.codecoverage.command.report/arguments/@id=helper-cli.codecoverage.command.report.argument.build_dir/description",
          "source": "configured CMake build directory",
          "source_sha256": "013362827657e08f22bc8870e4c3b12d21581b205cbfc923889081d8feed664f",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codecoverage/commands/@id=helper-cli.codecoverage.command.report/arguments/@id=helper-cli.codecoverage.command.report.argument.objects/description",
          "source": "additional instrumented executable or shared library for LLVM reporting; repeatable",
          "source_sha256": "7f20d12e6c1e63d0ee223080c922c8125add0a8b8825163ec79d9d534bcc0d2b",
          "status": "current",
          "translation_source_locator": "/helpers/@id=helper-cli.codecoverage/commands/@id=helper-cli.codecoverage.command.clean/arguments/@id=helper-cli.codecoverage.command.clean.argument.objects/description"
        },
        {
          "locator": "/helpers/@id=helper-cli.codecoverage/commands/@id=helper-cli.codecoverage.command.report/arguments/@id=helper-cli.codecoverage.command.report.argument.output_dir/description",
          "source": "coverage data and report output directory",
          "source_sha256": "e92181990d5b3f3cfd250411849c94143fb7ff5ee7a440dba2571e9e6be66aac",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codecoverage/commands/@id=helper-cli.codecoverage.command.report/arguments/@id=helper-cli.codecoverage.command.report.argument.workspace_root/description",
          "source": "embedding-project source directory",
          "source_sha256": "f600b2319fef950bd2ab0d1ba79835565785723b0cd5c864e8df85850b8301cf",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codecoverage/commands/@id=helper-cli.codecoverage.command.report/description",
          "source": "Generate text and HTML reports from collected coverage data",
          "source_sha256": "aa5b7e9b10620c2a379dc390b006e45ba5d7e2fd0f6de29460762440b7f02910",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codecoverage/commands/@id=helper-cli.codecoverage.command.report/summary",
          "source": "Generate text and HTML reports from collected coverage data",
          "source_sha256": "aa5b7e9b10620c2a379dc390b006e45ba5d7e2fd0f6de29460762440b7f02910",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codecoverage/commands/@id=helper-cli.codecoverage.command.run/arguments/@id=helper-cli.codecoverage.command.run.argument.backend/description",
          "source": "coverage compiler/toolchain backend",
          "source_sha256": "aa1fb879cb02c5b3148f25e5eaba5e6e772934ec69f98ce2e3ecb63b9f54dcdb",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codecoverage/commands/@id=helper-cli.codecoverage.command.run/arguments/@id=helper-cli.codecoverage.command.run.argument.binary/description",
          "source": "instrumented test executable",
          "source_sha256": "523bdc4bb473ace817b1879650e7fcea2ae6acf38bc7d3af74a8786d368885cb",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codecoverage/commands/@id=helper-cli.codecoverage.command.run/arguments/@id=helper-cli.codecoverage.command.run.argument.binary_args/description",
          "source": "arguments passed to the test binary",
          "source_sha256": "d92c86dff50003d216a22a6b892ae8b87e296c261475576eaf962e8b50d10d6e",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codecoverage/commands/@id=helper-cli.codecoverage.command.run/arguments/@id=helper-cli.codecoverage.command.run.argument.build_dir/description",
          "source": "configured CMake build directory",
          "source_sha256": "013362827657e08f22bc8870e4c3b12d21581b205cbfc923889081d8feed664f",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codecoverage/commands/@id=helper-cli.codecoverage.command.run/arguments/@id=helper-cli.codecoverage.command.run.argument.objects/description",
          "source": "additional instrumented executable or shared library for LLVM reporting; repeatable",
          "source_sha256": "7f20d12e6c1e63d0ee223080c922c8125add0a8b8825163ec79d9d534bcc0d2b",
          "status": "current",
          "translation_source_locator": "/helpers/@id=helper-cli.codecoverage/commands/@id=helper-cli.codecoverage.command.clean/arguments/@id=helper-cli.codecoverage.command.clean.argument.objects/description"
        },
        {
          "locator": "/helpers/@id=helper-cli.codecoverage/commands/@id=helper-cli.codecoverage.command.run/arguments/@id=helper-cli.codecoverage.command.run.argument.output_dir/description",
          "source": "coverage data and report output directory",
          "source_sha256": "e92181990d5b3f3cfd250411849c94143fb7ff5ee7a440dba2571e9e6be66aac",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codecoverage/commands/@id=helper-cli.codecoverage.command.run/arguments/@id=helper-cli.codecoverage.command.run.argument.workspace_root/description",
          "source": "embedding-project source directory",
          "source_sha256": "f600b2319fef950bd2ab0d1ba79835565785723b0cd5c864e8df85850b8301cf",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codecoverage/commands/@id=helper-cli.codecoverage.command.run/description",
          "source": "Run the instrumented test binary and collect coverage data",
          "source_sha256": "8a7d956d0f37759abab7f540df9f40aa6d71e95f6f6dcb79c9bc2ea9aaffab8b",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codecoverage/commands/@id=helper-cli.codecoverage.command.run/summary",
          "source": "Run the instrumented test binary and collect coverage data",
          "source_sha256": "8a7d956d0f37759abab7f540df9f40aa6d71e95f6f6dcb79c9bc2ea9aaffab8b",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codecoverage/description",
          "source": "Clean, collect, and report engine code coverage for generated test targets.",
          "source_sha256": "60aad502dcc6fcfa06d400cbe0618cb65bef9e5c6b7439e8086d2587dbc5191a",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codecoverage/invocation_owner",
          "source": "BuildTools/cmake/stages/Applications.cmake",
          "source_sha256": "7e50b49ce99d12956be862b13c12ed853b00bdfaa6d365a76b63f6a08ce8a6c5",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codecoverage/name",
          "source": "Code coverage",
          "source_sha256": "fe858ca3d2e33ec4e9d345b040f4572c13d0e04c4935dff0bde44d6c35fcb5a4",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codegen/description",
          "source": "Generate engine configuration, metadata registration, script bindings, and embedded-resource source files.",
          "source_sha256": "b168d702c894ecf577f1b692dfffcf07973385fc79bb25b0caceda5c8a8a0ccc",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codegen/global_arguments/@id=helper-cli.codegen.argument.buildhash/description",
          "source": "build hash",
          "source_sha256": "f9266c7f36c9ffabb805ff021eb8db871069d6b2c60da6f85321cb611eefb61a",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codegen/global_arguments/@id=helper-cli.codegen.argument.commonheader/description",
          "source": "path to common header file",
          "source_sha256": "336ee4d8f15f20325083215948399f767370111eedce01c490dde198d5cebc53",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codegen/global_arguments/@id=helper-cli.codegen.argument.devname/description",
          "source": "dev game name",
          "source_sha256": "810b9472dd7b76d24071d557746f1f120e84b1c67c6c384c8b453edbd346216a",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codegen/global_arguments/@id=helper-cli.codegen.argument.embedded/description",
          "source": "embedded buffer capacity",
          "source_sha256": "77aae67fb8bf00b73360039f4d726e93d9bcff183c1c04a1efe669a673344afa",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codegen/global_arguments/@id=helper-cli.codegen.argument.enginedefine/description",
          "source": "engine configuration define NAME=VALUE emitted as a macro into EngineConfig.gen.h",
          "source_sha256": "be376044d7568d83a339e74f2a332659c6a561c253b319049c7f33ca9fd1923c",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codegen/global_arguments/@id=helper-cli.codegen.argument.genoutput/description",
          "source": "generated code output dir",
          "source_sha256": "605a80a7cec4c00ae907bc28b7b487316b06dce0b471a20a06ba12f53985ae54",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codegen/global_arguments/@id=helper-cli.codegen.argument.maincfg/description",
          "source": "main config file",
          "source_sha256": "a7492cd2cde30f709453234d68bdd75f975b1be9f20790be292d8ed23e356d6a",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codegen/global_arguments/@id=helper-cli.codegen.argument.meta/description",
          "source": "path to script api metadata (///@ tags)",
          "source_sha256": "772b07002bc0dd20a373f7cb7363a84532cef98d78599a5ee9a98342b00468b1",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codegen/global_arguments/@id=helper-cli.codegen.argument.nicename/description",
          "source": "nice game name",
          "source_sha256": "edb6b7b6fbfb4a1a906e767d8809d17b23ad50c2a9c53f6397de6feeebacdd87",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codegen/global_arguments/@id=helper-cli.codegen.argument.verbose/description",
          "source": "verbose mode",
          "source_sha256": "2380211d64d301d3b749e0cf71a3cd0b0ec6e09e4870b54cb26234963206dba0",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codegen/invocation_owner",
          "source": "BuildTools/cmake/stages/Codegen.cmake",
          "source_sha256": "1c26af52cb53a4e7fa6c94d181152db19d790bee9f90a23e5af95a13b101c6f1",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.codegen/name",
          "source": "Code generation",
          "source_sha256": "b8baf7166150288cd864c84fe302b404bfcfe7e341f636e3a5860d43a48848c3",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.createmsi/description",
          "source": "Build an MSI installer from a package-generated WiX definition.",
          "source_sha256": "c8b73b5d47c4de51a99c5e1c7708999266d2550cd08756ca0b31e119b1f2955a",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.createmsi/global_arguments/@id=helper-cli.createmsi.argument.jsonfile/description",
          "source": "bare WiX package definition filename in the working directory",
          "source_sha256": "f8a42a53ee2cba34cec5d8ac5a39bcb532a7dd700eba6244838507800cfb6214",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.createmsi/global_arguments/@id=helper-cli.createmsi.argument.wix_dir/description",
          "source": "directory containing WiX tools; omit to find them on PATH",
          "source_sha256": "1c5781329dfc1b8b5eefdacdf2c88ae30725a57eca28897c31df1d9c784381d1",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.createmsi/invocation_owner",
          "source": "BuildTools/package.py Wix pack",
          "source_sha256": "de9c7bd2f5ff89806835337709946357d47e69deb5c29762d0df87de103e362b",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.createmsi/name",
          "source": "MSI creation",
          "source_sha256": "71a1ab05bd94edf78dd44316b4d064c8b17f3853d67808c2dd981ca54a674a12",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.gameplay-test-runner/description",
          "source": "Run ordered multi-process gameplay smoke scenarios with readiness, marker, deadline, cleanup, and JSON-report contracts.",
          "source_sha256": "44e2afeb32638ce404022d1d5ca1a1051d3857c078a41fa55c0dad8430816458",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.gameplay-test-runner/global_arguments/@id=helper-cli.gameplay-test-runner.argument.manifest/description",
          "source": "scenario manifest path",
          "source_sha256": "bc94325f698f792f414b2e15b5734240ee28b08c70e11c6ada156d7565b8c81e",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.gameplay-test-runner/global_arguments/@id=helper-cli.gameplay-test-runner.argument.report/description",
          "source": "optional JSON result path",
          "source_sha256": "a2e07e00808e39fe056145e0804341d60496f964eacf6f53e4e08e8488e78d0f",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.gameplay-test-runner/global_arguments/@id=helper-cli.gameplay-test-runner.argument.value/description",
          "source": "placeholder value; repeat as needed",
          "source_sha256": "9fd7747f0d9cb9cd053224111f6f48e3d2d8c0156f534daf8e2e534db3e85d0c",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.gameplay-test-runner/invocation_owner",
          "source": "embedding-project CMake targets and CI gameplay smoke jobs",
          "source_sha256": "d65fed8f6c6951132c6cfa984423e74d701d7e78219ebcabf2fd220027e59d28",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.gameplay-test-runner/name",
          "source": "Gameplay test runner",
          "source_sha256": "92c468bed64c0f33dc0584828524a7ce97127320f5003e8c82bee0db84d4a4cd",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.simple-web-server/description",
          "source": "Serve a packaged web client from a no-cache local HTTP server.",
          "source_sha256": "43d4e2c2f90c9e2ff611e5b3ce4d2cb7e488d40409fe995238369d223dc66eb1",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.simple-web-server/global_arguments/@id=helper-cli.simple-web-server.argument.fork/description",
          "source": "fork process",
          "source_sha256": "761233c6d346fc2a7b13b3f5eff83e6b17e9f45d5b5bcfaf0bf8e9f2ec245105",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.simple-web-server/global_arguments/@id=helper-cli.simple-web-server.argument.port/description",
          "source": "web server port",
          "source_sha256": "184abcdcada90c4dd09c8516480ad374a7e16cf79108eb122af4e78df8fe7d1f",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.simple-web-server/invocation_owner",
          "source": "BuildTools/package.py WebServer payload",
          "source_sha256": "69e827601bea7b3965f5b5f75d7c4a17f943f52e08e3660088e89331ff995ed1",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.simple-web-server/name",
          "source": "Local web server",
          "source_sha256": "6aeee2d3b4305ee7df0f667dcb6167995fc56f1d323f672a021ced54ecbbf258",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.windows7-import-check/description",
          "source": "Inspect linked PE files for Windows 7 import compatibility and optionally require the large-address flag on executables.",
          "source_sha256": "ba820e17a98ac121a047225dfce65e7b4649a494414fa69d5dfdaf4e227edc12",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.windows7-import-check/global_arguments/@id=helper-cli.windows7-import-check.argument.binaries/description",
          "source": "linked PE executable or DLL to inspect",
          "source_sha256": "23a5ed3d50ff93b7d50d3bf8289f1cc1b46cfdbc2e7e5594fc451c37281d344e",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.windows7-import-check/global_arguments/@id=helper-cli.windows7-import-check.argument.require_large_address_aware/description",
          "source": "Require the large-address flag on checked executables",
          "source_sha256": "743a32103531d7e2c4007292a72e971fa3007e94ef680bef0132b45622a5bc14",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.windows7-import-check/invocation_owner",
          "source": "embedding-project Windows 7 CI and release validation",
          "source_sha256": "cb63fae5a48970683824fef1dadf41b3686d09074c4623c181dc296055923bba",
          "status": "current"
        },
        {
          "locator": "/helpers/@id=helper-cli.windows7-import-check/name",
          "source": "Windows 7 import validation",
          "source_sha256": "a0947f0125341291cdf1f5a2465faf22a32fcc633a24394ef7e10ac30b4a1158",
          "status": "current"
        },
        {
          "locator": "/scope/excluded",
          "source": [
            "the separately modeled BuildTools/buildtools.py command line",
            "the separately modeled BuildTools/package.py command line and package declaration contract",
            "documentation generators, tests, library-only modules, shell scripts, and embedding-project tools"
          ],
          "source_sha256": "eb9dd61c0e01a36ef1601624e7279012fa9c13e7acbd3e2fc8c3858bece3086d",
          "status": "current"
        },
        {
          "locator": "/scope/included",
          "source": [
            "engine-owned Python helper scripts that expose a top-level create_parser() factory",
            "exact argparse usage, help output, arguments, subcommands, ownership, audience, and invocation context"
          ],
          "source_sha256": "aa05b99eb53c664ee36b0f530a0caf1d85c98c0d8190e28c4716bf15cfc2fd6a",
          "status": "current"
        },
        {
          "locator": "/scope/support_note",
          "source": "Helper command lines are revision-pinned implementation interfaces; automation must pin an engine revision.",
          "source_sha256": "99d7b560b0dedd294c2239e8f24faab77ee6b2d00926a811e0fb5785ed8ce48b",
          "status": "current"
        }
      ]
    },
    "image-format": {
      "source_model": "Docs/generated/image-format.json",
      "entry_count": 154,
      "current_count": 154,
      "missing_count": 0,
      "complete": true,
      "entries": [
        {
          "locator": "/baking_rules/@id=image-format.baking.container-header/name",
          "source": "Private container header",
          "source_sha256": "15828ee0a2adad0b427d0672c5d28ee50e944f8eae0a407549d1be058a603310",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=image-format.baking.container-header/rationale",
          "source": "The shared SpriteResource decoder validates the versioned framing before any client or tool consumes pixels or mesh data.",
          "source_sha256": "cd55c8da1483e6ca0e2c242224a3aeb191e3bf043a8b3a65e564d7213015e2dc",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=image-format.baking.container-header/requirement",
          "source": "The private baked stream starts with SpriteResource magic 43 and version 2, then uint16 frame count, uint16 whole animation ticks, and uint8 direction count, and ends with magic 43.",
          "source_sha256": "66c6f6bcba6b3936fe160f20e2c71925d603ab22f5dcea8c5367c94e06f3a2d2",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=image-format.baking.direction-record/name",
          "source": "Direction records",
          "source_sha256": "aad1483fd86b8db83fa5843daef621757a1dc2eb6e050807217fb3a2bfd201a1",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=image-format.baking.direction-record/rationale",
          "source": "Per-frame offsets preserve screen placement when polygon geometry changes the serialized canvas independently for each direction and animation frame.",
          "source_sha256": "d75cad3d2d87e274a255986d8f7912a8fd9dc7a715d8439e10914feadee64cee",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=image-format.baking.direction-record/requirement",
          "source": "Each of one or GameSettings::MAP_DIR_COUNT directions stores exactly the common frame count; the resolved logical root offset is serialized on every concrete frame after mesh padding and cropping.",
          "source_sha256": "acafc21ef8b4ed8acc628e8d58ffac267357afecc3eff92b6e08f7f48cf0bb41",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=image-format.baking.discovery/name",
          "source": "Scan and targeted modes",
          "source_sha256": "202871628f0d150d8e6da64758ea14bbb5c0d9e1aba80097e67cf0fbf88e245a",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=image-format.baking.discovery/rationale",
          "source": "Incremental project builds and one-file rebakes share one baker without treating a skipped target as failure.",
          "source_sha256": "e075b77c2dac0a80e9303dba007cca5811f1b70366192ee3c1b466ccd9e71322",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=image-format.baking.discovery/requirement",
          "source": "An empty target scans every registered extension; a targeted missing, unsupported, or BakeChecker-skipped path returns without output.",
          "source_sha256": "ae16357d2e6cc370ffff16f8398529c913b290164313175e5f0d132ca6cbb083",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=image-format.baking.error-aggregation/name",
          "source": "Per-file work and aggregate failure",
          "source_sha256": "83cc453961ead8bd8ccb14695757c753d0a429c97e902d7c0711154546f20d3c",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=image-format.baking.error-aggregation/rationale",
          "source": "A full scan reports all independently failing image resources in one run without silently succeeding.",
          "source_sha256": "bf894e72648845a6f5338fabb5e30d8ac6752e774d4c37384d62e11d8afd3b5f",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=image-format.baking.error-aggregation/requirement",
          "source": "Selected files bake asynchronously; each exception is logged, and any nonzero error count ends the Image baker with ImageBakerException.",
          "source_sha256": "c06e02b392db350e6e5c86ebf6e551e55a27359efc725f18ad9d73c3d48d2ea6",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=image-format.baking.extension-case/name",
          "source": "Case-insensitive extension dispatch",
          "source_sha256": "fd5fe2efd73716f13a492f3501a3072814605a8001d1d87355632ff37cd80908",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=image-format.baking.extension-case/rationale",
          "source": "Mixed-case extensions resolve to the same registered loader, though projects should still use canonical lowercase paths.",
          "source_sha256": "045591c9994e7dab8d60525f7ce153377cf47abf2dc205a80d5ad93cb6ede4a4",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=image-format.baking.extension-case/requirement",
          "source": "Source and runtime extension lookup uses get_file_extension(), which returns the extension without its dot and lowercases it.",
          "source_sha256": "668c48f29856216097e1f770ab0f69c5f26591566a595d53e02ffab8876a1b4b",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=image-format.baking.frame-record/name",
          "source": "Concrete and shared frame records",
          "source_sha256": "c9bdb4b16e771b15dfbed1e743d2720d21d384fca9d367a78f7e3eacb2c3ceb5",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=image-format.baking.frame-record/rationale",
          "source": "The record preserves logical placement and lighting coordinates while avoiding transparent texture rows and submitting indexed silhouettes; repeated frames still reuse the original payload.",
          "source_sha256": "2b885669028df267a5267e0f6676bf9f556d48b2f8cb2daea5f6a63dee7021c6",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=image-format.baking.frame-record/requirement",
          "source": "Each frame starts with a shared flag; a concrete record stores signed int16 draw offset, uint16 cropped dimensions, signed int16 NextX/NextY, exact RGBA8 pixels, a mesh kind, and mesh vertices and indices plus logical source size and origin when the kind is Mesh. A shared record stores one earlier-frame index.",
          "source_sha256": "46e56825d8040d4e22f7f44fe9a7a973a59c0665999fc6f05e395fe7a3fdbe3c",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=image-format.baking.output-path/name",
          "source": "Output path and NewName",
          "source_sha256": "4195209bcc495e5f7502ed5536ce27127d1158c59e9230e8ede16e43558ebe3a",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=image-format.baking.output-path/rationale",
          "source": "FRM/FRx critter normalization and split-direction aggregation require deterministic renamed resources.",
          "source_sha256": "234ec7db5fefc3956b911a4441829bc9a46f9e63c054da63c7af24d10a524b2c",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=image-format.baking.output-path/requirement",
          "source": "The baked resource normally keeps its source path; loaders may set NewName, which replaces that output path for legacy normalization.",
          "source_sha256": "e4ea183d0ee0f504a2b5d039a19ca4dd2a967f3e709d0a53937cc827cf7d1c0e",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=image-format.baking.source-options/name",
          "source": "Dollar option dispatch",
          "source_sha256": "fea95a1458db46bace4d539a42b2da6e49d752a0632693cc672e0d6b783550f9",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=image-format.baking.source-options/rationale",
          "source": "One source file can produce selected or transformed variants through FOFRM references without duplicate binaries.",
          "source_sha256": "e887fddaa8ec8a832251ba523fa02e2e524229d2321b3a6049e9a58c14a8baf6",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=image-format.baking.source-options/requirement",
          "source": "LoadAny strips text after '$' from the physical filename, passes that suffix to the selected loader, and resolves the source inside the same FileCollection.",
          "source_sha256": "e6f83a3c3929faacbc5a19171e839106f29014287da58616f10a2e2d1af9667a",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=image-format.baking.sprite-info-index/name",
          "source": "Per-pack SpriteInfo index",
          "source_sha256": "96e8b60e3a07b1cfdb3cba91c7a9fd9f1235ca74a4ec9b45ab224318531f348c",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=image-format.baking.sprite-info-index/rationale",
          "source": "Common EngineMetadata can answer 2D animation queries on server and client without decoding RGBA payloads; losing or introducing the aggregate index requires a full rebake.",
          "source_sha256": "b88e70a1f18eb3f5ae11459a1e219f5e538f2cb60b9c26f069815901ec4bf6d9",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=image-format.baking.sprite-info-index/requirement",
          "source": "Image baking maintains SpriteInfo/<PackName>.foinfo version 1 with duration, direction, frame bounds, offsets, and shared-frame metadata for every current image source in that resource pack.",
          "source_sha256": "29ada9cab6dca7847987de8e34c58114dc8c11e76a7d26eab0aa7fe675e8d5a2",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=image-format.baking.sprite-mesh/name",
          "source": "Optional polygonal sprite mesh",
          "source_sha256": "8d6e2a91fb3f52bb22bab45693fe197c18157de5684a6b54f744d56083661203",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=image-format.baking.sprite-mesh/rationale",
          "source": "The opt-in path reduces transparent overdraw and texture area without clipping visible pixels or changing gameplay placement; unsafe or unprofitable candidates remain quads and empty masks remain explicit empty geometry.",
          "source_sha256": "e6e0b96f3f592c09340af899d3b03b227f9cc4a2a134dc07240945b929c0d61e",
          "status": "current"
        },
        {
          "locator": "/baking_rules/@id=image-format.baking.sprite-mesh/requirement",
          "source": "Resolve and validate the complete SpriteMesh setting group for every image bake, including when SpriteMesh.Enabled is false: AlphaThreshold is 0..254, MaxTriangles is positive, and AreaSavingsWeight is finite and non-negative. When enabled, build deterministic alpha-thresholded candidates within that triangle budget, score saved original-frame area against submitted triangles, retain only validated coverage, crop selected mesh canvases to exact geometry bounds, and preserve the logical root through the serialized frame offset.",
          "source_sha256": "e5d32464097bc365fbfad0cfe420b2606e0aafe8d64f18fd899715ab17417316",
          "status": "current"
        },
        {
          "locator": "/description",
          "source": "Source-backed import, FOFRM composition, polygonal sprite meshing, baked-container, client sprite, atlas, cache, and validation contract for FOnline images.",
          "source_sha256": "527089e6b41fff1e8e13b6eec67f6fc178b792c38357b0b89a9f94c18b207a60",
          "status": "current"
        },
        {
          "locator": "/descriptor_fields/@id=image-format.field.count/name",
          "source": "count / Count",
          "source_sha256": "868429ff9cb482a6349b41bf244d1aabad71e2075b8e238fc4f083a6b541f0d9",
          "status": "current"
        },
        {
          "locator": "/descriptor_fields/@id=image-format.field.count/rationale",
          "source": "Each referenced source can itself contain multiple frames.",
          "source_sha256": "6862d4ed5f2dcf6135621a8f9229556679cf0cef41bfdf53f11385aeec958bc2",
          "status": "current"
        },
        {
          "locator": "/descriptor_fields/@id=image-format.field.count/requirement",
          "source": "Count is the number of descriptor references per direction, defaults to one, and must be positive; it is not necessarily the final flattened frame count.",
          "source_sha256": "b7f3fd1d4e047c28ce9d7fea3224e5d74ba747fbb939b51f82d60ef8120cc3a6",
          "status": "current"
        },
        {
          "locator": "/descriptor_fields/@id=image-format.field.direction-section/name",
          "source": "[dir_N] / [Dir_N]",
          "source_sha256": "c7ee0e86bd5aa8d7dbcb7c0784e1c001506ee03a2930b9085ffb797ecdae6fe1",
          "status": "current"
        },
        {
          "locator": "/descriptor_fields/@id=image-format.field.direction-section/rationale",
          "source": "SpriteSheet accepts exactly one direction or GameSettings::MAP_DIR_COUNT directions.",
          "source_sha256": "51428a93d2ee95f3c448c9cee02cd7deba349db09c995dd46758f0743ac4af1c",
          "status": "current"
        },
        {
          "locator": "/descriptor_fields/@id=image-format.field.direction-section/requirement",
          "source": "A descriptor is either single-direction or supplies every Engine map direction; partial direction sets and later gaps fail.",
          "source_sha256": "631a1de60cf6590a105786dae72104102c9fac679797ea2b992dc849ee613d8a",
          "status": "current"
        },
        {
          "locator": "/descriptor_fields/@id=image-format.field.effect/name",
          "source": "effect / Effect",
          "source_sha256": "9f45b2bd31acaa07b7cffed5dc7d4d26380d1126dc181e95c116362c031573cd",
          "status": "current"
        },
        {
          "locator": "/descriptor_fields/@id=image-format.field.effect/rationale",
          "source": "Authors must not treat a parsed-but-unused field as a rendering contract.",
          "source_sha256": "725bd4c195ba5cf3f7a579a8d2fb27b3174cf6034da0763e3ad822f0626be05a",
          "status": "current"
        },
        {
          "locator": "/descriptor_fields/@id=image-format.field.effect/requirement",
          "source": "The parser accepts effect/Effect into FrameCollection.EffectName for compatibility, but ImageBaker does not serialize or apply it and the stock runtime never selects an effect from this field.",
          "source_sha256": "7457330a33c1dc829a05f8d1ef5c60d038163f8a283f41d93260214b1052a8e2",
          "status": "current"
        },
        {
          "locator": "/descriptor_fields/@id=image-format.field.flattening/name",
          "source": "Nested sequence flattening",
          "source_sha256": "c97a1e284c2202ec07a90500aad059ebd438b1823b6997c9ca86c9930417f80e",
          "status": "current"
        },
        {
          "locator": "/descriptor_fields/@id=image-format.field.flattening/rationale",
          "source": "The merge loop copies child Main frames only and validates each later direction against collection.SequenceSize.",
          "source_sha256": "c1015411a271d408f52aa76095b6c7b0c9faa81ebee7885b8af185c9829273a4",
          "status": "current"
        },
        {
          "locator": "/descriptor_fields/@id=image-format.field.flattening/requirement",
          "source": "FOFRM appends the Main sequence of every referenced child; child direction sheets and child sequence offsets are not composed, and all authored parent directions must flatten to the same final frame count.",
          "source_sha256": "fc6c816cdc2b1a7c435a13e52f97f4697ae635fafc3a25a3c98ec501d82361e9",
          "status": "current"
        },
        {
          "locator": "/descriptor_fields/@id=image-format.field.fps/name",
          "source": "fps / Fps",
          "source_sha256": "1c016a4141cea372b702948466f319de7941330a4cc95967964aaae4a0d7c43c",
          "status": "current"
        },
        {
          "locator": "/descriptor_fields/@id=image-format.field.fps/rationale",
          "source": "The authored count and fps determine whole-sheet AnimTicks, while runtime playback divides that duration by flattened frame count.",
          "source_sha256": "793a4b1be5f73be8aea8acb6442432524ad3fc5b00801a26b7942adda7f4fed6",
          "status": "current"
        },
        {
          "locator": "/descriptor_fields/@id=image-format.field.fps/requirement",
          "source": "FOFRM reads lowercase fps first and then legacy Fps; zero creates a non-playing sheet, while production animation values must also keep whole duration per frame above zero.",
          "source_sha256": "6719638b81a3a60caa9970e5016c83100a615f706b37dd971dca1b368013ddae",
          "status": "current"
        },
        {
          "locator": "/descriptor_fields/@id=image-format.field.frame-delta/name",
          "source": "next_x_N / next_y_N and NextX_N / NextY_N",
          "source_sha256": "8a0b979b05b2b8352bed575147e8ea261a1fe212b35ce38fcac47994fa7bbd38",
          "status": "current"
        },
        {
          "locator": "/descriptor_fields/@id=image-format.field.frame-delta/rationale",
          "source": "This preserves source-format displacement while allowing authored composition corrections.",
          "source_sha256": "2ebb75043266759620293b3b9557aa56c27f923aa57b716dd77b838e60d755d6",
          "status": "current"
        },
        {
          "locator": "/descriptor_fields/@id=image-format.field.frame-delta/requirement",
          "source": "Descriptor frame deltas are added to every flattened child frame's imported NextX/NextY values.",
          "source_sha256": "1b95463c2f360e84b6722383341e158f0e55ab4ed88e9e7db0b9364dd30c3049",
          "status": "current"
        },
        {
          "locator": "/descriptor_fields/@id=image-format.field.frame-reference/name",
          "source": "frm / Frm and frm_N / Frm_N",
          "source_sha256": "9a1eaa203f5bcea36b7bfcf9f14285e653b3d2a5c2596149e20c8b95d7544503",
          "status": "current"
        },
        {
          "locator": "/descriptor_fields/@id=image-format.field.frame-reference/rationale",
          "source": "References are joined with the descriptor directory and then dispatched by the referenced extension.",
          "source_sha256": "c88d8c1ebf4da08327c60f782435d4181648de799659bdc37ab0f528c1232cc0",
          "status": "current"
        },
        {
          "locator": "/descriptor_fields/@id=image-format.field.frame-reference/requirement",
          "source": "Every authored descriptor slot resolves one relative image path; only slot zero also accepts the unnumbered frm/Frm alias.",
          "source_sha256": "a2f9c43126f23a8524b58ace0a781f63835fbb249bd806f1056a662f1fffce42",
          "status": "current"
        },
        {
          "locator": "/descriptor_fields/@id=image-format.field.sequence-offset/name",
          "source": "offs_x / offs_y and OffsetX / OffsetY",
          "source_sha256": "a3d152f353f5f28758601f1bc5cc4ec08d171473643fccd57b717b0c6cc25a43",
          "status": "current"
        },
        {
          "locator": "/descriptor_fields/@id=image-format.field.sequence-offset/rationale",
          "source": "The parser reuses the current ox/oy variables instead of resetting them for each direction.",
          "source_sha256": "f3435b2ac8e48c320594b69b1daf2e1c9d8f695d22b1f4a6d76b1ff6cc7282e5",
          "status": "current"
        },
        {
          "locator": "/descriptor_fields/@id=image-format.field.sequence-offset/requirement",
          "source": "Sequence offsets are signed and may be authored in the root or each direction section; explicitly set both values in every direction section because omitted values carry forward.",
          "source_sha256": "0c2b19cd39ad723482839d6102813234886548ee8d5ee7b73423ce971353b24b",
          "status": "current"
        },
        {
          "locator": "/descriptor_fields/@id=image-format.field.timing/name",
          "source": "FOFRM whole-sequence timing",
          "source_sha256": "ba6de1efc9632bc433b85ac26cd934de09cc19fede49c5e2d465c4f4d0c007a2",
          "status": "current"
        },
        {
          "locator": "/descriptor_fields/@id=image-format.field.timing/rationale",
          "source": "Nested animated references can therefore change effective frame cadence unless the author accounts for flattening.",
          "source_sha256": "d04078983e298e243aba3ff21fe1d0895b917df96af8b262eeac44f6d9752bd3",
          "status": "current"
        },
        {
          "locator": "/descriptor_fields/@id=image-format.field.timing/requirement",
          "source": "FOFRM computes whole-sequence duration from authored descriptor count, not from the flattened child-frame count; fps zero yields zero ticks.",
          "source_sha256": "4697084cb656acab14ac9901095a3302141573ddcab1619d304f12600217e8f0",
          "status": "current"
        },
        {
          "locator": "/filename_options/@id=image-format.option.art/rationale",
          "source": "Options are parsed from the source reference without changing the physical source filename.",
          "source_sha256": "fb6d8db8e8ebb0bf44d3d40f33c3c0fec4cd4e045a3efb4888671592619dd198",
          "status": "current"
        },
        {
          "locator": "/filename_options/@id=image-format.option.art/requirement",
          "source": "Digits select the last requested available palette, T derives alpha from maximum RGB while index zero remains transparent, H/V mirror, and F selects an inclusive ascending or descending clamped frame/range; letters are case-insensitive and unknown characters are ignored.",
          "source_sha256": "e1e9d09dc499898a4e0433731eab903a7d62ba69e5713a0f72925c55fa0e6099",
          "status": "current"
        },
        {
          "locator": "/filename_options/@id=image-format.option.bam/rationale",
          "source": "The source can expose many cycles while one resource path needs deterministic output.",
          "source_sha256": "f3a293ed56e988f1e6cc7498a3c702d97279de76fdbb1d5131809c85ac9bcfc8",
          "status": "current"
        },
        {
          "locator": "/filename_options/@id=image-format.option.bam/requirement",
          "source": "The integer before '-' selects a cycle and an optional non-negative integer after '-' selects one frame; out-of-range cycle/frame values fall back to zero, while no frame selector imports the whole cycle.",
          "source_sha256": "dcb6cd93bd405134f8d91991466942dcbf70c44da19b7bfce6a82a40c2fb8a2e",
          "status": "current"
        },
        {
          "locator": "/filename_options/@id=image-format.option.spr/rationale",
          "source": "The importer composes palette layers and animation selection before writing runtime RGBA frames.",
          "source_sha256": "da0db466def1b1e8e716daabdf6aeb312ef4f4a0ab3aa043dbef0279ddbecad8",
          "status": "current"
        },
        {
          "locator": "/filename_options/@id=image-format.option.spr/requirement",
          "source": "Zero or more bracket entries set clamped RGB offsets for part 0 other, 1 skin, 2 hair, or 3 armor; an out-of-range part applies the RGB values to all parts, and text after the last bracket selects a sequence case-insensitively (empty selects the first).",
          "source_sha256": "d5cc7fe0e1d48b3086456cdd4102c424dbafb88c79c01778de4392097f4e1e28",
          "status": "current"
        },
        {
          "locator": "/formats/@id=image-format.format.art/availability",
          "source": "baker and default runtime",
          "source_sha256": "d0508162f95ee5b1cb981d6b8cbe030b9c8268a213e40d503757ae7ab7f46815",
          "status": "current"
        },
        {
          "locator": "/formats/@id=image-format.format.art/rationale",
          "source": "ART direction numbering and frame metadata require format-specific remapping before runtime use.",
          "source_sha256": "f3c805e5d61c32e963a8887bcc9aac085b9893b994b2b109c7c6448d0919e581",
          "status": "current"
        },
        {
          "locator": "/formats/@id=image-format.format.art/requirement",
          "source": "ART imports raw or RLE frames, palettes, offsets, frame rate, static or eight-rotation data, and the palette/alpha/mirror/frame filename options.",
          "source_sha256": "55d0d492e2fd104dcf255e0ec7344ed50371cee655f3ffe6abbac7115d33293b",
          "status": "current"
        },
        {
          "locator": "/formats/@id=image-format.format.bam/availability",
          "source": "baker and default runtime",
          "source_sha256": "d0508162f95ee5b1cb981d6b8cbe030b9c8268a213e40d503757ae7ab7f46815",
          "status": "current"
        },
        {
          "locator": "/formats/@id=image-format.format.bam/rationale",
          "source": "Cycle/frame lookup and palette transparency are part of the legacy format rather than generic sprite behavior.",
          "source_sha256": "0ce598fe946609ac793e4b88340839f8fb50f1d1c76fae25aae87b841a9ac1ea",
          "status": "current"
        },
        {
          "locator": "/formats/@id=image-format.format.bam/requirement",
          "source": "BAM imports one selected cycle or one selected frame, supports packed BAMC input and RLE, derives frame deltas, and treats palette blue 255 as transparent.",
          "source_sha256": "dc9eb3bb0a43c815565e441b06e0e606b3ef5c0cf01ca69b537d21a5aea75257",
          "status": "current"
        },
        {
          "locator": "/formats/@id=image-format.format.fofrm/availability",
          "source": "baker and default runtime",
          "source_sha256": "d0508162f95ee5b1cb981d6b8cbe030b9c8268a213e40d503757ae7ab7f46815",
          "status": "current"
        },
        {
          "locator": "/formats/@id=image-format.format.fofrm/rationale",
          "source": "It is the only built-in text descriptor that can combine sources, add frame deltas, and produce a runtime-loadable .fofrm path.",
          "source_sha256": "401788487b746b699e24a614bcffda1259dd29305098df2e792872b7a7135873",
          "status": "current"
        },
        {
          "locator": "/formats/@id=image-format.format.fofrm/requirement",
          "source": "FOFRM composes relative image references into one static image, animation, or complete direction sheet and is the preferred authored wrapper for multi-frame or option-bearing sources.",
          "source_sha256": "7e2e03c4ff4aaeb19eb8b77b1fa3a473ab200768036e950859fcd82ae1969e80",
          "status": "current"
        },
        {
          "locator": "/formats/@id=image-format.format.fr0/availability",
          "source": "baker and default runtime",
          "source_sha256": "d0508162f95ee5b1cb981d6b8cbe030b9c8268a213e40d503757ae7ab7f46815",
          "status": "current"
        },
        {
          "locator": "/formats/@id=image-format.format.fr0/rationale",
          "source": "The split legacy representation must become one runtime direction sheet with a deterministic output path.",
          "source_sha256": "645d448b6bbaf85caf33101edcc403e7b0b7b07328d39731098d697678dd68db",
          "status": "current"
        },
        {
          "locator": "/formats/@id=image-format.format.fr0/requirement",
          "source": "A .fr0 entry discovers its numbered directional siblings, rejects a gap after direction loading begins, and renames baked output to lowercase .fofrm for critter paths or .frm otherwise.",
          "source_sha256": "6c1edb0d8fb94751a3157121f0d2018f3f8edc5625bfe18169d18780ded30898",
          "status": "current"
        },
        {
          "locator": "/formats/@id=image-format.format.frm/availability",
          "source": "baker and default runtime",
          "source_sha256": "d0508162f95ee5b1cb981d6b8cbe030b9c8268a213e40d503757ae7ab7f46815",
          "status": "current"
        },
        {
          "locator": "/formats/@id=image-format.format.frm/rationale",
          "source": "The importer preserves legacy frame geometry while normalizing pixels into the Engine RGBA container.",
          "source_sha256": "91d1697549dcc7f5cd359f72a8c2faa846773534e4374865c33213a0971718bb",
          "status": "current"
        },
        {
          "locator": "/formats/@id=image-format.format.frm/requirement",
          "source": "FRM imports big-endian frame timing, offsets, deltas, one or complete direction tables, optional same-basename .pal data, and animated default-palette indices.",
          "source_sha256": "549e81357fe99a5657778ae838c98f41d22909ebee64f8e07e5a1b74a7d4c6a4",
          "status": "current"
        },
        {
          "locator": "/formats/@id=image-format.format.mos/availability",
          "source": "baker and default runtime",
          "source_sha256": "d0508162f95ee5b1cb981d6b8cbe030b9c8268a213e40d503757ae7ab7f46815",
          "status": "current"
        },
        {
          "locator": "/formats/@id=image-format.format.mos/rationale",
          "source": "Packed and unpacked files share one extension and normalize to one RGBA frame.",
          "source_sha256": "bad093a6e5b51995234938b7b30fe9fcb14eff45015c6019f411485b3d4ac37d",
          "status": "current"
        },
        {
          "locator": "/formats/@id=image-format.format.mos/requirement",
          "source": "MOS imports one tiled palette image; MOSC is decompressed first, and palette color 0x00FF00 is made transparent.",
          "source_sha256": "cce5ef4ac4bddfe8935559b5a3220a00248c0368b6a8970a81ea5563c2ca4348",
          "status": "current"
        },
        {
          "locator": "/formats/@id=image-format.format.png/availability",
          "source": "baker and default runtime",
          "source_sha256": "d0508162f95ee5b1cb981d6b8cbe030b9c8268a213e40d503757ae7ab7f46815",
          "status": "current"
        },
        {
          "locator": "/formats/@id=image-format.format.png/rationale",
          "source": "PNG is the recommended lossless authored source for ordinary project images and transparent sprites.",
          "source_sha256": "a88df995083af6fa7de4ca16e90340158feb005a8c594e17544b00a2e9b1bc87",
          "status": "current"
        },
        {
          "locator": "/formats/@id=image-format.format.png/requirement",
          "source": "PNG is decoded through libpng, strips 16-bit channels to 8-bit, expands palette/low-bit grayscale/tRNS data, and fills missing alpha with 255 before emitting one RGBA frame.",
          "source_sha256": "091ccb19cdbd2a268edc480d4e0d50e7466d4b89b91f79e246f7a17c990b9faa",
          "status": "current"
        },
        {
          "locator": "/formats/@id=image-format.format.rix/availability",
          "source": "baker and default runtime",
          "source_sha256": "d0508162f95ee5b1cb981d6b8cbe030b9c8268a213e40d503757ae7ab7f46815",
          "status": "current"
        },
        {
          "locator": "/formats/@id=image-format.format.rix/rationale",
          "source": "The format has no authored animation or direction metadata.",
          "source_sha256": "3debd0e8a92ce59d529732e498370897812ea2cd72a65ea1396b0e29e9659178",
          "status": "current"
        },
        {
          "locator": "/formats/@id=image-format.format.rix/requirement",
          "source": "RIX imports one opaque indexed image using its embedded palette and emits one RGBA frame.",
          "source_sha256": "da3f56810ba726cd6a6fed07301a20744b8f4d3b6aade410506b08618523f952",
          "status": "current"
        },
        {
          "locator": "/formats/@id=image-format.format.spr/availability",
          "source": "baker only by default; wrap through FOFRM for the stock runtime",
          "source_sha256": "367de840079af0a89ca56cae612fad39443db9f34063521e0751239a6b7006d0",
          "status": "current"
        },
        {
          "locator": "/formats/@id=image-format.format.spr/rationale",
          "source": "Directly baked .spr output cannot be loaded by the default client; a .fofrm wrapper gives the output a registered extension without changing imported pixels.",
          "source_sha256": "64e1c261ea53196e03c1e4b95c942cc349ff52edc286d999d0a7e3cf99aa5c25",
          "status": "current"
        },
        {
          "locator": "/formats/@id=image-format.format.spr/requirement",
          "source": "SPR imports named sequences, layered parts, direction remapping, color offsets, repeated-frame sharing, and fixed 10 fps, but the stock DefaultSpriteFactory does not register the .spr extension.",
          "source_sha256": "b1a568186d9265b2f061ad824501e0a0a85f346052c90e07b92f8e3db71e623a",
          "status": "current"
        },
        {
          "locator": "/formats/@id=image-format.format.tga/availability",
          "source": "baker and default runtime",
          "source_sha256": "d0508162f95ee5b1cb981d6b8cbe030b9c8268a213e40d503757ae7ab7f46815",
          "status": "current"
        },
        {
          "locator": "/formats/@id=image-format.format.tga/rationale",
          "source": "Indexed, grayscale, other bit depths, image IDs, and alternate-origin assumptions are outside the implemented production subset.",
          "source_sha256": "52a157276fb40af1827772df23676b70aa530c9725b0805101841fd17c5da2a5",
          "status": "current"
        },
        {
          "locator": "/formats/@id=image-format.format.tga/requirement",
          "source": "TGA supports only raw type 2 or RLE type 10 TrueColor input at 24 or 32 bpp, converts BGR(A) to RGBA, and flips rows bottom-to-top.",
          "source_sha256": "3a8657ff2d4c7f303d5cf4e49eb5365fbfca348adf21b1ffa23f260d3a399b00",
          "status": "current"
        },
        {
          "locator": "/formats/@id=image-format.format.til/availability",
          "source": "baker and default runtime",
          "source_sha256": "d0508162f95ee5b1cb981d6b8cbe030b9c8268a213e40d503757ae7ab7f46815",
          "status": "current"
        },
        {
          "locator": "/formats/@id=image-format.format.til/rationale",
          "source": "The loader supplies timing because the legacy container exposes a frame list rather than an Engine animation descriptor.",
          "source_sha256": "ff9cbc59d5a9209b445a5c59ceafedaaae61409c788d350b3d58b13b283947bb",
          "status": "current"
        },
        {
          "locator": "/formats/@id=image-format.format.til/requirement",
          "source": "TIL imports its nested ZAR frames as a 10 fps single-direction sequence.",
          "source_sha256": "50d978652deb9bfcab2eedd4d92f769390a54679960d1eef2beeb09cd506e511",
          "status": "current"
        },
        {
          "locator": "/formats/@id=image-format.format.zar/availability",
          "source": "baker and default runtime",
          "source_sha256": "d0508162f95ee5b1cb981d6b8cbe030b9c8268a213e40d503757ae7ab7f46815",
          "status": "current"
        },
        {
          "locator": "/formats/@id=image-format.format.zar/rationale",
          "source": "ZAR is a single-image legacy container used directly and inside TIL.",
          "source_sha256": "9f85be0bc18feca012f90e8fc73f562b10071a28b9c776b67fc38960417f1452",
          "status": "current"
        },
        {
          "locator": "/formats/@id=image-format.format.zar/requirement",
          "source": "ZAR imports one palette-backed raw or RLE image with alpha into one RGBA frame.",
          "source_sha256": "52c98bcbeec4391e1fd4eae2cd87cbfccae7cdd7b8d0c5b9033875dd36616e05",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=image-format.runtime.atlas/name",
          "source": "Atlas upload, polygon draw, border, and hit mask",
          "source_sha256": "ff7a82e8ab9b70c6197ac72248007bea78171e0dec40d64610836eefea8ab266",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=image-format.runtime.atlas/rationale",
          "source": "Mesh geometry changes fill and submission cost without changing atlas pixels, picking, logical scaling, or specialized rectangular rendering contracts.",
          "source_sha256": "2f9b362c6c9908b8dd43f9cc1a91c0a480ad392b23320d57da86801948591251",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=image-format.runtime.atlas/requirement",
          "source": "Positive-size RGBA frames are placed in the requested AtlasType, uploaded with duplicated one-pixel filtering edges, and converted to a SpriteHitValue hit mask. Ordinary full-image draws submit the baked indexed silhouette when present; crops, tiled and padded draws, fonts, blits, model sprites, and particles retain rectangular paths.",
          "source_sha256": "4f20ed48d641fb27be24096214620f79399f314d78e25b07af507cf2ea543510",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=image-format.runtime.cache/name",
          "source": "Copyable sprite cache identity",
          "source_sha256": "df1a40e24e105ba90ae7b12a8797d8978ecb55c75636a5abf2cbe5fd8abae7e9",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=image-format.runtime.cache/rationale",
          "source": "Independent animation state must not mutate the cached prototype, and different atlas classes cannot share placement blindly.",
          "source_sha256": "383d406e6385c40f3bc4a93ca68c25b85ed61bc0ef1543585464350218ff93bd",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=image-format.runtime.cache/requirement",
          "source": "Copyable sprites are cached by hashed path plus AtlasType and each load returns MakeCopy, so the same source path may have separate atlas-backed cache entries.",
          "source_sha256": "938f80f0397bdeb8ec97e25ea991defb7a17502e335bb891109f11070a825bc0",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=image-format.runtime.decode/name",
          "source": "Baked-container decoding",
          "source_sha256": "18293e09282a72becf15f8649d1ab208653aa83adce644eacddc72443c573c41",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=image-format.runtime.decode/rationale",
          "source": "Source decoders are baker-only and are not deployed as runtime image parsers.",
          "source_sha256": "acdd7109d56d4428a1e86f0d0e0deef2f6236157ab85d69e4e33b7bd369c78f2",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=image-format.runtime.decode/requirement",
          "source": "The stock runtime reads only the baked container through ReadSpriteResource, validates magic, version, frame and direction counts, complete frame/mesh records, footer, and trailing data, then constructs either AtlasSprite or SpriteSheet.",
          "source_sha256": "a94ee6e2be681470d47e73d6e07958017967588e890894bd5af28fe4710e9230",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=image-format.runtime.factory-coverage/name",
          "source": "Default factory extension boundary",
          "source_sha256": "596e76a184c5ddf3ba2b8e2dfb15368aec39e8dc7c7bb310ae2dfacb536c31d9",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=image-format.runtime.factory-coverage/rationale",
          "source": "Bake support and stock runtime path support are separate extension registries.",
          "source_sha256": "74ba7cdb3724e04c12276dff81a856db2cd6de6de451b175748efc2da2346ca3",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=image-format.runtime.factory-coverage/requirement",
          "source": "DefaultSpriteFactory registers every built-in ImageBaker extension except spr; direct .spr paths need a custom factory or, normally, an authored .fofrm wrapper.",
          "source_sha256": "f610b8628252397453b850f203e132e165a1db52a4dbc9f1626f24b30e47cf6b",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=image-format.runtime.frame-offset/name",
          "source": "Per-frame sprite offsets",
          "source_sha256": "0c8c20d8a49dafdf7bd78632341441ae0da406808f5eb862f19db10950c4c525",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=image-format.runtime.frame-offset/rationale",
          "source": "Visual root-motion displacement must remain separate from sequence placement and authoritative world movement.",
          "source_sha256": "356efe7b3304eba7375b2540801a6b8f29d4969a326d4f41d82340b533a00b41",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=image-format.runtime.frame-offset/requirement",
          "source": "Concrete and shared SpriteSheet frames retain imported NextX/NextY in _sprOffset; ordinary drawing uses the selected AtlasSprite offset, while locomotion projection consumes the separate frame-offset array.",
          "source_sha256": "148d70afbc49747c4373709154fe1ec609a47b35bae42e8858f518d9023fd1df",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=image-format.runtime.missing-cache/name",
          "source": "Missing-path memoization",
          "source_sha256": "8aa6f76a704bd4d34fc50dc88c278348c2d4921a1a77b8f308c2d26c864ad07e",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=image-format.runtime.missing-cache/rationale",
          "source": "Adding a previously missing resource during a live session normally requires recreating the manager or restarting the client before retrying the same path.",
          "source_sha256": "0dad0addadb6ef2bae9af0b8039a9d280de6fb2a3df1570cbff9968965a263f1",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=image-format.runtime.missing-cache/requirement",
          "source": "Missing paths, absent extensions, unknown factories, and factory load failures are memoized by path in _nonFoundSprites; CleanupSpriteCache does not clear that set.",
          "source_sha256": "5104928ca7a203f6ea8c2afae9eea8d0bc7c1f77de8fd8d17f962d7b1a18a91d",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=image-format.runtime.sprite-sheet/name",
          "source": "Direction and playback state",
          "source_sha256": "94e6700732c647b41166d89dfb092b0d69d3cd0660b61a295a85bbbaa9578456",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=image-format.runtime.sprite-sheet/rationale",
          "source": "Animation state is client presentation state and each direction owns a parallel frame sheet.",
          "source_sha256": "bdf8a2f9706c8d1632608629813811fbb8f0e202c52a8b191f6ef35f6187392f",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=image-format.runtime.sprite-sheet/requirement",
          "source": "SpriteSheet accepts one or the full map direction count, supports direction selection, random prewarm, normalized time, loop/reverse playback, and treats one frame or zero whole ticks as non-playing.",
          "source_sha256": "2a97f2c632a4b917f132b64cf42d09a06c3c3d7126bf6d8fd46c7ce6a36d956b",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=image-format.runtime.static-frame/name",
          "source": "Single-frame behavior",
          "source_sha256": "1fa5917048511413fe454b412e646441428b6214cd80c08859786156742979af",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=image-format.runtime.static-frame/rationale",
          "source": "NextX/NextY matter only when a sheet consumer selects and interprets animation frames.",
          "source_sha256": "e39eb055d092e58bddc604d674efd263dd0510b47b6f2748ea61d04af5ec85c2",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=image-format.runtime.static-frame/requirement",
          "source": "A one-frame one-direction resource becomes AtlasSprite and applies the resolved concrete-frame draw offset; serialized NextX/NextY remains metadata because there is no SpriteSheet frame-displacement surface.",
          "source_sha256": "406c756aad885102edef34953032d951ad98e0cd1d1a0ed3985429e906a3101e",
          "status": "current"
        },
        {
          "locator": "/scope/excluded",
          "source": [
            "project image catalogs, resource-pack precedence, asset licenses, art direction, quality targets, and acceptance baselines",
            "authoritative movement and the detailed walk/run projection algorithm documented by the Sprite Root Motion guide",
            "particle authoring, model textures, shader effects, GUI layout, fonts, video, and audio formats",
            "a public compatibility promise for the private baked byte stream or unsupported third-party image formats"
          ],
          "source_sha256": "e2b603e2ad3654c86fd0f99eb002eb5aaca74e18190d943b8220ec4d5eb58803",
          "status": "current"
        },
        {
          "locator": "/scope/included",
          "source": [
            "the twelve built-in ImageBaker source extensions and their current import behavior",
            "FOFRM fields, aliases, direction sections, nested references, filename options, flattening, offsets, and timing",
            "the versioned private RGBA/mesh frame container, per-pack SpriteInfo index, and output-renaming behavior",
            "default client sprite-factory coverage, SpriteSheet playback, polygon or quad atlas drawing, hit masks, caches, and diagnostics",
            "focused source-anchor, generator, native-test, project-bake, and visible-validation boundaries"
          ],
          "source_sha256": "390bd99b585f0a845d79e24567fb5e8b7519088de7af97cb2ecb9af5eb6be966",
          "status": "current"
        },
        {
          "locator": "/scope/support_note",
          "source": "The contract is generated for a pinned Engine revision. Projects own asset catalogs, source licensing, visual style, compression policy, resource-pack precedence, animation substitutions, movement tuning, and visible acceptance.",
          "source_sha256": "1f3e680d1e9bfb2a7a7bbcacd930860ccb8822f46f471d2617c7139a4cf009ee",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=image-format.validation.fofrm-count/name",
          "source": "Positive FOFRM count",
          "source_sha256": "a9e611e7cabf22b1b475350aa3abeabf024c51d3bfe51e1e4324647cc6101c10",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=image-format.validation.fofrm-count/rationale",
          "source": "A descriptor must resolve at least one source reference before a runtime frame table can exist.",
          "source_sha256": "4a48f6d200b9dc7349c2bbc23cfa8bd78e95dd95525a43967d04d7f89516ce4c",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=image-format.validation.fofrm-count/requirement",
          "source": "Reject a descriptor whose count/Count is zero or negative.",
          "source_sha256": "8d143ac810bd24229e786abba70f933e2e9a7ae1b0adcc2bfe8d5c7a9df602f0",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=image-format.validation.fofrm-directions/name",
          "source": "Complete equal-size directions",
          "source_sha256": "9f738ff240be0d3176117e3416ec76fb80900cfff7b9d8c8c4b99f3b924935c4",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=image-format.validation.fofrm-directions/rationale",
          "source": "Every direction sheet shares one frame-count and timing header.",
          "source_sha256": "992d122158c2bf374e68dae21c14f8e7d62eaab8a46557b8930a646f8a4bae20",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=image-format.validation.fofrm-directions/requirement",
          "source": "Reject partial direction sets and any later direction whose flattened frame count differs from direction zero.",
          "source_sha256": "cb35fc2ccea7f48f10298d2ec089080bf2054977e9a0eb41d14a61ffa81eebbf",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=image-format.validation.fofrm-nested-shared/name",
          "source": "No nested shared frame records",
          "source_sha256": "2da26c62e7f15b6568ae5463d63d7e86cd80dbdd7f77625fc7c82788ade49461",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=image-format.validation.fofrm-nested-shared/rationale",
          "source": "The flattening implementation copies concrete child pixels and does not rebase child shared indices.",
          "source_sha256": "678eadfba120dec5c1fb65b1b7da69a0c98dc0e9416be6e5fb8fcbae66c379ba",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=image-format.validation.fofrm-nested-shared/requirement",
          "source": "Reject a FOFRM reference whose child Main frame is already a shared record.",
          "source_sha256": "d47250900b1db9e4fe89a096b4b0c3421d41115933e0b89d0e7ee7e19729e753",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=image-format.validation.malformed-inputs/name",
          "source": "Malformed decoder inputs",
          "source_sha256": "121f04be4f28a501386062884641ef548ca758187718f4c4282a3f7fb7c28c32",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=image-format.validation.malformed-inputs/rationale",
          "source": "Legacy binary parsers must fail deterministically instead of emitting truncated runtime containers.",
          "source_sha256": "47659284fa93c0037a8701fb0d643a6c2f017b161e9f8c91fde829bbd80e4027",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=image-format.validation.malformed-inputs/requirement",
          "source": "Keep focused failure coverage for corrupt PNG, TGA, FRM/FRx/RIX/ART/ZAR/TIL/MOS/BAM, SPR, and nested FOFRM inputs.",
          "source_sha256": "be3068e4a6a4b9c107cda8a74430b255d13ef3fc856031f68d64ab7f792fb62b",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=image-format.validation.playback-timing/name",
          "source": "Nonzero per-frame duration",
          "source_sha256": "cca9878dbe64744b05d93b1a17af314ec12ddbd667f2124655bd7e5dc19cb402",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=image-format.validation.playback-timing/rationale",
          "source": "SpriteSheet::Update divides elapsed time by integer ticks_per_frame, while Play only guards one frame or zero whole ticks.",
          "source_sha256": "6d9c14f2bc460bc9b1e3d154af954dd71b6f71f31254980a716e59f1660a8c5f",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=image-format.validation.playback-timing/requirement",
          "source": "For a playing multi-frame sheet, author timing so whole AnimTicks divided by flattened frame count is at least one millisecond; fps zero intentionally disables playback.",
          "source_sha256": "cc1428430ffb06f7dac771bf8071f94efc1edb707730296bfbfaf5c2bbbd5a91",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=image-format.validation.project-visible/name",
          "source": "Embedding-project visual gate",
          "source_sha256": "b1f80699946a80c523bc4860f72fea77700345747ea79d25fed48ac552f14c3a",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=image-format.validation.project-visible/rationale",
          "source": "Parser and container tests cannot prove art framing, filtering, gait, or project resource-pack selection.",
          "source_sha256": "28081f39441d6a2f7468ac8c084721d235c7fa7a67ba5387d07d265f89b4d2a2",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=image-format.validation.project-visible/requirement",
          "source": "After native and documentation checks, rebake the embedding project and inspect changed dimensions, alpha edges, mirrors, directions, cadence, offsets, hit masks, and relevant client profiles in a visible scene.",
          "source_sha256": "d2585e7280dc2524057b21367667b0fde77a7fcac257dcccb9f3ef8766022507",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=image-format.validation.rgba-payload/name",
          "source": "Exact RGBA payload size",
          "source_sha256": "990350a97902960b6b0399be20536c393de363cff4cf7516c6c06aabfc38768e",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=image-format.validation.rgba-payload/rationale",
          "source": "The client reads a fixed RGBA8 byte count without a separate payload-length field.",
          "source_sha256": "b3b22941fb1834931c7896684c97fd84f7f97baef2aa9c2f2000006b15e45e75",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=image-format.validation.rgba-payload/requirement",
          "source": "Reject every concrete frame whose byte payload is not exactly width times height times four.",
          "source_sha256": "6fcf705309414ee7a8493221d055674888a7118150d4cd9954b2baef1dcb301c",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=image-format.validation.runtime-container/name",
          "source": "Runtime container guards",
          "source_sha256": "42af30aabec7dd48fd8084c2ca9d466dcd43397ec69bfcc2dcd6d0f6fbdfa57a",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=image-format.validation.runtime-container/rationale",
          "source": "Corrupt baked bytes must not reach atlas allocation or animation updates.",
          "source_sha256": "404861498310411da89966db2ca97b48aeda2b24f4b5bc084fdf3a846477174b",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=image-format.validation.runtime-container/requirement",
          "source": "Reject invalid header/footer magic, zero frames, zero directions, unsupported direction counts, invalid single-frame shared records, and invalid shared-frame indices.",
          "source_sha256": "9b896c33c729ec11638d50de6ec3acd7714fcd4b0b76d7f036bbb3e9b281bf1c",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=image-format.validation.tga-subset/name",
          "source": "Supported TGA subset",
          "source_sha256": "5943269b6c9509089b294f7943a2ca2f28dda39ac0d9ca3e1a49dac3773d815c",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=image-format.validation.tga-subset/rationale",
          "source": "The loader consumes the fixed header directly, then always flips rows and does not branch on descriptor origin.",
          "source_sha256": "20953f2c75f9f927308ffff61ff2e0e3350c5254f42fe53358a1a25babd0d493",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=image-format.validation.tga-subset/requirement",
          "source": "Use no image ID, bottom-left orientation, TrueColor type 2 or 10, and 24 or 32 bpp; indexed/grayscale/other inputs are rejected or outside the implemented orientation assumptions.",
          "source_sha256": "9ce469e38d6205f06c9b6b23785f44c8a071925ed5c1e1db273257e79f1684c8",
          "status": "current"
        }
      ]
    },
    "map-format": {
      "source_model": "Docs/generated/map-format.json",
      "entry_count": 209,
      "current_count": 209,
      "missing_count": 0,
      "complete": true,
      "entries": [
        {
          "locator": "/description",
          "source": "Source-backed authoring, baking, and runtime contract for FOnline map containers.",
          "source_sha256": "0b58c05951988512f591d2abf6722b4b4c3518b0563b99bc4303eef58efaf96d",
          "status": "current"
        },
        {
          "locator": "/directives/@id=map-format.directive.entity-id/applies_to",
          "source": "Critter, Item",
          "source_sha256": "55b3af12db25dbfc226e3dbd5caabbc9b5c9efe06dae9732268da69a419b8747",
          "status": "current"
        },
        {
          "locator": "/directives/@id=map-format.directive.entity-id/default",
          "source": "next available positive id",
          "source_sha256": "77d23c793205359e4675cb88c3cc105f3230473cf1899e37ec3b2b4c3e95acbe",
          "status": "current"
        },
        {
          "locator": "/directives/@id=map-format.directive.entity-id/description",
          "source": "Provides a shared placement identity used by ownership references. Missing, non-positive, or duplicate ids are repaired during load; authored maps should not rely on repair.",
          "source_sha256": "51f5f3c0095e30e24bf93b59ae8db564767e77a3dd0b7b28a83f88e7e19964c4",
          "status": "current"
        },
        {
          "locator": "/directives/@id=map-format.directive.entity-proto/applies_to",
          "source": "Critter, Item",
          "source_sha256": "55b3af12db25dbfc226e3dbd5caabbc9b5c9efe06dae9732268da69a419b8747",
          "status": "current"
        },
        {
          "locator": "/directives/@id=map-format.directive.entity-proto/default",
          "source": "none",
          "source_sha256": "140bedbf9c3f6d56a9846d2ba7088798683f4da0c248231336e6a05679e4fdfe",
          "status": "current"
        },
        {
          "locator": "/directives/@id=map-format.directive.entity-proto/description",
          "source": "Resolves the base Critter or Item prototype before placement overrides are applied.",
          "source_sha256": "0c387ac79bdfe0864264ee95941a3a0bdd2c1b7eae4bf578e49d8ccc77291616",
          "status": "current"
        },
        {
          "locator": "/directives/@id=map-format.directive.map-name/applies_to",
          "source": "ProtoMap",
          "source_sha256": "0600d388356a7f7ae6200c4c42b6c4ddde4d4f895002f6aded9179a638a5a0a2",
          "status": "current"
        },
        {
          "locator": "/directives/@id=map-format.directive.map-name/default",
          "source": "source file basename",
          "source_sha256": "d1ea356bf0e78aac795d58efff427842503407d6af5108812204fb3c75078d3f",
          "status": "current"
        },
        {
          "locator": "/directives/@id=map-format.directive.map-name/description",
          "source": "Selects the Map prototype id and both baked resource basenames. Without $Name the anchor resolves to the source basename; multi-map containers should name every anchor explicitly.",
          "source_sha256": "faee46ef664591018eda825581e587fd73b9c2934e62d7a0b79adb1b6eaa08da",
          "status": "current"
        },
        {
          "locator": "/directives/@id=map-format.directive.map-parent/applies_to",
          "source": "ProtoMap",
          "source_sha256": "0600d388356a7f7ae6200c4c42b6c4ddde4d4f895002f6aded9179a638a5a0a2",
          "status": "current"
        },
        {
          "locator": "/directives/@id=map-format.directive.map-parent/default",
          "source": "no parents",
          "source_sha256": "5113b2beb2cdabb90509bff8987abf0294a2d6d019e0e75a96b2283dfa996925",
          "status": "current"
        },
        {
          "locator": "/directives/@id=map-format.directive.map-parent/description",
          "source": "Uses ordinary Map prototype inheritance during prototype baking. Mapper save output is flattened and does not preserve this directive.",
          "source_sha256": "893bf1ce4bbfc0c9b6593f6da21f509640379714719e305669df5151ada6ebd7",
          "status": "current"
        },
        {
          "locator": "/directives/@id=map-format.directive.map-text/applies_to",
          "source": "ProtoMap",
          "source_sha256": "0600d388356a7f7ae6200c4c42b6c4ddde4d4f895002f6aded9179a638a5a0a2",
          "status": "current"
        },
        {
          "locator": "/directives/@id=map-format.directive.map-text/default",
          "source": "no map text",
          "source_sha256": "7bdb0408d8e92839a2420b909e034593a0fa278dc725b1ec81b212f7d1aaddaf",
          "status": "current"
        },
        {
          "locator": "/directives/@id=map-format.directive.map-text/description",
          "source": "Contributes localized prototype text and is preserved as an extra ProtoMap field by mapper load/save.",
          "source_sha256": "bdcc0c9b1b5c3c501a63901ea0a1ba9196ce2b2bc141371c241b26e794028f7b",
          "status": "current"
        },
        {
          "locator": "/outputs/description",
          "source": "MapBaker emits one coupled server/client resource pair for every map declared by a ProtoMap anchor.",
          "source_sha256": "32efb80c2b531bfe2efe027aae85d96d331ebfba5055459de3bf6c674083280e",
          "status": "current"
        },
        {
          "locator": "/ownerships/@id=map-format.ownership.critter-inventory/description",
          "source": "Creates a non-static item in the inventory of the placed critter identified by CritterId.",
          "source_sha256": "93fbafdba7f6b0a25e948d05031a6c3d03f27c9dd6304db7b83a788fd93e4ed7",
          "status": "current"
        },
        {
          "locator": "/ownerships/@id=map-format.ownership.item-container/description",
          "source": "Creates a non-static item inside the placed non-static item identified by ContainerId.",
          "source_sha256": "75fe52e706c1bfe479813ff706df7600883ff9ddb5646fd53b2ea4e311d137fa",
          "status": "current"
        },
        {
          "locator": "/ownerships/@id=map-format.ownership.map-hex/description",
          "source": "Places the item on a map hex. Static items must use this mode.",
          "source_sha256": "57453a0bda40c70a1b091628d0524dd22a9640ab9bd8df516911ec9a9b0fa576",
          "status": "current"
        },
        {
          "locator": "/ownerships/@id=map-format.ownership.nowhere/description",
          "source": "Exists in the enum but is not a supported authored map-placement mode.",
          "source_sha256": "127a8c3499cb3607a9c174d177ec6f635f97e1476c7c1492c93415bd35c37ab5",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.AttachMaster/description",
          "source": "Identifier of the attachment master; zero when the critter is not attached",
          "source_sha256": "7322c3094e8eed388df1fba240578d7855801138f86b0c715e6941ef08babbe4",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.AttachMaster/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.Condition/description",
          "source": "Current life-state condition used by animation, filtering, and gameplay queries",
          "source_sha256": "2afcc291a8b5a505cd1930649d35673632251f86ff1ce75de5e9b6ec964f3e33",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.ControlledByPlayer/description",
          "source": "Classifies the critter as player-controllable independently of its current online state",
          "source_sha256": "6fe4912752db582cec69d3de354ada545935ac26ed477846853ab955c2b5c3c0",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.ControlledByPlayer/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.CustomHolderEntry/description",
          "source": "For a custom entity, names the holder entry through which it is attached",
          "source_sha256": "1050e666d84a94010a810b27fa9d7f3ad171a30f9a7d8d759bfb66b9dc73a348",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.CustomHolderId/description",
          "source": "For a custom entity, stores the persistent identifier of its owning holder; zero when the holder has no persistent identifier",
          "source_sha256": "f84e0928a758c5e497d28a042fd88d98879212b1ac2f6931f329526772f507b3",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.DeadDrawNoFlatten/description",
          "source": "Keeps a dead critter in the normal critter draw order instead of the flattened dead-critter order",
          "source_sha256": "891621e672774d5264b2ffb1613683cb9ab83fad4f2f877721d48851f40bd601",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.Dir/description",
          "source": "Current facing direction on the map grid",
          "source_sha256": "ec2df791dfe2567ef28726bdb6eb1631477d238ed40d57f9cfcffaaa445ddede",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.Elevation/description",
          "source": "Vertical rendering elevation of the critter",
          "source_sha256": "0d356e2b8b3c58596328c573c25bb438a96615db22c714bd5c0e23932af67cba",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.ExplicitlyPersistent/description",
          "source": "Marks an entity as independently persistent rather than persistent only through containment by another entity",
          "source_sha256": "909a82b41efa2f84a7e1fd273e8267c3b69fc21f3390ff505defbb973cf11e51",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.GlobalMapTripId/description",
          "source": "Server-assigned identifier shared by members of the same current global-map trip",
          "source_sha256": "150133a813a0a180910efe456a696c997b1e7e0f9e443affb685091d90f2b678",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.GlobalMapTripId/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.Hex/description",
          "source": "Origin hex currently occupied by the critter on its map",
          "source_sha256": "4673dc90632e2343fafd7d22411b309cb8670c1153963561fbbbf3bf76c08227",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.HexOffset/description",
          "source": "Sub-hex map-space offset used by movement interpolation and rendering",
          "source_sha256": "d5b05576494249b7957e87938fb0c13671789b2fe9b5b252914a906a3fedc9bc",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.HideSprite/description",
          "source": "Hides the current client map sprite without removing the critter's map presence",
          "source_sha256": "f65ac8e86db89b74cfbdc7b4435eecb83865fb9f2f5c899a1fa9208e9b141445",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.InitScript/description",
          "source": "Server initialization function called after the critter-init event for a newly created or restored critter",
          "source_sha256": "b4b717c3f31356bff2f72d8197f7658746d0b2af05f9fb966c335c9f074412de",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.IsAttached/description",
          "source": "Reports that this critter currently follows another critter as an attachment",
          "source_sha256": "b8587bbd99ce1fc420a5c32a110491c986d513981939362dacd32bf490be8d36",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.IsAttached/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.IsChosen/description",
          "source": "Reports that this critter is the locally chosen critter on the current client",
          "source_sha256": "381e130d01d4c815747cf6091918b078756c0360817a237010518e9b5b3aee79",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.IsChosen/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.IsPlayerOffline/description",
          "source": "Client-side connection state reported for a player-controlled critter",
          "source_sha256": "f153b3cf89aebef940af174bddc8a7f977265dfc401cd362959b2fc3a9246e71",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.IsPlayerOffline/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.ItemIds/description",
          "source": "Persistent identifiers of the items directly held in the critter's inventory",
          "source_sha256": "b36a3cf283ea2690381cf7a72659b34381f660c9436d905a97d00694169ed90d",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.LightColor/description",
          "source": "RGBA color emitted by the critter's client-side light source",
          "source_sha256": "88d328cc2723924031ded0647f20671259a644ea8b912439ab1560bf25e463cd",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.LightColor/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.LightDistance/description",
          "source": "Radius in hexes reached by the critter's client-side light source",
          "source_sha256": "f25441db4ccf37f9477696ec349a9229623d2e1b5d2d1a2a12e1d2f1cb062573",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.LightDistance/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.LightFlags/description",
          "source": "Bit mask controlling global, inverse, and direction-blocking behavior of the light source",
          "source_sha256": "8046c6aff9fc965d52aa6f346beacf6560ff28bdb8b15e8346f029d6fd0ddbc4",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.LightFlags/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.LightIntensity/description",
          "source": "Signed percentage intensity of the critter's client-side light source",
          "source_sha256": "f14dfed224d2691eccdc99cd59b5d17080fa909760b4424f94a30b2c9a361c0e",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.LightIntensity/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.LightSource/description",
          "source": "Enables a client-side map light source centered on this critter",
          "source_sha256": "81799139e0e90b3da0d8ff6cc9c815d3b7c033f5507e7a9d1eaa6e4673557b8c",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.LightSource/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.LookDistance/description",
          "source": "Maximum map-view distance in hexes used by server visibility processing",
          "source_sha256": "c8034068f82917328834377f3d8b396d9ce4402ba0b433b81cadfbd44f8c031f",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.MapId/description",
          "source": "Identifier of the map currently containing the critter; zero while it is on the global map",
          "source_sha256": "59c6b611b4325b1c6c16dc0993104036c13ddaf388c8b2c22a948c745f285633",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.ModelLayers/description",
          "source": "Fixed-size client values passed to the 3D model layer and animation resolver",
          "source_sha256": "1d2a56becb527cfd62f862977b11e16a1c119a556c7eec6702746d191b605974",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.ModelLayers/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.ModelName/description",
          "source": "Sprite or 3D model resource used to present the critter",
          "source_sha256": "69d124a0012e5742bdf62f5aee5c124f95d439b041e250f0006d87511f5ad63d",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.MovingSpeed/description",
          "source": "Current server movement speed published for active movement",
          "source_sha256": "f473809fb05663ef513259a86b455e883426981039533dd06e89483977da8c01",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.MovingSpeed/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.Multihex/description",
          "source": "Radius in hexes occupied by the critter in movement, pathfinding, and distance checks",
          "source_sha256": "8243c8fafcd3fb39b49333e131ef30daff5ed37b5a7dd63c229c8facd67aaf19",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.NameOffset/description",
          "source": "Vertical pixel adjustment applied to the critter name label",
          "source_sha256": "c1808ffa3b13587c823c7eef6cab1adc0e5d2d2987c2bc4ef07687ea887f74d2",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.ScaleFactor/description",
          "source": "3D model scale in thousandths; zero selects the default scale of 1000",
          "source_sha256": "de043ac920f0dcf58b124093ede046063447afb7ad4d69db37585cbf6b868152",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.ShowCritterDist1/description",
          "source": "Optional first visibility-event distance in hexes; zero disables this distance group",
          "source_sha256": "f0fa76d680d51b3ca727d663ae6456c87525ae6da02daf967bce05532f3388b4",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.ShowCritterDist2/description",
          "source": "Optional second visibility-event distance in hexes; zero disables this distance group",
          "source_sha256": "b12e13e50471425a135e4e9f12be606edc4fcf3ae917ba5a6ff5d8d2573b7548",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.ShowCritterDist3/description",
          "source": "Optional third visibility-event distance in hexes; zero disables this distance group",
          "source_sha256": "3c063f897d07ccd7dc2d66e41a791e0e37c5d6793fa356076deaaade0b0adcfe",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.VisibilityMode/description",
          "source": "Visibility detail mode assigned to this critter from the current client's viewpoint",
          "source_sha256": "ba9e8d77f08fbaee8cd10f84866c21c5d60edd7a4f0c31ff9af07d0fe57c77fa",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Critter.VisibilityMode/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.AlwaysHideSprite/description",
          "source": "Prevents the item sprite from being drawn at runtime and hides it by default in Mapper",
          "source_sha256": "35bbd94aefd466f34cc5b9d2561f4cd554850378266d72e52df6b764d0a7d1d2",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.Colorize/description",
          "source": "Enables ColorizeColor tinting for the item's map sprite",
          "source_sha256": "fc4a04b90caa7c6602957d4a260cffa28ad283acc864ed3116d2f5339e341817",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.ColorizeColor/description",
          "source": "RGBA tint applied when Colorize is enabled; alpha also supplies the default sprite opacity",
          "source_sha256": "ebe85964e70fa2e7f5b2c315636c32f31b3a0a5115fb6d3f01eaf2ee68bd0de2",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.ContainerId/description",
          "source": "Identifier of the parent item while Ownership is ItemContainer; zero otherwise",
          "source_sha256": "c85a3e9812e7fc48a9e9a55573956448664d61f40174c8a48d8b6844555da73a",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.ContainerStack/description",
          "source": "Project-defined grouping key used to select and merge items inside a container",
          "source_sha256": "a88ea8a1f9f4099039b20d4ecede9d8894dd4fcda99b506ce39b39fd0b108481",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.Corner/description",
          "source": "Wall-corner orientation used by map lighting and transparent-foreground behavior",
          "source_sha256": "daaaf946091f088f124d52c8573ad8e0b445dd278ffb9abb2bd6149263438b57",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.CritterId/description",
          "source": "Identifier of the owning critter while Ownership is CritterInventory; zero otherwise",
          "source_sha256": "13163e321142cdc5a2132d01d1196e72b7881953b23a53297d7b9456720b3d56",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.CritterSlot/description",
          "source": "Inventory or equipment slot occupied while the item belongs to a critter",
          "source_sha256": "04356d847e6a4adad69bf5df6099ddd423664b953973627513ed2fb933c60886",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.CustomHolderEntry/description",
          "source": "For a custom entity, names the holder entry through which it is attached",
          "source_sha256": "1050e666d84a94010a810b27fa9d7f3ad171a30f9a7d8d759bfb66b9dc73a348",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.CustomHolderId/description",
          "source": "For a custom entity, stores the persistent identifier of its owning holder; zero when the holder has no persistent identifier",
          "source_sha256": "f84e0928a758c5e497d28a042fd88d98879212b1ac2f6931f329526772f507b3",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.DisableEgg/description",
          "source": "Disables transparent-foreground egg processing for the item's map sprite",
          "source_sha256": "166fd72b77aab431e0f9a90190521321c69a4cc47972ada45f5515f2eaef9ff6",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.DrawFlatten/description",
          "source": "Renders the item in a flat map pass instead of the normal depth-sorted item pass",
          "source_sha256": "8c42c5f7962a272d8b9e70aade0133b2beae3deb1203b7f6b0f01b2d864c097c",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.DrawMultihexLines/description",
          "source": "Draws repeated item sprites on footprint hexes generated by MultihexLines",
          "source_sha256": "e1f92c7770e5a03345518079545fbedfff6a27a97c418d31d7d98e5399525ae3",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.DrawMultihexMesh/description",
          "source": "Draws repeated item sprites on the explicit MultihexMesh hexes",
          "source_sha256": "c24ca063a44af2b82ae183fab57ad10825260e0e22e2f52d4d288d5be2d51181",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.DrawOrderSubLayer/description",
          "source": "Fine ordering inside the item's primary draw-order layer; synchronized when changed at runtime",
          "source_sha256": "55fb2bfaa60af95d8078bb9e8e7479fcf877e7408b86da776626d6946d46a736",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.Elevation/description",
          "source": "Vertical rendering elevation of the map item",
          "source_sha256": "1a2a1b15c27eca391a5e41748dc34b495971a1be9dd6d1f4bf7c1cb3a34cd53b",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.ExplicitlyPersistent/description",
          "source": "Marks an entity as independently persistent rather than persistent only through containment by another entity",
          "source_sha256": "909a82b41efa2f84a7e1fd273e8267c3b69fc21f3390ff505defbb973cf11e51",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.Hex/description",
          "source": "Origin map hex used while the item is placed on a map",
          "source_sha256": "dffc781d0273108a8166191f1ee7febb58907456ba4a0c8571a8548e5dbf7a33",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.Hidden/description",
          "source": "Server visibility flag that suppresses a dynamic item from client views while set",
          "source_sha256": "637af3b02f94ec0a51dfc10801f441ca0dc7c2a5ad7f5bde36e947edcdecd812",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.HideSprite/description",
          "source": "Hides the current client map sprite without removing the item's map presence",
          "source_sha256": "03595d24e3807b1bd2adda9a5d7fbc3e87341f55193ecc8f6ed0ef53830613db",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.InitScript/description",
          "source": "Server initialization function called after the item-init event for a newly created or restored item",
          "source_sha256": "92c8c2cd2af271cbebda880be7310c5cdae7e3a75135bc0873b8dbb4dfa56b82",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.InnerItemIds/description",
          "source": "Persistent identifiers of the items directly contained by this item",
          "source_sha256": "e0d3bca11c2ebef564c2c5adaea9ac4544cd821ae15094f6fd6791ea1405a876",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.IsGag/description",
          "source": "Marks a blocking item as conditionally passable through the map gag callback",
          "source_sha256": "d6ead5d157ce9a339e1981db6301c067f80773f5dc0006728c6a64a4efb2eb6d",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.IsRoofTile/description",
          "source": "Selects roof rendering instead of ground-tile rendering when IsTile is enabled",
          "source_sha256": "b019a3275120fddbf135b646be5d3691f333ec42ea2c77142e8263a5d66bc64a",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.IsScenery/description",
          "source": "Classifies the item as scenery for Mapper filtering and flat-render lighting rules",
          "source_sha256": "e41d65a20f9fbd4390072cc498f637608fde707756922c1a5692e7612c840c4a",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.IsTile/description",
          "source": "Classifies the item as a ground or roof tile rendered in a tile layer",
          "source_sha256": "03a9b963535708e07109769fdd25dea31bae0958dda28e54cc151695caa469cb",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.IsTrigger/description",
          "source": "Includes the item in map trigger lookup and movement-trigger processing",
          "source_sha256": "7cfbc5d256b1e4dfb364fe05767e6bbb741d5b9696c0b4e07cbb0047694970c1",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.IsWall/description",
          "source": "Classifies the item as a wall for Mapper filtering and map presentation",
          "source_sha256": "5dc61a298f187be1900a6a22c3319644558b714cd962655e392997b97f85b668",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.LightColor/description",
          "source": "RGBA color emitted by the item's light source",
          "source_sha256": "571e9fe8175d07be7ddd5db7a81dc0bcd27976f8e519632996682416dbb95931",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.LightDistance/description",
          "source": "Radius in hexes reached by the item's light source",
          "source_sha256": "ad159f0529a1fdffa5884404e3e1f88a13da7381faf87c08f13a0918ab29bc6e",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.LightFlags/description",
          "source": "Bit mask controlling global, inverse, and direction-blocking behavior of the light source",
          "source_sha256": "8046c6aff9fc965d52aa6f346beacf6560ff28bdb8b15e8346f029d6fd0ddbc4",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.LightIntensity/description",
          "source": "Signed percentage intensity of the item's light source",
          "source_sha256": "b58932e26f9f005302377f2cfa1110c75ded4c1ea422638619290be9f1ed37ba",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.LightSource/description",
          "source": "Enables a map light source centered on this item",
          "source_sha256": "d287baff16708fe3fc54acc82e11370dbe4c75368b824c1217b6701811552284",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.LightThru/description",
          "source": "Allows map light propagation through every hex occupied by the item",
          "source_sha256": "1037af338e9b7376b3a18c459cdfadf082ea98fba93afd2c1cd145c9a404f823",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.MapId/description",
          "source": "Identifier of the owning map while Ownership is MapHex; zero otherwise",
          "source_sha256": "2c46f45492a4e7e8b84eea7f0d09c5ddc481e712e59c1f4cb3f1a3847a38f066",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.MultihexGeneration/description",
          "source": "Mapper coalescing strategy used to build MultihexMesh from compatible item placements",
          "source_sha256": "fc29904b19512b32c28da26f6e561fade5d8e0e100c83d4cf5b83fd90d713b77",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.MultihexLines/description",
          "source": "Direction and step-count pairs that trace additional footprint hexes from each mesh origin",
          "source_sha256": "cb8c7af3792f23d28e56ca10e77c1e42880daa622880376c303f6e8759237e73",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.MultihexMesh/description",
          "source": "Explicit map hexes that share this item's footprint and optional repeated sprite",
          "source_sha256": "64d3fad57d3b2158528f52ee892636e53709072c139e7c15d4e7cf2b36cd7e3b",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.NoBlock/description",
          "source": "Allows movement through every hex occupied by the item",
          "source_sha256": "47c83de8812ede09ff101593fe047c00fe7fe8ad0df398ad0825d74c6e938d8c",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.NoHighlight/description",
          "source": "Prevents the client from applying normal item highlight presentation",
          "source_sha256": "3913f9b16e667e72c3057841165a1c035be5191e2d72d60203a709d27322eb80",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.NoLightInfluence/description",
          "source": "Prevents ambient map lighting from tinting the item's sprite",
          "source_sha256": "a0eac1c042bcb0ffd45a7ce06e9181e22ccf36207156193ed9c52f5ce387d08b",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.Offset/description",
          "source": "Pixel offset applied to the item's map sprite from its origin hex",
          "source_sha256": "7a272511540548ee8b56d6ed151072068dcc37b4a6dfa1e42ea13f148ad16132",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.Ownership/description",
          "source": "Current placement category: map hex, critter inventory, item container, or nowhere",
          "source_sha256": "7f18b6727e88f6a9f2dd9e4ac8fa9f2954debee9351d8c1d9cda9660afc20d7f",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.PicInv/description",
          "source": "Sprite resource used to present the item in inventory interfaces",
          "source_sha256": "a14861a79d378dd986d0c5a1f31cb43d745b23dcd5502f66ca74fa8e5a4f15ee",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.PicMap/description",
          "source": "Sprite resource used to render the item on a map",
          "source_sha256": "ab14f55b75cc41008483bf44e6eb5d60046db1eb89c820cc29227f941f262567",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.ShootThru/description",
          "source": "Allows projectile traces through every hex occupied by the item",
          "source_sha256": "bc1513365e7604c60ab42986e2e235bf63ae81f5081ee66377dbc348d0a157ae",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.Static/description",
          "source": "Marks map-authored item data as static scenery rather than a dynamic item entity",
          "source_sha256": "5fd25d0321400cdb6825f1b256dbf52f6e3a41c4be58a508e6375fe045a30fb2",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.StaticScript/description",
          "source": "Server callback invoked when a critter interacts with this static item",
          "source_sha256": "80accddad61a6cbeb107b37c7e6fc4691023d6304302fbd93627672e584a67ea",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.TileLayer/description",
          "source": "Zero-based ground- or roof-tile draw layer selected for a tile item",
          "source_sha256": "a406efdae80c13b34e1cd584889d5d940a6943a27c70fd1f486b7f7a37b131cf",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Item.TriggerScript/description",
          "source": "Server callback invoked when a critter enters or leaves this trigger item",
          "source_sha256": "8fde30c2a2608ca0eb769ffd696ba7fee6c5df33a2002299a603d40e4fe273d7",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Map.CritterIds/description",
          "source": "Persistent identifiers of the non-player critters owned by this map",
          "source_sha256": "383b430c8c33bf1885c300520c17fd38067ff56b78d668e11ac9244035dd8e8f",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Map.CustomHolderEntry/description",
          "source": "For a custom entity, names the holder entry through which it is attached",
          "source_sha256": "1050e666d84a94010a810b27fa9d7f3ad171a30f9a7d8d759bfb66b9dc73a348",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Map.CustomHolderId/description",
          "source": "For a custom entity, stores the persistent identifier of its owning holder; zero when the holder has no persistent identifier",
          "source_sha256": "f84e0928a758c5e497d28a042fd88d98879212b1ac2f6931f329526772f507b3",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Map.DayColor/description",
          "source": "Channel-major RGB values for the map's corresponding daylight color keyframes",
          "source_sha256": "8c28d7782ce766bae7a87f21602faf98ccc756e3917e876a0278936521dae885",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Map.DayColorTime/description",
          "source": "Map-specific daylight color keyframe times expressed in minutes of the day cycle",
          "source_sha256": "063442b339f136a862ee76aca06b2b9f76af23eef2bdcef6d597bacafc297b48",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Map.ExplicitlyPersistent/description",
          "source": "Marks an entity as independently persistent rather than persistent only through containment by another entity",
          "source_sha256": "909a82b41efa2f84a7e1fd273e8267c3b69fc21f3390ff505defbb973cf11e51",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Map.FixedDayTime/description",
          "source": "Map-local day-time override value, conventionally expressed in minutes and interpreted by game scripts",
          "source_sha256": "733a7356ce97118638d8a96d452edf88bb2b23c6af70c8ca437978b1124fee05",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Map.GlobalDayColor/description",
          "source": "Current client-side global daylight color supplied through SetDayColors for scripts and effects",
          "source_sha256": "5062b0632e9dfa916cb4a1452f07becc6317345af600ffa19e3857a4faf8a19d",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Map.GlobalDayColor/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Map.GlobalDayLightCapacity/description",
          "source": "Current daylight capacity percentage for light sources flagged as global, clamped to 0 through 100",
          "source_sha256": "0e896da615c499ca6b6d72bbfb4ff6cce8634eee240e64afb1eb6f58bb28a46d",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Map.GlobalDayLightCapacity/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Map.InitScript/description",
          "source": "Server initialization function called after the map-init event for a newly created or restored map",
          "source_sha256": "b346fcb09dd09317254f8bd4a470e5686139f49d77fdddb12cc789c9b9a54fdf",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Map.ItemIds/description",
          "source": "Persistent identifiers of the dynamic items placed directly on this map",
          "source_sha256": "f68bdd19c02a3c7072ef0c3f60c46e20895921dc5864e549679ff50e67587c65",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Map.LocId/description",
          "source": "Identifier of the location that owns this map",
          "source_sha256": "a03a7cf8f8affc1651b2f66086f024e3a3e58ae8f73bc470d3f60fd31ec661e9",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Map.LocMapIndex/description",
          "source": "Zero-based position of this map in its owning location's map list",
          "source_sha256": "edc543ed913945fdf817c99f20c8174c2f26112564f57b9a1d30a42ba8ba5d59",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Map.MapDayColor/description",
          "source": "Current client-side map tint supplied through SetDayColors and consumed by map rendering",
          "source_sha256": "7d45ea8d535569211311209d1e1b090eff8bd95a7711ad597fe4674d6b8c39f3",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Map.MapDayColor/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Map.MapDayLightCapacity/description",
          "source": "Current daylight capacity percentage for ordinary map light sources, clamped to 0 through 100",
          "source_sha256": "a7905a27180f72a6d5c60e80fbd6a24dcd91c21834c106f7ffbd18129444961f",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Map.MapDayLightCapacity/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Map.RemovedStaticItemIds/description",
          "source": "Identifiers of the baked static items this map instance has dropped; removal is one-way for the life of the instance",
          "source_sha256": "10145eb732c492e95bd1f053d5f0dd6f9130a2d46594d4d1bdd479c2eed8351f",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Map.ScrollAxialArea/description",
          "source": "Axial-coordinate rectangle that bounds map scrolling; a zero rectangle leaves the full map available",
          "source_sha256": "3fa8a2bad17f4366872010bfc71dd29fae1130ec58631caac1921a43c94da421",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Map.ScrollOffset/description",
          "source": "Rounded client viewport offset in map-space pixels",
          "source_sha256": "db936c3fe0561e0b2e76721fec01b38c190f6d0df6c06e0c0de5db60f847e17c",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Map.ScrollOffset/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Map.Size/description",
          "source": "Width and height of the map grid in hexes",
          "source_sha256": "55bb18dc4ab688f68beaf3fb1b2bfed3d1d671b87a6c09cf6816c70f83e77e49",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Map.SpritesZoom/description",
          "source": "Current client map-sprite zoom factor",
          "source_sha256": "e7dab76f2064735454657cf83bfd532048bf61a2dbf2c0e7a92b8e919305b47c",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Map.SpritesZoom/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Map.SpritesZoomTarget/description",
          "source": "Target zoom factor toward which the client map view is interpolating",
          "source_sha256": "5cc47384c7e656b8df01bf7003c3ca3f136e115eb89e50dc18affa7ba19589d1",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Map.SpritesZoomTarget/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=map-format.property.Map.WorkHex/description",
          "source": "Authoring work hex used as the initial Mapper view center",
          "source_sha256": "39e3f4def04bf163c5b07c4ede4f0dbe86be876eeee8e51712a36a3b3162a429",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.bounds/description",
          "source": "Server load rejects invalid positions. Mapper editing commands may clamp positions, which is not a substitute for source validation.",
          "source_sha256": "8a05521e289469746030c4f8102b1291da2543013de7d380828fc7ffd8b6ea94",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.bounds/name",
          "source": "Map bounds",
          "source_sha256": "fad65188b3a51126fad8138431d29f8b87d00bf79d6b3218b668852d726972b7",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.bounds/requirement",
          "source": "Critter Hex and MapHex item Hex values must be inside ProtoMap Size before runtime loading.",
          "source_sha256": "5b6244805d5f3af4243cc6936a8a4a6e94ac8cab28818df99b435db6e1a91fa6",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.closed-section-set/description",
          "source": "[$Name/...] binds to the preceding anchor. An explicit owner must name a declared map; a contextual nested section before the first anchor is rejected.",
          "source_sha256": "1bdad5a1c6185f74ac3eb538be01e29ef981a2ec7f02904b7b7e3e32f6be3305",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.closed-section-set/name",
          "source": "Closed section set",
          "source_sha256": "233a5a7b40f29bf1254de34e4a30cae2676a59555dbfb29a383f6738be37de73",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.closed-section-set/requirement",
          "source": "Use top-level ProtoMap anchors and nested <owner>/Critter or <owner>/Item sections only.",
          "source_sha256": "e734629369dc03a14535471594b9da4efdec7cd6283dd0d4bd7422f3974c13b8",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.config-syntax/description",
          "source": ".fomap uses the shared ConfigFile parser.",
          "source_sha256": "db1ddb9b75401fcaf0a63ec414d4f4ae135b004743c508d862ce1c4be213e4d1",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.config-syntax/name",
          "source": "Configuration syntax",
          "source_sha256": "8ba0c0cd1d9a44cd69850ff4d459bd88a5b9d10a742ff0fa566261f80d27c188",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.config-syntax/requirement",
          "source": "Use INI-like repeated sections, key = value assignments, # comments, backslash continuation, and key += value append where the property parser supports it.",
          "source_sha256": "3aa417dee22750670ac416a6f47945fc2db177aee1f50d3d97e9f87af095a1fd",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.error-aggregation/description",
          "source": "Entity diagnostics are logged individually before MapLoader or MapBaker throws the aggregate failure.",
          "source_sha256": "6764d3a0724bdfeac1eae9e41ade4f043490a52e793abb917cfdb054ea09c4e9",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.error-aggregation/name",
          "source": "Error aggregation",
          "source_sha256": "fb583b326279f55573d3d009c445757c3cb607a2f75eb4e65cf57b34d23804e4",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.error-aggregation/requirement",
          "source": "Treat any accumulated entity load or property/resource validation error as a failed map bake.",
          "source_sha256": "43502bf932ab890b13b8acb9cfd2db937b178e7cc8c0363227d4dbecb1e253b5",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.hidden-static-items/description",
          "source": "Its client-side property strings are still hashed, but the item record is omitted.",
          "source_sha256": "0bac9922946055b4f9b2231ac50e92f018e2129135a4afe3b0408102f7f86884",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.hidden-static-items/name",
          "source": "Hidden static items",
          "source_sha256": "310ee1c291a83e22bf72a490f0a0bff9c37dbf816c4dffb8a4a0ca950870da61",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.hidden-static-items/requirement",
          "source": "Do not expect a Hidden static item entity in the client map payload.",
          "source_sha256": "541afaf8f33d027cf8ab94aca68979cd1b9a36d852896390a932f36a054d50b4",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.map-identity/description",
          "source": "Map identity, targeted bake lookup, and baked output names come from declared map ids, not container filenames.",
          "source_sha256": "041295dc7e67d547da4e54fa16efc9659d939301eb069b510868707de01ae505",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.map-identity/name",
          "source": "Map identity",
          "source_sha256": "25214d1741a4d6a9d1971ac8ec0b8ca2f0ed29f85e33f5333c184c479efcac3a",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.map-identity/requirement",
          "source": "Give every map in a multi-map container a unique ProtoMap $Name; a single unnamed anchor inherits the source basename.",
          "source_sha256": "4cd63a72f664c97068b221c286e4c042b038b2ae5eb77bba4841a99983fd6ea0",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.mapper-round-trip/description",
          "source": "The mapper emits $Name and normalized [$Name/...] sections for the edited map, retains $Text fields, flattens inherited map properties, and preserves sibling map blocks byte-exact in a multi-map container.",
          "source_sha256": "5febb16894876dd777ccbb178f897acb67734e25100b978294875ea8184f7292",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.mapper-round-trip/name",
          "source": "Mapper round-trip",
          "source_sha256": "eff721a9988b7f95a4b2380935a50eb983a459b268cd4d8539a306178c9287f1",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.mapper-round-trip/requirement",
          "source": "Review mapper-saved diffs as normalized output, not byte-preserving serialization.",
          "source_sha256": "1050d9ee4146fb707e51707bf475ada9b6a42fea4cf9b75b1a5ac840bab7786e",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.multihex-lines-runtime/description",
          "source": "Server static and dynamic materialization index every expanded line cell to the same item and recache its blocking and interaction flags.",
          "source_sha256": "04e1660de475121e99892babb27ea31a53a15a0a2586e9c3af7fcc5fbccb5eaf",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.multihex-lines-runtime/name",
          "source": "Runtime multihex-line footprint",
          "source_sha256": "e4348db0c6d994d4235e4a8503e0b787b6add230d16c44da8c424e7e0d5917f8",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.multihex-lines-runtime/requirement",
          "source": "Treat MultihexLines as part of an item's complete runtime footprint around both its anchor and every valid MultihexMesh cell.",
          "source_sha256": "495d17b3216a87074a9aa277eaa527b018910a0d157bd0b362085a278e9a90b2",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.multihex-mesh/description",
          "source": "An odd coordinate count fails mapper serialization.",
          "source_sha256": "1db342baa55001182d9845f7dd3051cdb86094fc9f7f6c0f575327885ae4089d",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.multihex-mesh/name",
          "source": "Multihex mesh serialization",
          "source_sha256": "7cb028eb78c6c9f5f1a918228b195193aa3d995a377475a887e57aed38ca6a8d",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.multihex-mesh/requirement",
          "source": "MultihexMesh must contain x/y coordinate pairs; mapper save normalizes it into backslash-continued pairs.",
          "source_sha256": "0e1c24c79a14ced5ee777ac31beba6e54b2d64e474743b50cca764d081048f6d",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.normalized-order/description",
          "source": "The loader processes all Critter sections before all Item sections, and mapper save emits critters with inventory items before map items with direct children.",
          "source_sha256": "4cf22279fb385f78d18852b09a0e1e646f77157ae39d05fcddb0041906b9d3b0",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.normalized-order/name",
          "source": "Normalized entity order",
          "source_sha256": "e5b33bc9e554a18a8de9b602b669769377e41cc4f3c8470591d4f62a505f0418",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.normalized-order/requirement",
          "source": "Do not use textual interleaving as an ordering contract.",
          "source_sha256": "52f59926795ac6ef404e0f4156042746619fb8fa70d057876fd6b4283c3910f4",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.ownership-references/description",
          "source": "Unmapped owner ids skip child creation; direct children of placed critters and non-static map items are the supported mapper/runtime shape.",
          "source_sha256": "69396caeee4abddf20728b573394b611eeb6e3b92391d189167c65482bc8203a",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.ownership-references/name",
          "source": "Ownership references",
          "source_sha256": "592488ebb00cc3378c256f03b81f7851a58d0f526d5301a04a8cc023a3f66d56",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.ownership-references/requirement",
          "source": "CritterInventory and ItemContainer placements must reference a materializable owner id through CritterId or ContainerId.",
          "source_sha256": "b2c5249635898e5c221f37e1ad93e619779ab7286af58810e3150e5c3dcde589",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.property-overrides/description",
          "source": "MapBaker copies the prototype properties, applies section text, validates resources, and serializes side-specific data.",
          "source_sha256": "a868abef37258218b3215e369b3f8a133ab1cc8073d99dcf5cf291326ca232a6",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.property-overrides/name",
          "source": "Property overrides",
          "source_sha256": "4dc7ba9208fdeea9aab6251832ce8e5583cfd594983accaae67811ede510f211",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.property-overrides/requirement",
          "source": "Use properties valid for the section receiver and bake side; values override the resolved base prototype.",
          "source_sha256": "4f3e62c9e0d720d654226babee2312735a9f138f1f1fface8ae30e7ecc36f6c1",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.prototype-resolution/description",
          "source": "Missing and unresolved prototypes are accumulated as map-load errors.",
          "source_sha256": "03e3b94246286ec12b9cf66d44c69b314458a37aa284f028767159b00facb2af",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.prototype-resolution/name",
          "source": "Prototype resolution",
          "source_sha256": "448dfbb577a8976ef01835b41e5d6250e9b5d3dc22ac6d7cd7091b8399c3dafa",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.prototype-resolution/requirement",
          "source": "Every Critter and Item section must name an existing prototype with $Proto.",
          "source_sha256": "88b9cc0e02bab856787d000e44a8c49c6c06c4cebf6c9006fc360b77ee1a695d",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.runtime-materialization/description",
          "source": "The server remaps authored ids for generated critters and non-static map items before attaching direct child items.",
          "source_sha256": "4e2e3dbcb1a2157661ef459a637fc1d317be90e8abe1f2298ab4dfb2caf2f095",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.runtime-materialization/name",
          "source": "Runtime materialization",
          "source_sha256": "11b628336876c83068cae8d7a0a7ca2c8051e0c246a4b0d47637214c1cc44544",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.runtime-materialization/requirement",
          "source": "Use Static only for immutable map-hex fixtures; use non-static placements for generated critters, map items, inventories, and containers.",
          "source_sha256": "91f1025d8e7a8b18aa4d10d433f245d0bc9a812f0ac49d9e983fcecb4760599c",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.shared-placement-ids/description",
          "source": "The loader repairs omitted, non-positive, and duplicate ids, but repaired values can invalidate hand-authored owner references.",
          "source_sha256": "994ea7a5d6056518f68f4b663d3979a02bb36e529a0ce2d47b255a70c3d3b992",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.shared-placement-ids/name",
          "source": "Shared placement ids",
          "source_sha256": "447572e111b94662323f748aecaac0eb9cc7cbf0521eaeee5c934d8606057e49",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.shared-placement-ids/requirement",
          "source": "Use explicit positive ids unique across all Critter and Item sections in one map.",
          "source_sha256": "983de346e348ff236a933f9f5a0d50a7e2d703718ef00724c859568cc1d803c8",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.side-specific-bake/description",
          "source": "The server receives critters and all items; the client receives visible static items and all authored server-map strings, without server entity or property records.",
          "source_sha256": "3c2e242bafc2f6a462e6ba110323e5b8ec4ae9ffe7bfd610f8c62232632454b9",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.side-specific-bake/name",
          "source": "Side-specific bake",
          "source_sha256": "8e528fa22cb6f1e762b5289f2b11ee8a514606ffab20f96a1a6cb3cdb295e42c",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.side-specific-bake/requirement",
          "source": "Treat server and client map binaries as a coupled output and regenerate both after source or referenced prototype changes.",
          "source_sha256": "987e5d9a0286ff4b7c98d26e1a2f459831160033fe8b0953512d2aa59432a752",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.static-items/description",
          "source": "Static items become immutable map-grid entries and contribute movement, shooting, trigger, and multihex state.",
          "source_sha256": "f394a959deacd28ce0ec5ee360fa06c560e8105ed37836a8e192ea14eada85e5",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.static-items/name",
          "source": "Static item placement",
          "source_sha256": "98e5a24e14beff83bc80095853c46da1458f5b547733f37f0eef3a7c84ebec1a",
          "status": "current"
        },
        {
          "locator": "/rules/@id=map-format.rule.static-items/requirement",
          "source": "A Static item must use MapHex ownership.",
          "source_sha256": "bb6f0ded9b3e7976ae564e9542c6100e43e4acb339853267be0e3da91e9345e2",
          "status": "current"
        },
        {
          "locator": "/scope/excluded",
          "source": [
            "project-authored properties, prototype ids, map catalogs, and directory taxonomy",
            "quest, encounter, balance, visual-kit, and level-design policy",
            "runtime save records and dynamic entities created after map materialization",
            "pathfinding, combat geometry, lighting design, and renderer-specific composition guidance"
          ],
          "source_sha256": "a9e51a633154c791421bad70658ea469fea847ea4d58b110c11e2f62e28ecf39",
          "status": "current"
        },
        {
          "locator": "/scope/included",
          "source": [
            "one or more ProtoMap anchors with nested map-addressed Critter and Item sections",
            "map identity, placement ids, prototype references, ownership, and property overrides",
            "mapper normalization, side-specific baking, and runtime materialization",
            "engine-owned Map, Critter, and Item property catalogs"
          ],
          "source_sha256": "3ce5669b082d8968d5d58c99e156890f60e8caa1797c162489958bf5c6b2fed6",
          "status": "current"
        },
        {
          "locator": "/scope/support_note",
          "source": "The contract is generated for a pinned engine revision. Project map catalogs, custom metadata, gameplay semantics, and composition policy remain project-owned.",
          "source_sha256": "3e8a6626d65363913fd0f019b31f99b4e3da7465ed1cbb848150b257650d32aa",
          "status": "current"
        },
        {
          "locator": "/sections/@id=map-format.section.critter/cardinality",
          "source": "zero or more per declared map",
          "source_sha256": "756e2fb77312493d31d07dfeb840701f844f910f0f3f0fd37278dd53f0a1bf0e",
          "status": "current"
        },
        {
          "locator": "/sections/@id=map-format.section.critter/description",
          "source": "Places a critter prototype and applies per-placement Critter property overrides.",
          "source_sha256": "4f0886e71c1ca123e3d28d995d96c609607fa5ebdf71689aea73132da6177443",
          "status": "current"
        },
        {
          "locator": "/sections/@id=map-format.section.item/cardinality",
          "source": "zero or more per declared map",
          "source_sha256": "756e2fb77312493d31d07dfeb840701f844f910f0f3f0fd37278dd53f0a1bf0e",
          "status": "current"
        },
        {
          "locator": "/sections/@id=map-format.section.item/description",
          "source": "Places a map, inventory, or container item and applies per-placement Item property overrides.",
          "source_sha256": "0d09739bbb87aea4d1f6c9d9bcf26329b5a409325cd55e5e0ae9a67baa0928c6",
          "status": "current"
        },
        {
          "locator": "/sections/@id=map-format.section.proto-map/cardinality",
          "source": "one or more per container",
          "source_sha256": "5469792f4d325b9688702eeadf91cd402496695125a065b963c266aa3c53a366",
          "status": "current"
        },
        {
          "locator": "/sections/@id=map-format.section.proto-map/description",
          "source": "Declares map-level properties and starts the context used by following [$Name/Critter] and [$Name/Item] sections.",
          "source_sha256": "59683b5a18f46133a47288536f69d7312fb3bbf4e7e10a0ddbbab408ce9c0015",
          "status": "current"
        }
      ]
    },
    "model-format": {
      "source_model": "Docs/generated/model-format.json",
      "entry_count": 141,
      "current_count": 141,
      "missing_count": 0,
      "complete": true,
      "entries": [
        {
          "locator": "/assets/@id=model-format.asset.description/description",
          "source": "Composes a primary baked mesh with layer-selected root modifiers, child models, particles, materials, effects, cuts, and animation mappings.",
          "source_sha256": "7bbc1894979aaa019e87d3bf4f2bf7cb20b9fb51dba9547c0c4d77c1ac8cd72f",
          "status": "current"
        },
        {
          "locator": "/assets/@id=model-format.asset.description/name",
          "source": "Model description",
          "source_sha256": "095130c2deb95d8970c36ca4488f8003c5757829c291cbd1ca51d6a75eda851d",
          "status": "current"
        },
        {
          "locator": "/assets/@id=model-format.asset.description/requirements",
          "source": [
            "every concrete description must resolve a Model directive",
            "files whose basename starts with TEMPLATE_ are include-only and are not emitted as models"
          ],
          "source_sha256": "fc9441327de76e36f7bdd08b57ee63b2398b58ec61de5d66c1842919bf792523",
          "status": "current"
        },
        {
          "locator": "/assets/@id=model-format.asset.effect/description",
          "source": "An explicit non-Parent Effect value is a baked-resource path loaded for EffectUsage::Model.",
          "source_sha256": "c7a401d05a511670f22a1404adca093a2142aa0a4df308942310e3fc6ae54506",
          "status": "current"
        },
        {
          "locator": "/assets/@id=model-format.asset.effect/name",
          "source": "Model effect",
          "source_sha256": "e3c7ee10d17c54d9f5307751594e0d1c46e6a7fdf8272f4486b174a4ebc88855",
          "status": "current"
        },
        {
          "locator": "/assets/@id=model-format.asset.effect/requirements",
          "source": [
            "the effect resource must exist",
            "an explicit effect target mesh must be drawable"
          ],
          "source_sha256": "e55b9e17e31d9f8dddc3257d3316bc00b7e02856a6d79d8a8a0ef978594ca37a",
          "status": "current"
        },
        {
          "locator": "/assets/@id=model-format.asset.fbx/description",
          "source": "Imports the drawable hierarchy, material texture names, and skin data for the mesh payload, while ModelSourceLoader extracts the source skeleton and animation clips that ModelInfoBaker converts into the required runtime rig.",
          "source_sha256": "6efc003de7a2ba8308d98e61e042178ec4293d754a7d5835f64afe43379e63f7",
          "status": "current"
        },
        {
          "locator": "/assets/@id=model-format.asset.fbx/name",
          "source": "FBX mesh",
          "source_sha256": "e3883e2b36f66c0cfa0e48477a37e78342adbdffb4fbad9cc6330f8bf09ea52a",
          "status": "current"
        },
        {
          "locator": "/assets/@id=model-format.asset.fbx/requirements",
          "source": [
            "faces must be triangulatable and the imported face count must agree with the generated triangle count",
            "skin clusters must fit FO_MODEL_MAX_BONES",
            "mesh skin references must resolve against the physical mesh hierarchy",
            "source skeletons and clips must pass finite-value, hierarchy, count, key, and compatibility validation before conversion"
          ],
          "source_sha256": "57b1dd3401d1a90d47270d043e1d3716368c321ed3c9737849625489bdddd5e1",
          "status": "current"
        },
        {
          "locator": "/assets/@id=model-format.asset.obj/description",
          "source": "Imports a static hierarchy and drawable mesh through the same ufbx path; missing vertex attributes receive deterministic defaults.",
          "source_sha256": "59f10aaaf31df497298b411eafbbfd963512729c106e4ef3650d8ea727d34dba",
          "status": "current"
        },
        {
          "locator": "/assets/@id=model-format.asset.obj/name",
          "source": "OBJ mesh",
          "source_sha256": "65de7b63ac2dbb4563f45ff1da9e4daee1c683d798080d4e15a7911d14b53b55",
          "status": "current"
        },
        {
          "locator": "/assets/@id=model-format.asset.obj/requirements",
          "source": [
            "the file must contain at least one drawable mesh for use as a concrete model",
            "OBJ is suitable for static attachments and cut volumes, not authored skeletal animation stacks"
          ],
          "source_sha256": "fe1baa159a8334d3c4dff5d741850713da28329562f08a8016cd69031ba19f46",
          "status": "current"
        },
        {
          "locator": "/assets/@id=model-format.asset.particle/description",
          "source": "A layer-selected AttachParticles entry instantiates a baked SPARK or Effekseer particle resource on a model bone while that layer value remains active.",
          "source_sha256": "94fec309250179fda2209ee58ffc3df5c4cd7bc00a37cb7fbd8c95bbe4e4f3fe",
          "status": "current"
        },
        {
          "locator": "/assets/@id=model-format.asset.particle/name",
          "source": "Particle attachment",
          "source_sha256": "41ccc606c4b346b5d0fffa025c77cea0b65ead349d7bed536b460aed41e962f7",
          "status": "current"
        },
        {
          "locator": "/assets/@id=model-format.asset.particle/requirements",
          "source": [
            "the particle resource must exist in baked resources",
            "reference the baked .spk or .efk path, not its .spark or .efkproj authoring source",
            "author a non-empty Link bone; runtime particle creation requires it"
          ],
          "source_sha256": "9ae5b85d26a4025f7ce2d2f79cd2f198d0dea073c7a6202316ccd7a867bb6bfe",
          "status": "current"
        },
        {
          "locator": "/assets/@id=model-format.asset.texture/description",
          "source": "Default diffuse textures and explicit non-Parent Texture values resolve relative to the owning baked mesh file.",
          "source_sha256": "c532598e0bf5cbbc62722e74bec0b63982d68e86076a7e5e4fa386d65294097b",
          "status": "current"
        },
        {
          "locator": "/assets/@id=model-format.asset.texture/name",
          "source": "Model texture",
          "source_sha256": "3cc9e1a1e4694b1a4980d35bb358619a2588c09817380a2d9273a9587e463503",
          "status": "current"
        },
        {
          "locator": "/assets/@id=model-format.asset.texture/requirements",
          "source": [
            "every imported default diffuse texture must exist in baked resources",
            "an explicit texture target mesh must be drawable"
          ],
          "source_sha256": "66bfe8367374214ae87e07a3170ac9d5fadef28e65d615005d105711c3f497cd",
          "status": "current"
        },
        {
          "locator": "/compile_limits/@id=model-format.limit.bones-per-vertex/description",
          "source": "Maximum number of imported skin influences retained per vertex before weights are normalized.",
          "source_sha256": "b0be57d8328ab71d20acc164bda4f612365322f412058ca7e31c5f2cc65f06f9",
          "status": "current"
        },
        {
          "locator": "/compile_limits/@id=model-format.limit.bones/description",
          "source": "Maximum number of skin-bone matrices that one combined draw batch can carry.",
          "source_sha256": "1074a9a70f39224fb19f7a76d170478ffd08bece3dd79495e51364042f0a7d0a",
          "status": "current"
        },
        {
          "locator": "/compile_limits/@id=model-format.limit.layers/description",
          "source": "Number of layer slots in every model-layer array and the exclusive upper bound for Layer, DisableLayer, AnimLayerValue, and Cut layer indices.",
          "source_sha256": "37491d57e93508ce5a0cf05d5f07ed1d13304dca25a937ec87d3747b7dec08ea",
          "status": "current"
        },
        {
          "locator": "/compile_limits/@id=model-format.limit.textures/description",
          "source": "Number of texture slots available to each mesh and the exclusive upper bound for Texture indices.",
          "source_sha256": "fde26a77e4da1d0c6773a5d2f67d81ec66d494d72249e9cc20d9f92055f7227c",
          "status": "current"
        },
        {
          "locator": "/description",
          "source": "Source-backed authoring, baking, and runtime composition contract for FOnline .fo3d model descriptions and their 3D assets.",
          "source_sha256": "4dc2d4e8d556adff401600b0bc2e22d0cf99f68fea3deb46b7a1906a361a41df",
          "status": "current"
        },
        {
          "locator": "/removed_legacy/@name=AnimEqual/description",
          "source": "The current parser requires the enum domain to be explicit.",
          "source_sha256": "7ba9f2933082a18a58b1a10d39de368595700d71f5b6ee858af91ca4f89b9e3f",
          "status": "current"
        },
        {
          "locator": "/removed_legacy/@name=CalculateTangentSpace/description",
          "source": "Mesh import configures ufbx to generate and normalize missing normals and tangents; there is no .fo3d directive.",
          "source_sha256": "621b83c502a9201496b3abe2a4f15de2fda0cca7e4334cd8310bf536c28af6e6",
          "status": "current"
        },
        {
          "locator": "/removed_legacy/@name=DrawSize/description",
          "source": "ModelInfo baking records aggregate and per-animation bounds; the client derives the offscreen frame for the active composition and pose.",
          "source_sha256": "56ff01715db1dd810a3a3d4fca0318e87d4f92553a9846541b8809a9c478334d",
          "status": "current"
        },
        {
          "locator": "/removed_legacy/@name=RenderFrame/description",
          "source": "Current model descriptions do not generate 2D render frames.",
          "source_sha256": "daba7fbe5229c991032a6120598ff259de8b88b7d403aef5c3da3d4aee3402a9",
          "status": "current"
        },
        {
          "locator": "/removed_legacy/@name=RenderFrames/description",
          "source": "Current model descriptions do not generate 2D render-frame sequences.",
          "source_sha256": "7716d43ffa8c5eba13573dd1c40142a6866324c42456ae24ddc5e5032e7b348b",
          "status": "current"
        },
        {
          "locator": "/removed_legacy/@name=ViewSize/description",
          "source": "The client projects baked model bounds and active child layers instead of accepting an authored interaction rectangle.",
          "source_sha256": "a414e452981ef0107d530bb11ad71bfa11a44158e6ce76838d4eb834fe472d88",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.baked-link-bounds/name",
          "source": "Baked geometry-link bounds",
          "source_sha256": "1aaf518bc8b33fa23cfcb9d27fc9d65b0a54333fbead663c7700c1a936e7127a",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.baked-link-bounds/rationale",
          "source": "Runtime framing selects direct-child bounds for active parent clips and falls back to the aggregate link envelope instead of walking and skinning combined-mesh vertices.",
          "source_sha256": "8f50f9cce65e96d54ad14f7932e3b5bb9270fe1d1cd17afc8c74eeaaaebcd095",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.baked-link-bounds/requirement",
          "source": "Every non-particle child link carries a validated aggregate root-space AABB plus per-animation AABBs for its parent's mapped clips; default and particle links carry no geometry payload.",
          "source_sha256": "8f3577c8290270029dd8ed1002cab4f580134d2c1d8acc2458d0fd30a04f53d1",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.first-animation-wins/name",
          "source": "First animation mapping wins",
          "source_sha256": "2b12d8e38b381cab1614f933ecfb4cb2dc0c323a7cd9a98adf03fb4d04eb2abe",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.first-animation-wins/rationale",
          "source": "Duplicates are skipped by both model-info validation and client registration.",
          "source_sha256": "4140881ef136083285b3b64c3f7c7504e2e79487511c9f04b6e5b9f0457a2af9",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.first-animation-wins/requirement",
          "source": "Do not declare the same state/action Anim pair more than once; only the first mapping is validated and registered.",
          "source_sha256": "d88aae4c01138dc273edbe4e7bc72a382797e392e9e84e5a9e9a9be36094efb0",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.include-replacements/name",
          "source": "Include replacement scope",
          "source_sha256": "cbadb0136e66d31e5538c1e9ece2fae96029f65233a55b6fbf2a71506a76380b",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.include-replacements/rationale",
          "source": "Replacement is plain text and does not understand token boundaries; choose placeholder names that cannot collide accidentally.",
          "source_sha256": "30983dc9cbbaca8a1a4e3689cf9bf79e74cb2f21acf5e6a796801aa2536df1df",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.include-replacements/requirement",
          "source": "Include arguments are name/value pairs replacing every literal %name% occurrence in the included text before tokenization.",
          "source_sha256": "56fb2ecbcd98149e3df0d3fc50af0458b21109e8bd0710599966065fc5e32cf7",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.layer-zero/name",
          "source": "Layer zero value is inactive",
          "source_sha256": "93c7a7c2acfc0031c18852fbbc2a46163c48eaf8920bca024af8f031272ce700",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.layer-zero/rationale",
          "source": "The composition loop skips zero layer values and the baker rejects links created with zero.",
          "source_sha256": "d14a520aacb01091515ebf829cdfba99efbb3740fedb2d440f4c39ccaf8413cf",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.layer-zero/requirement",
          "source": "A runtime layer value of zero selects no link; authored Root and Attach entries require a non-zero Value.",
          "source_sha256": "e76ca9aa1c843fac4e416a21bfc8fb8f4e3027478524b641532426db77b97598",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.lexical-syntax/name",
          "source": "Whitespace tokenization",
          "source_sha256": "ec76a0e45019e46944cf387de4dcddb1bdd3f99efc0d3972a233ee95633ef2b4",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.lexical-syntax/rationale",
          "source": "The parser strips comments and feeds each line through istringstream token extraction.",
          "source_sha256": "a68aa99202ee6833b5e313420c05f85c5cd24f87ed36635a9584246f30ebe9c7",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.lexical-syntax/requirement",
          "source": "Directives and arguments are whitespace-separated; # and ; start comments; there is no quoting or escaping for paths containing spaces.",
          "source_sha256": "da4f487dff721d849329cceba9c1b632293b6355acd5fccf9243a44ed23b3e35",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.mesh-before-info/name",
          "source": "Baker order",
          "source_sha256": "6710b164c91f2da40fab18641364fdaa0ba757b77bd2952a3268d3fff674ac54",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.mesh-before-info/rationale",
          "source": "Built-in baker orders are 4 for ModelMesh and 6 for ModelInfo.",
          "source_sha256": "d546e11d74ff2529c3ef9581a11c34f3e7ad084706ab8d7b34ab43617839b556",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.mesh-before-info/requirement",
          "source": "Run ModelMeshBaker before ModelInfoBaker so every mesh, hierarchy, material, animation, and cut reference can be validated from baked data.",
          "source_sha256": "f18e1d0ecdc59fb57744debc9853c43113f8f39a501d1b218680589ba4160f3b",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.multiple-directives/name",
          "source": "Sequential line parsing",
          "source_sha256": "6c42f20308e6bad8e774fe86509af807af4db091c81f0d2e444b7ceab4ef3e5a",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.multiple-directives/rationale",
          "source": "Compact layer entries are legal, but ordering changes which current link or mesh selector receives later modifiers.",
          "source_sha256": "063e5df6bba91dfb9b7b917b8c1ed097ee14169b00fb05127380ca350db9c249",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.multiple-directives/requirement",
          "source": "A line may contain multiple directives; each directive consumes its exact argument count and parsing continues with the next token.",
          "source_sha256": "69c6007204169c35c6493ec8697f1e218271de7b5aee37c8005e356faf31cf4f",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.parent-materials/name",
          "source": "Parent material inheritance",
          "source_sha256": "a400de3ff8c4db21bfdbd82dd1cecb547f80bf7f9a1e2648d90c9629474d08c4",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.parent-materials/rationale",
          "source": "The child copies the parent's current material state, not the imported default, and root descriptions have no parent context.",
          "source_sha256": "b5c8c5191e2f740a4d44dcdefd9dacf38e4200b7a885efd6fc0f117bc820f921",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.parent-materials/requirement",
          "source": "Use Parent or Parent_<mesh> only inside an attached child model; the parent mesh must already expose the requested texture slot or effect.",
          "source_sha256": "20713077c8007f8f2213797475b0f73aac322c798da64063a880d789b70af959",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.relative-paths/name",
          "source": "Path ownership",
          "source_sha256": "9a719c6ba18e53c9bd70a34481fd79162911e915a3c4df2245f455608dad0603",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.relative-paths/rationale",
          "source": "Moving a template or concrete description can change the asset paths contributed by directives inside that file.",
          "source_sha256": "032e6f206814eece34caf86364ec26707fff6d9e7e3a4b2e82106ffddcaa3063",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.relative-paths/requirement",
          "source": "Model, Include, Attach, and Cut paths resolve relative to their declaring .fo3d file; animation files resolve relative to the concrete description unless ModelFile is used; particle and effect paths are global baked-resource paths.",
          "source_sha256": "34b7a9995c043e4c5992b5beb6b5424296d565387a4f6d67b5353d793e24bfa1",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.runtime-composition/name",
          "source": "Layer changes rebuild composition",
          "source_sha256": "90226555fe900521224a6a4a31d59f71f842771294e8e95e218eb44e1c9e1bd8",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.runtime-composition/rationale",
          "source": "A layer change is not a cosmetic integer update; it changes the render graph and batching state.",
          "source_sha256": "fa0a28e2ddf0f98cca09ac91f8972b0c724373ace6ea12e97a5c43aadc337126",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.runtime-composition/requirement",
          "source": "Treat model-layer arrays as composition state: changing a value may create or remove children and particles, change materials/effects, disable geometry, apply cuts, and regenerate combined meshes.",
          "source_sha256": "55636344a8bcef69935b1384d57108e9f0a16191abbf698bcfa047d4faf8f34d",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.selector-order/name",
          "source": "Selector ordering",
          "source_sha256": "6030dfb7525b1ac3baa9f794922bbb56536e01a6a9129b92c70f1e4d3cc0e388",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.selector-order/rationale",
          "source": "Layer and Value point at a dummy link and clear Mesh; modifiers written before a real link is created are discarded.",
          "source_sha256": "f42d8683cbc1c8b5d50fa9fba31ca8c93a8cd894b17a73873342e20eb251ea4a",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.selector-order/requirement",
          "source": "After Layer or Value, author Root, Attach, or AttachParticles before link modifiers such as transforms, materials, disables, or cuts.",
          "source_sha256": "c1f7622e66d90f0d9c8bb4758215ba60d1207080cfb07b42fe73a25f4b65d79d",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.source-units-and-mirroring/name",
          "source": "Positive scale and Engine world units",
          "source_sha256": "627152e397720f2522f022a66e1c5efbc83e60c99ead757b2782a38720c75adb",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.source-units-and-mirroring/rationale",
          "source": "Negative transforms invert winding and normals; foreign unit scales produce impossible model-sprite frames. Failing the bake keeps both defects at their authored source.",
          "source_sha256": "b6ae460e7c16a9e05131ad1768af7c98297681f8b986c89def7e4b34a0c439f8",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.source-units-and-mirroring/requirement",
          "source": "Freeze mirrored mesh nodes to a positive transform before export, and author direct FBX/OBJ attachments within Baking.ModelAttachmentMinExtent and Baking.ModelAttachmentMaxExtent. Use a child .fo3d when an explicit description-level scale is required.",
          "source_sha256": "6697c0072abf56ce23ebaaf133f9356d1f07fd0aa6ff658bf501b4711fe9f5ad",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.template-files/name",
          "source": "Template naming",
          "source_sha256": "e4716378197ee71e5d60016c1510173426caa2fae29a21a60aee521c2bec89b8",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.template-files/rationale",
          "source": "Template files participate in include timestamps and parsing but ModelInfoBaker does not emit them as independent resources or animation-metadata sections.",
          "source_sha256": "81fda6e8ce20b3d165d50e2608522b1a3916721030f09ea929bf5b24a0299497",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.template-files/requirement",
          "source": "Name include-only files with a basename beginning TEMPLATE_; concrete files must not use that prefix.",
          "source_sha256": "09f08bd0c86102765425ef91d249b93609410a2fc60ca45e03ee7475300343b5",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.validation-boundary/name",
          "source": "Bake plus visible validation",
          "source_sha256": "a85b39052525b1a4847f90f005ab12ab8268bce08e53d07077416c73e12e0852",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.validation-boundary/rationale",
          "source": "Baking proves references and serialized structure; only the client renderer proves the composed visual result.",
          "source_sha256": "33011a194bdec7ae5ab314f8441e4748d89af2fc2d058ab3aaf719a882d611e4",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.validation-boundary/requirement",
          "source": "Require a clean resource bake for syntax and asset closure, then exercise the model in a visible client scene for scale, pose, layer composition, attachments, materials, cuts, and interaction bounds.",
          "source_sha256": "b853573b37bef8176a148660d12bfad5181c2bc5185f69c6766ec627f084b42c",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.zero-identity/name",
          "source": "Zero is transform identity",
          "source_sha256": "1d7024208da9a1c58a8d1a9baa378a647cecc971a634e429c59a52cb462fe119",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.zero-identity/rationale",
          "source": "Runtime SetAnimData skips zero fields, while parser accumulation deliberately makes template-only Scale* and Speed* useful.",
          "source_sha256": "23f69ba8e9dc55589bca2d16abf6c2f72a78a258d6835ddfaf7ecdaf093fa842",
          "status": "current"
        },
        {
          "locator": "/rules/@id=model-format.rule.zero-identity/requirement",
          "source": "Treat zero transform and Speed fields as no contribution. The + and * variants initialize a zero field from their operand before applying later operations.",
          "source_sha256": "2cec5f1a5f253a24b8a9192f5c9716044d62617c15f4db751461132cfde7eb76",
          "status": "current"
        },
        {
          "locator": "/scope/excluded",
          "source": [
            "project model catalogs, layer-number semantics, enum assignments, equipment policy, and gameplay timing",
            "DCC authoring tutorials for Blender, Maya, 3ds Max, or other external tools",
            "renderer backend implementation details and shader-language reference",
            "2D sprite frame offsets and sprite root motion"
          ],
          "source_sha256": "4816bd97d26a8c99f912c8d6b7c70779f73d2881154d0e5365fc4ec5035972f8",
          "status": "current"
        },
        {
          "locator": "/scope/included",
          "source": [
            ".fo3d lexical syntax, include templates, parser state, and path resolution",
            "model layers, root modifiers, mesh/model/particle attachments, transforms, materials, effects, and cuts",
            "FBX and OBJ mesh input, baked hierarchy requirements, compile-time model limits, and runtime composition",
            "animation integration points that connect to the dedicated model-animation reference"
          ],
          "source_sha256": "03db9a9083ef1cb7a06e7fb7448cb3de6a3ccc6a9df31a88efea750353c1744e",
          "status": "current"
        },
        {
          "locator": "/scope/support_note",
          "source": "The contract is generated for a pinned Engine revision. Projects own model catalogs, layer meanings, animation enums, visual policy, and concrete assets.",
          "source_sha256": "473a52216b278b13f5fb52900449f605aa848a33b216536b2f60ea056e6f2170",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.action-alias/description",
          "source": "Defines a one-step action-animation alias.",
          "source_sha256": "7fd953720e6fa6cf08e22612e627c44ab79277993d4e09204a7eed7e0b64e6a2",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.action-alias/runtime_effect",
          "source": "The alias is applied once before exact animation lookup and has priority over an exact source-key entry.",
          "source_sha256": "fbdb163372be08cf923248f0a81087ee5930cbc9f8bdc3c2720defbab5145686",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.allow-animation-geometry/description",
          "source": "Temporarily permits drawable geometry in one exact external Anim source while that source is repaired into a geometry-free animation file. The path resolves from the final concrete description, like an external Anim path.",
          "source_sha256": "769d9ebf8ebcea8f05b9d3899785dfff416ee0a069ae4af60722d83bc86e02ec",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.allow-animation-geometry/runtime_effect",
          "source": "Validation-only: the exception is not serialized. Duplicate, unselected, duplicate-resolved, or stale exceptions fail the bake, so remove each line with the repaired source export.",
          "source_sha256": "5a2335e4b81dcf0a33d7f7f9c1ddd8ccc963e01e3cfccda740803a3a3ceb8481",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.anim-layer-value/description",
          "source": "Overrides one layer value whenever the exact authored state/action pair is requested.",
          "source_sha256": "fb7c804ea2efccb3b621fd4d6722b207f2ee0b4d22979ea3dc98796ec41c5f3e",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.anim-layer-value/runtime_effect",
          "source": "The override is applied before redundant-call detection and model composition.",
          "source_sha256": "21c7cdedfd44c36674603a65193190645a619f0a56c87b592fc5592caa701bf1",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.anim-speed/description",
          "source": "Sets authored playback speed for one mapped state/action pair.",
          "source_sha256": "0f3ca496b570b95707e578fe0035846b652eb4fd96151588b907f2da9f25484f",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.anim-speed/runtime_effect",
          "source": "The speed multiplies runtime playback and divides the common effective duration.",
          "source_sha256": "87c329f2709b81b7c539fe2f2cb8d4cf0e9909fa983e2dd3b352a3785aa073dd",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.anim/description",
          "source": "Maps a state/action pair to a source animation clip. ModelFile selects the primary model source, ~ reverses playback, and Base selects the first source clip before conversion into the baked runtime rig.",
          "source_sha256": "2f45b782fdc66d1fefecc3028178d9dfd1074ac864014031185fddeef49a2240",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.anim/runtime_effect",
          "source": "The first declaration for a pair is registered; model-specific lookup and substitutions are described in the canonical model-animation guide.",
          "source_sha256": "7fc18d8ca1de66fc033fed7cfa56abc296b98a366f0f208449e251ee184c2425",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.attach-particles/description",
          "source": "Creates a layer-selected baked-particle link. The resource path is stored verbatim rather than relative to the description.",
          "source_sha256": "782bdb1bee25b458b624b8ef1854f026160cd5da0d22628fcdfbb29cd9f96fb3",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.attach-particles/runtime_effect",
          "source": "The client creates the particle on the Link bone and removes it when the activating layer value is no longer selected.",
          "source_sha256": "5adb78c4d8e079a52b191804de147f78fb37d65ee83d1aa4dbaf95b5206d0727",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.attach/description",
          "source": "Creates a layer-selected child-model link. The path is relative to the file containing the directive.",
          "source_sha256": "4cd22f5d7a0cb66874361073df227d53a8bac2205ded29d3bd446e4d9e2b0a44",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.attach/runtime_effect",
          "source": "With Link, the child is attached to one parent bone. Without Link, same-named child and parent bones are paired for a shared-skeleton attachment. A direct FBX/OBJ child has no description-level scale correction, so its static extent must stay within Baking.ModelAttachmentMinExtent and Baking.ModelAttachmentMaxExtent.",
          "source_sha256": "6e46b905a45732fd657d978c7ba980bc125ccad3724ffe9210070cb74e23267d",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.cut/description",
          "source": "Adds one or more baked cut volumes to selected composed-mesh layers. Hyphen separates layer and shape lists; - omits unskin fields and ~ reverses the unskin shape.",
          "source_sha256": "b5d6b2a4001f54533fdd5c5474265f26a395f7e2a8313dbca715f2d5d7529fba",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.cut/runtime_effect",
          "source": "Combined geometry inside or outside the authored cut shapes is removed; optional paired bones drive unskin handling.",
          "source_sha256": "d37fd8bcbca8ea21794541a43c38e95fdca1b38ac5909b5dd77f6a39379867f2",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.disable-backward/description",
          "source": "Disables WalkBack and RunBack selection for movement-pose animation.",
          "source_sha256": "51a440223fec1822c618a0826128e73374784a88064fd2ff99f2f122ee9245a2",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.disable-backward/runtime_effect",
          "source": "Movement always uses forward walk/run and SetMoveDir also aligns look direction.",
          "source_sha256": "80df31fa7fe23f7f578f86b8f32ef51ee8bf7f7dc718f7b8cb3af64331e3895a",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.disable-interpolation/description",
          "source": "Disables keyframe interpolation on the model animation controller.",
          "source_sha256": "d5c6d7b15ed26104b38fce5c5af6379168e29f3004c074f43446ef7ef48effd9",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.disable-interpolation/runtime_effect",
          "source": "The registered animation controller samples without interpolation.",
          "source_sha256": "c9421a866b3108f0dd2711583bda30a058cb2318b183b3c4d070a96bc750a012",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.disable-layer/description",
          "source": "Adds layer indices to the current link's disabled-layer set. Every value is range checked.",
          "source_sha256": "64b79766bc4d01fa3fc0e48c220771d31bb6854569f5b98028a0e9552cfb0e4c",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.disable-layer/runtime_effect",
          "source": "When the link is active, matching layer slots are skipped for that model instance.",
          "source_sha256": "d68b276bb48ab58ba60cdec0078ffce8f7fd74cd8e4305c97194d33c8c23929c",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.disable-mesh/description",
          "source": "Adds drawable mesh names to the current link's disabled set. All stores the empty wildcard.",
          "source_sha256": "63c8573a077091f873fe3afd8e5dbdda84a62941ac6fcc16fb72eaee8b30ef9a",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.disable-mesh/runtime_effect",
          "source": "When the link is active, matching meshes in that model instance are omitted from combined geometry.",
          "source_sha256": "1150ac566b7a8a7ac023f5856dd12e9f038e54b4d89b100089de3cf7775be35f",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.disable-shadow/description",
          "source": "Disables shadow rendering for every instance of the description.",
          "source_sha256": "4d84521196ccf48bf323f53cd6e0a8e8d6370c05f3499664abdcaa8ee52f4ba0",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.disable-shadow/runtime_effect",
          "source": "The model-level flag combines with the per-instance shadow toggle.",
          "source_sha256": "1b7867568a535a7df53f5ade51bc99b0383fe38333c5a5e902fd450bc8501dd6",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.effect/description",
          "source": "Overrides the draw effect on the selected mesh or all meshes. Parent copies the active parent effect from an attached-model context.",
          "source_sha256": "d30b36fbf8fe6d03f12d74942b8fbe1be37863c4f5ec6475fb2a72f3aeb2a09a",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.effect/runtime_effect",
          "source": "Meshes with different effects cannot share one combined draw batch.",
          "source_sha256": "e48cab26307fdabeed76dce4ffe6f80f1cb2fa372d43476f81210d8637dc4735",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.fast-transition-bone/description",
          "source": "Marks a validated base-model bone for immediate transition reset when a newly attached child uses that Link bone.",
          "source_sha256": "c8d8451b3109f2c7cd649793b2e0ed9c0b14bcc38f02c439bb1b240d2494bca3",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.fast-transition-bone/runtime_effect",
          "source": "The next body-animation track resets transition state for the marked attachment bone.",
          "source_sha256": "404d1e97908c74d2dac7eab0a16098eef5a2b69562823fd3a49ca5426a2cca83",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.include/description",
          "source": "Parses another description inline with optional %name% replacements. Include paths are relative, arguments must be paired, state is shared, and recursion is rejected.",
          "source_sha256": "2abd501174eb9c0d53d4bad816972200a48a39da4930d0694726c77bc6a7f437",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.include/runtime_effect",
          "source": "Included directives become part of the concrete description before validation and baking.",
          "source_sha256": "209fea7d0e03eb751997cee1c7887e17d7bc52db630eaf596924a490e3b25e66",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.layer/description",
          "source": "Selects a compile-time layer slot. Selecting a layer clears the mesh selector and moves subsequent modifiers to a dummy link until Root or Attach creates an active link.",
          "source_sha256": "508962b52c2010ff9582869bf61a4c6216e043cc790ea37cf4b3ca96107b8511",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.layer/runtime_effect",
          "source": "The selected layer participates only when its project-provided model-layer value is non-zero.",
          "source_sha256": "0340bde4644bb4d80c7e235092b49f48ba6b6300038ac35e79304c99398a20bf",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.link/description",
          "source": "Sets the parent bone for the current non-default link. It is ignored while the parser points at the default or dummy link.",
          "source_sha256": "ea76212b96a8dd47e4f06ae1b055da7c91ab4a4f165a0c97b07250dad11059cf",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.link/runtime_effect",
          "source": "A child model attaches as one object to this bone; particles require this bone. Empty child-model links do not consume it at runtime.",
          "source_sha256": "0eb17bfc15edc90b3f2129c48a98a5b1b0c4e43b1b74e9272819a94bd8148f06",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.mesh/description",
          "source": "Selects the drawable mesh targeted by following Texture and Effect directives. All clears the selector and targets every drawable mesh.",
          "source_sha256": "02b6bf003b03f4a8a734ce9f9a6426e24915e2a3d9800cdd2e8c9f047039a593",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.mesh/runtime_effect",
          "source": "Material overrides apply only to the selected mesh, or to all meshes when the selector is empty.",
          "source_sha256": "5e353623d7a688d3de443b544a4f2e0261a91ff75899f85868d58b6845f41249",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.model/description",
          "source": "Selects the primary baked mesh hierarchy and base source skeleton. The path is resolved relative to the file containing the directive; the last assignment wins.",
          "source_sha256": "e31f292bf3fb3b4d44e1ac9150f66821958d2b6034f0170b9af2ab51a7feb974",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.model/runtime_effect",
          "source": "The selected mesh supplies physical bones, drawables, skinning, and default materials; ModelInfoBaker separately converts selected source clips and compatible contributed joints into the immutable runtime rig.",
          "source_sha256": "8854d446b81c5a5cf3260734c5747b3b88da6d07a578256a88b547dbb1a3be39",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.root/description",
          "source": "Selects the default root modifier when no Layer was selected, or creates a layer/value root modifier when Layer and non-zero Value are active.",
          "source_sha256": "35987a6a42daf192d05670256ce264059c2eb4f86a0d5b44f328f87f90be94c3",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.root/runtime_effect",
          "source": "The selected modifier can transform the model, change speed/materials/effects, disable meshes/layers, and apply cuts without creating a child.",
          "source_sha256": "bd778eced76ef71bc8080db2ad0823d4f792b92ef1be57848b35c454e21408da",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.rotation-bone/description",
          "source": "Selects the validated torso/body rotation bone and enables the movement overlay controller.",
          "source_sha256": "8e08724f3d704ee748245b23700d69af0968b2b6455fc44e20179bc408735ba1",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.rotation-bone/runtime_effect",
          "source": "Look and move directions may diverge; body and configured head bones receive directional rotation while movement/turn animations play on the overlay controller.",
          "source_sha256": "3ef60bcebb3825f1b85fb5d3de1b9be9b95c00276793f48d25546245a1aa971b",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.scale-add/description",
          "source": "Applies the additive rule to all three scale axes.",
          "source_sha256": "01d13d93bea7714ebffcf0e1c387b072f3d78a825f6cf7f0cb7ed22e60a44f03",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.scale-add/runtime_effect",
          "source": "Provides a uniform additive scale adjustment for templates and selected links.",
          "source_sha256": "0f835df5aa08799fb36a4711434a0e527e87a4457c75cb43f83a8e5f3e867840",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.scale-multiply/description",
          "source": "Applies the multiplicative rule to all three scale axes.",
          "source_sha256": "5eed3104204672cfe3d3fbfcde585599031e2e7b8843165e6665cdb6ad35d243",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.scale-multiply/runtime_effect",
          "source": "Provides a uniform proportional scale adjustment for templates and selected links.",
          "source_sha256": "b6bdd103b7c661ff09634fb6cd128119528700656b61f273bbf7c4499c100f7b",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.scale-set/description",
          "source": "Sets ScaleX, ScaleY, and ScaleZ to the same authored value.",
          "source_sha256": "d2351d6f436eccbba1b0952333f352b588c51942bfe74fe80db1df42652c119c",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.scale-set/runtime_effect",
          "source": "A non-zero value contributes a uniform scale transform.",
          "source_sha256": "7e85364e191c9376df5ca5cf046c59f0295c2aede4eb03704441711fdd8c113b",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.state-alias/description",
          "source": "Defines a one-step state-animation alias.",
          "source_sha256": "81b16b6fded61b59012501f07cc965932b663890d4dad5b850a8f2097569aa6e",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.state-alias/runtime_effect",
          "source": "The alias is applied once before exact animation lookup and has priority over an exact source-key entry.",
          "source_sha256": "fbdb163372be08cf923248f0a81087ee5930cbc9f8bdc3c2720defbab5145686",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.subset/description",
          "source": "Obsolete compatibility spelling. The parser consumes one argument, logs a warning, and does not select a mesh.",
          "source_sha256": "0b76a10c8e94ce1a637db22f93985f8ceb8c7dc5aaae09bea27b15ccb61a1569",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.subset/runtime_effect",
          "source": "None. Replace it with Mesh; do not use it in new content.",
          "source_sha256": "35c9976bdc85a9dae7f138e6488aa2c9855d4c572821b3e48557c4d34d05c7a8",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.texture/description",
          "source": "Overrides one texture slot on the selected mesh or all meshes. Non-Parent names resolve relative to the current model mesh; Parent copies the active parent texture from an attached-model context.",
          "source_sha256": "494a2f1b67857724569a27f1dde363d4afda527023f0322c0429204cff4d37e5",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.texture/runtime_effect",
          "source": "The override participates in mesh batching and texture-atlas coordinate adjustment.",
          "source_sha256": "ca2aafa4d9cc6faa410977d816f3e451c661909f4d77958443bdd12ec285b5ea",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.transform-add/description",
          "source": "Adds to one transform or speed field. When the current field is zero, the operand becomes the initial value.",
          "source_sha256": "e66fcf02c8d9c87dd3ab5f789e70e066904cc2234152043ae6e73174a7079b6e",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.transform-add/runtime_effect",
          "source": "Includes can layer additive adjustments without requiring a preceding base assignment.",
          "source_sha256": "272b3ddb15f20dbdadf8dec4275057689244d093da9c385fd213f819047136e6",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.transform-multiply/description",
          "source": "Multiplies one transform or speed field. When the current field is zero, the operand becomes the initial value.",
          "source_sha256": "51e5844aa25d5c81d46ab3c32d57abf1e16b9dca5c7aec39cd694500859e180e",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.transform-multiply/runtime_effect",
          "source": "Includes can apply proportional adjustments while preserving zero as the runtime identity sentinel.",
          "source_sha256": "bd829a5a8ddac4b69acbfaaf5484059b1bb00ea07052070470e1f63e949f0cf8",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.transform-set/description",
          "source": "Sets one transform axis or playback-speed multiplier on the current link. Rotation values are authored in degrees.",
          "source_sha256": "263a515cdb64703ceff56659db93cd61d2ed5e3b532daea88969a42548ff73ed",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.transform-set/runtime_effect",
          "source": "Non-zero values multiply the model transform or speed chain. Zero means no contribution at runtime.",
          "source_sha256": "517ad5912ec80df6a97e3c0b75925f668061ccda0b1b7b4a2d05bf0be88be340",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.value/description",
          "source": "Selects the exact non-zero value that activates the next Root or Attach entry. Selecting a value also clears the mesh selector and current link.",
          "source_sha256": "e548c9f028ef335d7c3302800fa7f2a37750cca8794eb6b6bb5ea7e1725f36d1",
          "status": "current"
        },
        {
          "locator": "/tokens/@id=model-format.token.value/runtime_effect",
          "source": "A link is active only when the runtime layer array contains this exact value at the selected index.",
          "source_sha256": "6f3a50d8f41b23b705aa2b3916b125b2f9630805b57079a058e9518a594a3aa6",
          "status": "current"
        }
      ]
    },
    "native-extension": {
      "source_model": "Docs/generated/native-extension.json",
      "entry_count": 44,
      "current_count": 44,
      "missing_count": 0,
      "complete": true,
      "entries": [
        {
          "locator": "/binding_rules/@id=native-extension.binding.compatibility/name",
          "source": "Compatibility",
          "source_sha256": "b37ddf1f6e0fac69414c5ed7f6e65f8f0a7ea1922afd602483392d695ee92065",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=native-extension.binding.compatibility/rationale",
          "source": "Registered metadata and most hook presence feed generated compatibility state; binary compatibility across independent revisions is not promised.",
          "source_sha256": "f2ba75a9e2f0b7c0fc95321bc106115da21e77eff414cebeac89a792edbfee25",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=native-extension.binding.compatibility/requirement",
          "source": "Rebuild and rebake every project-side native metadata change against the pinned engine revision.",
          "source_sha256": "78b435b4a913ff9df11eda99a30a74530dfd8cdefa60647a76e123f7d7ad19a1",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=native-extension.binding.dependencies/name",
          "source": "Dependencies",
          "source_sha256": "2e41b118eb209c139f2bcbf690486f6e1509ab978aa96feb053877a70a1a5a09",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=native-extension.binding.dependencies/rationale",
          "source": "AddEngineSources owns source routing only; project dependency and distribution policy is not inferred by the engine.",
          "source_sha256": "3a849275448ecff43f0b47a81fe361f1d59ab5f57a3ee4e9023009f30ac04011",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=native-extension.binding.dependencies/requirement",
          "source": "Declare project libraries, include paths, compile definitions, platform guards, and package payloads in the embedding project.",
          "source_sha256": "bff2fbcf529ea02b533e0bc2d30ecdaf5bce86449f4fba78f891dd1cd39a2fa1",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=native-extension.binding.namespace/name",
          "source": "Engine namespace",
          "source_sha256": "8e20e63a0244d20863642140e5e3d07680885ead340c25a602f735365d236bb4",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=native-extension.binding.namespace/rationale",
          "source": "The same source must compile with the configured engine namespace enabled or disabled.",
          "source_sha256": "a2c74254d598bae37c20057ea90c4c84c095ebf4ee4116d4e0695fdc17b255ee",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=native-extension.binding.namespace/requirement",
          "source": "Declare metadata exports inside FO_BEGIN_NAMESPACE/FO_END_NAMESPACE and define them with FO_NAMESPACE.",
          "source_sha256": "10b24ec898ef454ba7f12a54e6735d4b57e9134233346f21e5b84e230d469ad9",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=native-extension.binding.pointer-contract/name",
          "source": "Pointer contract",
          "source_sha256": "4d4296041e4a9a656af97bed765cd8e03cca6bfb10d8ee3468c5259d10a098de",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=native-extension.binding.pointer-contract/rationale",
          "source": "Codegen rejects raw handle pointers and nullability must agree across native and script declarations.",
          "source_sha256": "d73e699a548b4747093a8886bc8f7ce4b122dbbc1708b1c7ed1169669605434c",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=native-extension.binding.pointer-contract/requirement",
          "source": "Use ptr<T>/nptr<T> for engine handle borrows and the engine owning-pointer vocabulary for ownership.",
          "source_sha256": "8cb5f6744ee5cd3787e504a0947ca6fba07438420afbf7e4fb016342343d89e7",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=native-extension.binding.registration-order/name",
          "source": "Registration order",
          "source_sha256": "c28585c33db0e97cc4138e68a3ba6658e0a85053bf05ed8200bb299816de7cb9",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=native-extension.binding.registration-order/rationale",
          "source": "Project files must enter role source lists and FO_SOURCE_META_FILES before codegen and core libraries are configured.",
          "source_sha256": "d4b91b5eb2e834b659692f7499712750b9059b7cbffab0931e913d1f91acd98c",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=native-extension.binding.registration-order/requirement",
          "source": "Call AddEngineSources after AddThirdPartyLibraries and before the RegisterEngineSources stage entrypoint.",
          "source_sha256": "02df0ae8c220a7814085fb0fe1c33d99248d342be7885c1fbe8951d05ab69bab",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=native-extension.binding.script-export/name",
          "source": "Script export frontier",
          "source_sha256": "19d8228d5961496a9604eb044119b7cd116b215157405e19b1886a6278a0e1e4",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=native-extension.binding.script-export/rationale",
          "source": "Codegen parses the declaration and emits the native/script registration boundary.",
          "source_sha256": "f431a750525a373442a4a7f3568e1579a3cc87e60dd60e2494bc8b3b91ee3b25",
          "status": "current"
        },
        {
          "locator": "/binding_rules/@id=native-extension.binding.script-export/requirement",
          "source": "Use FO_SCRIPT_API with a supported ///@ metadata tag; do not add stack-trace entry macros to exported bodies.",
          "source_sha256": "5ec863dde2360c074e5048e714e4c9e361c1fd3f50477853118618dbdf0c3201",
          "status": "current"
        },
        {
          "locator": "/description",
          "source": "Runtime-owned native extension composition and engine-hook contract for FOnline embedding projects.",
          "source_sha256": "cc1833b4158e8d1f1ad147c4d2850ee7d05170c53799e1f9caaaf986b30212bc",
          "status": "current"
        },
        {
          "locator": "/hooks/@id=native-extension.hook.ApplicationInitHook/default_behavior",
          "source": "No-op before application runtime initialization continues.",
          "source_sha256": "68b161088d05c59581b8248ac25eecb340670673b9d286049395c97fcfec004f",
          "status": "current"
        },
        {
          "locator": "/hooks/@id=native-extension.hook.ApplicationInitHook/description",
          "source": "Inspect or adjust application startup settings after platform initialization.",
          "source_sha256": "5156af575415d7920f6e7fb4cf7901b5b3a8d0f4c4dcb740a5264f5fad6df0d6",
          "status": "current"
        },
        {
          "locator": "/hooks/@id=native-extension.hook.ApplicationShutdownHook/default_behavior",
          "source": "No-op during guarded client/application shutdown.",
          "source_sha256": "f8486422f478a006e015a9a53cb2d325330afacc78c28435786c49322a1a402c",
          "status": "current"
        },
        {
          "locator": "/hooks/@id=native-extension.hook.ApplicationShutdownHook/description",
          "source": "Release project-owned process services during application shutdown.",
          "source_sha256": "402d0589e454dc84c59bcc4f788c9d0e93d3e936df9095ab4848256025122b15",
          "status": "current"
        },
        {
          "locator": "/hooks/@id=native-extension.hook.CheckCritterVisibilityHook/default_behavior",
          "source": "Return CritterVisibilityMode::Full.",
          "source_sha256": "71c485e717450f4ed5eb72fb1a9fbaddfbba702a7825e7fc9cb8de1af2269c59",
          "status": "current"
        },
        {
          "locator": "/hooks/@id=native-extension.hook.CheckCritterVisibilityHook/description",
          "source": "Apply project visibility policy between an observer and target critter.",
          "source_sha256": "065c7b355a5ef8baf8ce3a44f7d672e81632aa70a72ae69e2568a213a436d553",
          "status": "current"
        },
        {
          "locator": "/hooks/@id=native-extension.hook.CheckItemVisibilityHook/default_behavior",
          "source": "Return true.",
          "source_sha256": "f8df8ad98236e18212def7cb864721963b62e315dc2c47cd8f54fe4a299ba076",
          "status": "current"
        },
        {
          "locator": "/hooks/@id=native-extension.hook.CheckItemVisibilityHook/description",
          "source": "Apply project visibility policy between an observer critter and map item.",
          "source_sha256": "3de105d7f50aadbc323be41a4d32db540b8a55b1089e7a785a8be9b95a6fc37e",
          "status": "current"
        },
        {
          "locator": "/hooks/@id=native-extension.hook.ClientInitHook/default_behavior",
          "source": "No-op while client initialization continues.",
          "source_sha256": "276bd557202f6c382534fe2af257c224f897618c74b825f5eef821d44b18c606",
          "status": "current"
        },
        {
          "locator": "/hooks/@id=native-extension.hook.ClientInitHook/description",
          "source": "Initialize project-owned client services and engine user data.",
          "source_sha256": "47d6e2bb9809c0ec34bd5b8e5d22eea8416225c9f65bdc3f4215c0ac14e4f25d",
          "status": "current"
        },
        {
          "locator": "/hooks/@id=native-extension.hook.ClientStartupSettingsHook/default_behavior",
          "source": "No-op before standalone or embedded client startup.",
          "source_sha256": "c6c2d1b042d506303b17964ba2947d2ec15bbc4ee870a359763ab54c1d86a4c1",
          "status": "current"
        },
        {
          "locator": "/hooks/@id=native-extension.hook.ClientStartupSettingsHook/description",
          "source": "Adjust per-client startup settings, including embedded multi-client instances.",
          "source_sha256": "8a2113a1e0aa1b610e9248f292a14ab746b30edb24129347b951cae4cef3650f",
          "status": "current"
        },
        {
          "locator": "/hooks/@id=native-extension.hook.ServerInitHook/default_behavior",
          "source": "No-op while server initialization continues.",
          "source_sha256": "4c63b665571ec02ecbe60c68539d94bbd73642e6f5af71857743a4a51f7f703d",
          "status": "current"
        },
        {
          "locator": "/hooks/@id=native-extension.hook.ServerInitHook/description",
          "source": "Initialize project-owned server services and engine user data.",
          "source_sha256": "1e4ed6eea885aac480ee4d56a2e77f541f888bf16f691f1278d661976de624db",
          "status": "current"
        },
        {
          "locator": "/hooks/@id=native-extension.hook.SetupBakersHook/default_behavior",
          "source": "Register no project-owned bakers.",
          "source_sha256": "4c53dc7581dcb6dd08df42ee3ed32c41564e56559b6f0e7f1f27359296312a19",
          "status": "current"
        },
        {
          "locator": "/hooks/@id=native-extension.hook.SetupBakersHook/description",
          "source": "Append project-owned resource bakers requested by the active bake configuration.",
          "source_sha256": "98f70957d4d8431271e95ad9f3e59d989f491d35d0a6e0086ddee85926463a54",
          "status": "current"
        },
        {
          "locator": "/roles/@id=native-extension.role.baker/description",
          "source": "Resource-baker extensions shared by Baker, Mapper, both focused viewers, and ASCompiler; BAKER is not a script export target.",
          "source_sha256": "c3c65e83dfb31cbdb59f47920cbec31aa58a28f18707e9328bb8cfda40f772d9",
          "status": "current"
        },
        {
          "locator": "/roles/@id=native-extension.role.client/description",
          "source": "Client runtime code; server controller paths, Mapper, both focused viewers, BakerLib, and ASCompiler link ClientLib, while only client and mapper are script export targets.",
          "source_sha256": "28c659180fe1f418d43a7a6bd8ba8b090673c72a1642bd4ea4e534cb52623739",
          "status": "current"
        },
        {
          "locator": "/roles/@id=native-extension.role.common/description",
          "source": "Code shared by every enabled engine role; use only for genuinely common dependencies and hooks.",
          "source_sha256": "0e383cc61d6a26f55548a3eb2e654cbf39d69f36f4a066b329e7151189e75055",
          "status": "current"
        },
        {
          "locator": "/roles/@id=native-extension.role.mapper/description",
          "source": "Mapper-only native tooling and mapper script exports.",
          "source_sha256": "e6eda0fe09f9ec37510fa43c11dd327f83d7118f17c997da897b0cdf9dd058fd",
          "status": "current"
        },
        {
          "locator": "/roles/@id=native-extension.role.server/description",
          "source": "Authoritative server-only code and script exports.",
          "source_sha256": "4665ba97750ad4e7dc81bf1e4075c08b69a24c8584435616cbfd1b68a9cf1d93",
          "status": "current"
        },
        {
          "locator": "/roles/@id=native-extension.role.tests/description",
          "source": "Project-native Catch2 translation units compiled directly into enabled unit-test and coverage executables; TESTS has no runtime or script-export consumer.",
          "source_sha256": "5a857fc261e7d7443dbfdd6e6f8e36b8aa5e95c75417d6db79a8d88f4bda5443",
          "status": "current"
        },
        {
          "locator": "/scope/excluded",
          "source": [
            "project-local extension implementations, dependencies, settings, persistence, and release policy",
            "third-party SDK ABI and project-specific native library packaging",
            "client host/runtime updater ABI and compatibility across independently built engine revisions",
            "native scripting backend internals controlled by FO_NATIVE_SCRIPTING"
          ],
          "source_sha256": "f5d1144bcb6036f57862898b51a1a8fb43d386b779f96e4eb770ebeb1324a520",
          "status": "current"
        },
        {
          "locator": "/scope/included",
          "source": [
            "role-scoped project C++ source registration through AddEngineSources",
            "metadata/codegen participation of registered project sources",
            "optional EngineHook declarations, signatures, owning roles, call sites, and generated fallback behavior",
            "native binding and namespace rules required by generated script exports"
          ],
          "source_sha256": "69780269ea713e70f289a11f64a0fa9795ac3fc4f83599035dd25c4ce01d427e",
          "status": "current"
        },
        {
          "locator": "/scope/support_note",
          "source": "Source-compatible use is documented for a pinned engine revision; independently built binary compatibility is not promised.",
          "source_sha256": "baf95757e0bb8a33434ff05201d6e07c846e32a8bee219bb0fe749a60001cdfe",
          "status": "current"
        }
      ]
    },
    "package": {
      "source_model": "Docs/generated/package.json",
      "entry_count": 66,
      "current_count": 66,
      "missing_count": 0,
      "complete": true,
      "entries": [
        {
          "locator": "/cli/arguments/@id=package.cli.argument.arch/description",
          "source": "architectures to include (divided by +)",
          "source_sha256": "ab8d09f9d5bcf5965a1eccad622c9dbe7e838b0c6ba3aa38a42d99804cac036c",
          "status": "current"
        },
        {
          "locator": "/cli/arguments/@id=package.cli.argument.binary_output_postfix/description",
          "source": "suffix appended to binary output dir names",
          "source_sha256": "1db447979446c1832dc28d82b16cbb174aad3b02f41b48cada1c99dfede5433c",
          "status": "current"
        },
        {
          "locator": "/cli/arguments/@id=package.cli.argument.buildhash/description",
          "source": "build hash",
          "source_sha256": "f9266c7f36c9ffabb805ff021eb8db871069d6b2c60da6f85321cb611eefb61a",
          "status": "current"
        },
        {
          "locator": "/cli/arguments/@id=package.cli.argument.bundle_compress_level/description",
          "source": "override the bundle compression level (zlib scale: 0 stores, 9 is the strongest)",
          "source_sha256": "c43e9ea3f9e604aa2dc432064c47f293c71983ae1ea5992128d33df69dddffc0",
          "status": "current"
        },
        {
          "locator": "/cli/arguments/@id=package.cli.argument.config/description",
          "source": "config name",
          "source_sha256": "8c398af6b2e17beee40d8ad430d470d9e3e2792bc4c1787f0ccf4419e2f46209",
          "status": "current"
        },
        {
          "locator": "/cli/arguments/@id=package.cli.argument.devname/description",
          "source": "Dev game name",
          "source_sha256": "4b76d901e2730953a72b5a8e4ef6deb3653bc207d391f688e556288c5336acb7",
          "status": "current"
        },
        {
          "locator": "/cli/arguments/@id=package.cli.argument.expect_client_runtime/description",
          "source": "Client variant whose runtime payload this server package must distribute, as Platform:arch[:postfix]. Repeatable",
          "source_sha256": "7ac6921753c3b43b98f6dcb1073d58d6555331b367d830c899e94afe0da00d7b",
          "status": "current"
        },
        {
          "locator": "/cli/arguments/@id=package.cli.argument.input/description",
          "source": "input dir (from FO_OUTPUT_PATH)",
          "source_sha256": "71da9b18461a00ebf01481a93e1fadd776968220ec1dce44ec47dfd521324c9a",
          "status": "current"
        },
        {
          "locator": "/cli/arguments/@id=package.cli.argument.maincfg/description",
          "source": "Main config path",
          "source_sha256": "109059c923ff57b7cd47620f64b1604dc6d76b697b891f3bc6723c38b241cbce",
          "status": "current"
        },
        {
          "locator": "/cli/arguments/@id=package.cli.argument.nicename/description",
          "source": "Representable game name",
          "source_sha256": "9e423ef089311595b7774f1a7da08e178a55ca1e7bd7266404756fd5530b96de",
          "status": "current"
        },
        {
          "locator": "/cli/arguments/@id=package.cli.argument.output/description",
          "source": "output dir",
          "source_sha256": "10f0fa381602de9a63214fb2760c0dac2b09e0d9edfc5f92c4b21180270bfe5c",
          "status": "current"
        },
        {
          "locator": "/cli/arguments/@id=package.cli.argument.pack/description",
          "source": "package type",
          "source_sha256": "77d59652e3bc18f893cdaa9e2cd7bb4f43cadf7001b23b6f484a69e3d12f281f",
          "status": "current"
        },
        {
          "locator": "/cli/arguments/@id=package.cli.argument.platform/description",
          "source": "platform type",
          "source_sha256": "caff39e103adc9a3ba5c88a33555b1118d301d33dd57dde05d24123b387461af",
          "status": "current"
        },
        {
          "locator": "/cli/arguments/@id=package.cli.argument.resource_pack_compress_level/description",
          "source": "override the resource pack compression level (zlib scale: 0 stores, 9 is the strongest)",
          "source_sha256": "8bdeed3192930b67e8098007fe6790966ca76cf55598999b2a8d7a5269ebe9bd",
          "status": "current"
        },
        {
          "locator": "/cli/arguments/@id=package.cli.argument.resource_pack_hash_library/description",
          "source": "explicit host FNV-1a library; otherwise discover it under input Binaries/BuildTools-*",
          "source_sha256": "5905b4e79a8f7a4283b518de0cdbee04056eefddeb8bc9b2f04a72e3f59e9a3e",
          "status": "current"
        },
        {
          "locator": "/cli/arguments/@id=package.cli.argument.resource_pack_jobs/description",
          "source": "maximum concurrent resource archives (default: FO_RESOURCE_PACK_JOBS or 1)",
          "source_sha256": "ca07c91d43d723b438617d5e813296addc31deb3a39913741f69fefcdc495f8d",
          "status": "current"
        },
        {
          "locator": "/cli/arguments/@id=package.cli.argument.target/description",
          "source": "package target type",
          "source_sha256": "2c1f7b79e49ccc8890357c8defc768c79d51a8c7919d853ae61efc423a3f2aa4",
          "status": "current"
        },
        {
          "locator": "/cli/description",
          "source": "FOnline packager",
          "source_sha256": "90c6a6e8f9678a9624e853ed62b47f16eb5d1a31911ef007719254b5353dc2dc",
          "status": "current"
        },
        {
          "locator": "/declaration/clauses/@id=package.declaration.DefinePackage.clause.BINARY/arguments/@name=arch/description",
          "source": "Architecture key or plus-separated architecture keys.",
          "source_sha256": "27a7660129228bdc5a8170b7201c04e0dae4f1205c4edab90b81703977681648",
          "status": "current"
        },
        {
          "locator": "/declaration/clauses/@id=package.declaration.DefinePackage.clause.BINARY/arguments/@name=pack/description",
          "source": "Plus-separated pack tokens.",
          "source_sha256": "ee5e2b382967a150b1c7295f01896123c8fe68689f6bb7020993b2681ecab39c",
          "status": "current"
        },
        {
          "locator": "/declaration/clauses/@id=package.declaration.DefinePackage.clause.BINARY/arguments/@name=platform/description",
          "source": "Packager platform name.",
          "source_sha256": "e93556ee5277c57985e58bc46dc4cdf081bb9b71c53dfca098a7a687fc6e9a19",
          "status": "current"
        },
        {
          "locator": "/declaration/clauses/@id=package.declaration.DefinePackage.clause.BINARY/arguments/@name=target/description",
          "source": "Packager target name.",
          "source_sha256": "48899a304ae2623c6bd1bc3a6037f5df0496a6645200b9482040529d510bb65c",
          "status": "current"
        },
        {
          "locator": "/declaration/clauses/@id=package.declaration.DefinePackage.clause.BINARY/description",
          "source": "Add one target/platform/architecture payload, optionally followed by POSTFIX and a value that apply together only to this binary entry.",
          "source_sha256": "b80a90c912c657152c2176683c2a67a6d1db140762fed44db31838cc909abd51",
          "status": "current"
        },
        {
          "locator": "/declaration/clauses/@id=package.declaration.DefinePackage.clause.CONFIG/arguments/@name=config/description",
          "source": "Default project subconfig baked into every binary entry.",
          "source_sha256": "34a92339dc7ba73f793a570d9867c543b1561677115ad8e619033d69cdbc7927",
          "status": "current"
        },
        {
          "locator": "/declaration/clauses/@id=package.declaration.DefinePackage.clause.CONFIG/description",
          "source": "Set the package-wide default config.",
          "source_sha256": "fc37b232bd8bcc9ae178373493301a927f16e437f2bef693afed127299d088b0",
          "status": "current"
        },
        {
          "locator": "/declaration/description",
          "source": "Declare a named package target and one or more binary payloads.",
          "source_sha256": "d62b60f746977bfad4bc6ff43b0f3e8afc3bc10be82a2994665a4d28bdc095b4",
          "status": "current"
        },
        {
          "locator": "/declaration/options/@id=package.binary-option.POSTFIX/description",
          "source": "Select the matching postfixed binary input and isolate this entry's target directory, packaged build name, runtime-update payloads, and MSI name without affecting sibling BINARY entries.",
          "source_sha256": "08c9a7d468f56bf3eb81f7f9625dc4aecce61c2dfe13dfa3c8362548d8f34fbf",
          "status": "current"
        },
        {
          "locator": "/packager/description",
          "source": "Stage one declared binary payload, patch runtime data, and emit selected artifacts.",
          "source_sha256": "016193f16b1064ce0f1edda2e602b2733a9e600d3ef96e627306c7a85011440e",
          "status": "current"
        },
        {
          "locator": "/packs/@id=package.pack.Apk/description",
          "source": "Run Gradle and copy the selected signed/debug APK beside the staged project.",
          "source_sha256": "a7a41e65c179cf5862f67e7b01096bf86b7f502ac65bfcbc96a27adcc17bfdcc",
          "status": "current"
        },
        {
          "locator": "/packs/@id=package.pack.AppImage/description",
          "source": "Reserved token; the current Linux packager emits no AppImage artifact.",
          "source_sha256": "300b90223f5551cdd842bb0813d875924b1d0507f41296f726d3b901c0ffca72",
          "status": "current"
        },
        {
          "locator": "/packs/@id=package.pack.Daemon/description",
          "source": "Include the regular server and Linux Daemon variants.",
          "source_sha256": "cd371a715cebb0df58319a75a83f6d616e7b0d586815ccc99eacc08c94723552",
          "status": "current"
        },
        {
          "locator": "/packs/@id=package.pack.Debug/description",
          "source": "Select debug binary inputs; Android uses assembleDebug.",
          "source_sha256": "3f16217dee573631d0af5aca734fef07e8f2cf1eb1ec42ad9275639e2b60e741",
          "status": "current"
        },
        {
          "locator": "/packs/@id=package.pack.Headless/description",
          "source": "Include the regular and Headless binary variants.",
          "source_sha256": "56e65ca532e312b1b7695451f543f0ff438bc1b17f22bfe70dd13e40c2cb0d8c",
          "status": "current"
        },
        {
          "locator": "/packs/@id=package.pack.Lib/description",
          "source": "Package the shared-library application instead of the executable.",
          "source_sha256": "564c38744ab18bc4758a2d45839ec11f2442b5c1cb841743168180f9842ab2bf",
          "status": "current"
        },
        {
          "locator": "/packs/@id=package.pack.NoRes/description",
          "source": "Skip resource staging and embedded/config/build-name patching.",
          "source_sha256": "d952b4645908f472bb1123dd151e8049951ee00d30a8ef9e7d9f9c1510d3fd6f",
          "status": "current"
        },
        {
          "locator": "/packs/@id=package.pack.OGL/description",
          "source": "Include the regular and OpenGL client variants and patch ForceOpenGL=1.",
          "source_sha256": "68bb64a87f2399e5b033b19963c8839adfd7377155a7de575c8655386b452a92",
          "status": "current"
        },
        {
          "locator": "/packs/@id=package.pack.OnDemandProfiling/description",
          "source": "Include the regular and on-demand-profiling binary variants.",
          "source_sha256": "b50065f47241bf367f1a1f8003a0c7f114eaddd05f17c8eef230b3c76f2652bf",
          "status": "current"
        },
        {
          "locator": "/packs/@id=package.pack.Raw/description",
          "source": "Retain the staged target directory after finalization.",
          "source_sha256": "fc1aa26d28701d249b0280d4e968458adf36bdf511d84403f7b12ab50a1f9916",
          "status": "current"
        },
        {
          "locator": "/packs/@id=package.pack.Root/description",
          "source": "Merge the staged target directory into the package output root.",
          "source_sha256": "9089ccaf480be2c1aed238ce8a21d580249f4d2f7e5bb4e8ba79e3a3f52512f5",
          "status": "current"
        },
        {
          "locator": "/packs/@id=package.pack.Service/description",
          "source": "Include the regular server and Windows Service variants.",
          "source_sha256": "bd0d17c57f12f7a4d1f38f0d884aa824f2f4f808306c5f17a683d7e6166a7e84",
          "status": "current"
        },
        {
          "locator": "/packs/@id=package.pack.SingleZip/description",
          "source": "Append the staged target directory to one package-wide ZIP; identical same-name members are stored once, while conflicting contents fail packaging.",
          "source_sha256": "6ccf4688bd4bd2ebbad7e935b121a29245893531fb6297463d9351c05ec8f5ef",
          "status": "current"
        },
        {
          "locator": "/packs/@id=package.pack.Tar/description",
          "source": "Create an uncompressed tar archive.",
          "source_sha256": "5a6276a83cb99aef50330e8d0dee004f9e690060877026c2ceb5a15308144c1f",
          "status": "current"
        },
        {
          "locator": "/packs/@id=package.pack.TarGz/description",
          "source": "Create a gzip-compressed tar archive.",
          "source_sha256": "80147b179b5672a6c8fdcbd40cf041b71dd48b9afaf5c104c5a69d4628698ae5",
          "status": "current"
        },
        {
          "locator": "/packs/@id=package.pack.TotalProfiling/description",
          "source": "Include the regular and total-profiling binary variants.",
          "source_sha256": "43356df5c9b0f8254f5566fc8f1a0a127eee012c99be7402792d21d404ea5675",
          "status": "current"
        },
        {
          "locator": "/packs/@id=package.pack.WebServer/description",
          "source": "Add the local simple-web-server.py helper to the browser payload.",
          "source_sha256": "74e5e298af210612f9d3831d3eda086914ddfe49f174f5aa6d0c7271eed2d4cd",
          "status": "current"
        },
        {
          "locator": "/packs/@id=package.pack.Wix/description",
          "source": "Build a required MSI from the staged Windows client payload; POSTFIX is appended to the installer base name.",
          "source_sha256": "65dcd8b50c73abf1fcbfd0b22b370604cd6301f3e7952b5fe1f93b727b93f79c",
          "status": "current"
        },
        {
          "locator": "/packs/@id=package.pack.Zip/description",
          "source": "Create a deterministic ZIP beside the staged target directory.",
          "source_sha256": "53a80c08947b4eb5f4f4b4e48c5d0420fdcd83ba16aaf98fc1b6cdcf8612862e",
          "status": "current"
        },
        {
          "locator": "/payloads/@id=package.payload.Android/description",
          "source": "Generated Gradle project containing libmain.so per ABI and baked resources under app assets; managed assemblies and the prepared runtime remain in the resource-pack assets. Apk optionally emits a sibling APK.",
          "source_sha256": "78d465bb698d6099a4f407c80138a52b60c98b0aad1e5cbaf57032dcf64967ba",
          "status": "current"
        },
        {
          "locator": "/payloads/@id=package.payload.Linux/description",
          "source": "Patched executable or shared runtime, companion files, and resource ZIP directories unless NoRes is selected. Managed builds carry target-specific managed assemblies and the prepared runtime inside the selected resource pack.",
          "source_sha256": "0870b2e5ef2892abfe0415f33ecb25db755e8ccdbda5fde29ef1d1a7ba687521",
          "status": "current"
        },
        {
          "locator": "/payloads/@id=package.payload.Web/description",
          "source": "JavaScript, patched Wasm, HTML shell, Resources.data/Resources.js preload files, target-specific managed assemblies and runtime resources when enabled, and an optional local server helper.",
          "source_sha256": "7c3c8451f4c4e2561286f67cf3acc4adb6ab4a0c098714f527d8bc882cd3e609",
          "status": "current"
        },
        {
          "locator": "/payloads/@id=package.payload.Windows/description",
          "source": "Patched PE executable or DLL, companion runtime files, PDBs when present, and resource ZIP directories unless NoRes is selected. Managed builds carry target-specific managed assemblies and the prepared runtime inside the selected resource pack. win32-win7 and win64-win7 read the canonical win32/win64 binary entry selected by the same per-binary POSTFIX.",
          "source_sha256": "6befa22963e7f9f37a1508351fb234a5fc90b158cc2a4f1a498965ecd77d8b04",
          "status": "current"
        },
        {
          "locator": "/payloads/@id=package.payload.iOS/description",
          "source": "No payload is emitted in the current repository state.",
          "source_sha256": "c6a13075ee741bdce8ed6ec3ae55e960b6de544cce2133c1ba36419434075c13",
          "status": "current"
        },
        {
          "locator": "/payloads/@id=package.payload.macOS/description",
          "source": "No payload is emitted in the current repository state.",
          "source_sha256": "c6a13075ee741bdce8ed6ec3ae55e960b6de544cce2133c1ba36419434075c13",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=package.platform.Android/description",
          "source": "Gradle client project with native ABI libraries, assets, and optional APK.",
          "source_sha256": "ec28de9a431116c93e61b143e7a2df55c3e413c8f2fadafdf4837edb542271c4",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=package.platform.Linux/description",
          "source": "Native ELF payloads with optional runtime libraries and archives.",
          "source_sha256": "73ea8a5727b968955b7d0bcfa5236fe629a5e722f091f04af0c98ef233bdcf0f",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=package.platform.Web/description",
          "source": "Browser client JavaScript/Wasm payload with preloaded resources.",
          "source_sha256": "6e5240fce8a888579a63e1b5736b746ee9908fdb3acd8c9669e5f1706bed97f3",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=package.platform.Windows/description",
          "source": "Native PE payloads with optional runtime DLLs, symbols, archives, and MSI. The -win7 keys resolve to canonical win32/win64 binary architectures and require a matching explicit POSTFIX when the build output is postfixed. arm64 is accepted as an existing package input, but the standard BuildTools platform registry does not provide a Windows arm64 build lane.",
          "source_sha256": "2bc25bac06194dc76437693483f95ecf0df95e07dc1962de08c8c7578e648024",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=package.platform.iOS/description",
          "source": "Accepted by argparse but package_ios currently aborts.",
          "source_sha256": "3cca62bd0cdd1fdd1d1d68da64549c1c02c37ef1eb64963137acc051fee9daaa",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=package.platform.macOS/description",
          "source": "Accepted by argparse but package_macos currently aborts.",
          "source_sha256": "6cce269bd62029f13f3a6b09ba3c0fca93751dca87dbc5cfdc6fe18a5a83b59d",
          "status": "current"
        },
        {
          "locator": "/scope/support_note",
          "source": "No versioned package support line is declared; embedding projects must pin an engine revision.",
          "source_sha256": "1edbcb491b9c2ea6e0f052b0d7a6d35f9db31f264a5a8e07bb079d7fcc846ff2",
          "status": "current"
        },
        {
          "locator": "/targets/@id=package.target.AnimationViewer/description",
          "source": "Standalone animation preview tool without packaged game resources.",
          "source_sha256": "b6f0f8d0bb345812a158458984449602e083a32166d4bfd74807a98c815a4075",
          "status": "current"
        },
        {
          "locator": "/targets/@id=package.target.Baker/description",
          "source": "Baker executable or library without packaged game resources.",
          "source_sha256": "d3e84d05dd7643ca5d785c9abe3e85709c7ac1a39443991c921ae8577690e546",
          "status": "current"
        },
        {
          "locator": "/targets/@id=package.target.Client/description",
          "source": "Client host/runtime binary and client resources.",
          "source_sha256": "44ce3ac7d69598d5da2dff7dcdbf54c588134a57fd778c9d6024077b4263143b",
          "status": "current"
        },
        {
          "locator": "/targets/@id=package.target.Mapper/description",
          "source": "Mapper binary without packaged game resources.",
          "source_sha256": "feaaba6d783cfa9efd74b77143f6e30c4b4fc1078fda4d1ae22f51a34b4983b0",
          "status": "current"
        },
        {
          "locator": "/targets/@id=package.target.ParticleViewer/description",
          "source": "Standalone particle preview tool without packaged game resources.",
          "source_sha256": "e9c15acc76055e81be60df5bc3f6e1c4e1739b0890ec6b0bf2abdd7de8a51500",
          "status": "current"
        },
        {
          "locator": "/targets/@id=package.target.Server/description",
          "source": "Server binary plus server resources and client update resource packs.",
          "source_sha256": "ac2fbf7b5c04cc2d40e2e9baff95c0215face32135be84e404c85062520ac3ae",
          "status": "current"
        }
      ]
    },
    "particle-format": {
      "source_model": "Docs/generated/particle-format.json",
      "entry_count": 339,
      "current_count": 339,
      "missing_count": 0,
      "complete": true,
      "entries": [
        {
          "locator": "/description",
          "source": "Source-backed contract for FOnline particle authoring, baking, runtime backends, Mapper tooling, integrations, and validation.",
          "source_sha256": "734ab1ad61c0c614cdcf7b72bceec3cdbb567a2da3f397a4412f76653d80376c",
          "status": "current"
        },
        {
          "locator": "/integration_rules/@id=particle-format.integration.client-script/name",
          "source": "Client script controls",
          "source_sha256": "60b2ee2d720b775a1d974f13afd1b111a37caa1dda21572185898cf4b37f2eeb",
          "status": "current"
        },
        {
          "locator": "/integration_rules/@id=particle-format.integration.client-script/rationale",
          "source": "The exported methods narrow generic sprites to particle sprites before applying backend-neutral controls.",
          "source_sha256": "b2144bb4b1c308b7f709b73f710fbccb7692f46f8150cefb5acdaddb458ffc9d",
          "status": "current"
        },
        {
          "locator": "/integration_rules/@id=particle-format.integration.client-script/requirement",
          "source": "Use the client API for seeded playback, prewarm, scale, or live critter-bone effects and handle a false result where the API reports one.",
          "source_sha256": "f82cda32ef7c8ee00e205b2527c3f70d16ed173b37c811888a94cceaf8dd0a26",
          "status": "current"
        },
        {
          "locator": "/integration_rules/@id=particle-format.integration.critter-run-particle/name",
          "source": "Critter model particle",
          "source_sha256": "65f2256b786395feb6aa80a69fbf72efdb9a4e2d7de25740e676911329ada321",
          "status": "current"
        },
        {
          "locator": "/integration_rules/@id=particle-format.integration.critter-run-particle/rationale",
          "source": "The script method depends on an active ModelInstance and is not a 2D critter-sprite fallback.",
          "source_sha256": "a6f4a3caaba6f42f08bd7309eb0769149bc0cb28023be0122a8517daac022d24",
          "status": "current"
        },
        {
          "locator": "/integration_rules/@id=particle-format.integration.critter-run-particle/requirement",
          "source": "Critter.RunParticle creates a named particle on a model bone only in FO_ENABLE_3D builds; the export is a no-op otherwise.",
          "source_sha256": "2495b2628b4cd5137127d8f08f0ada001ccb1a661b273f8d6c003f19154f72e1",
          "status": "current"
        },
        {
          "locator": "/integration_rules/@id=particle-format.integration.model-attachment/name",
          "source": ".fo3d AttachParticles",
          "source_sha256": "4ff2d5a184d1211d78147f32d3af8e4de4f5c98433ad15c4b98c9944ab7bd13b",
          "status": "current"
        },
        {
          "locator": "/integration_rules/@id=particle-format.integration.model-attachment/rationale",
          "source": "ModelInfoBaker validates the resource and bone, and runtime creates/removes the particle with model composition.",
          "source_sha256": "aa4bfc44bfa6538d8cd1f8050cb680e16995a8e3e9a396c57280dafaf5fd608f",
          "status": "current"
        },
        {
          "locator": "/integration_rules/@id=particle-format.integration.model-attachment/requirement",
          "source": "A layer/value-selected .fo3d link stores a global baked .spk or .efk path and requires a valid target bone; it lives only while the selected link remains active.",
          "source_sha256": "75e9effcfea76608b900dfc0da70456143e14f41c4fa41caa97640aa69becea9",
          "status": "current"
        },
        {
          "locator": "/integration_rules/@id=particle-format.integration.model/name",
          "source": "Model attachment",
          "source_sha256": "b9e6467fa7767a914b8367e0cf98052b70fbedbebc70fcb44d6f29ecf73cba93",
          "status": "current"
        },
        {
          "locator": "/integration_rules/@id=particle-format.integration.model/rationale",
          "source": "The model baker verifies the resource and runtime creates the particle at the target joint.",
          "source_sha256": "a9ac68d1428f637ffb698ddf6dd21eb825aa29a7fc406ce4a09f709616cb80b1",
          "status": "current"
        },
        {
          "locator": "/integration_rules/@id=particle-format.integration.model/requirement",
          "source": "Use AttachParticles with a baked runtime resource and a valid model bone, then verify transforms and lifetime in a visible scene.",
          "source_sha256": "91a319068de852ab119bd238831c967b07499ae810b3598860597608a2ba6fa7",
          "status": "current"
        },
        {
          "locator": "/integration_rules/@id=particle-format.integration.project-boundary/name",
          "source": "Embedding-project ownership",
          "source_sha256": "4cf76ef47eaad3078ccbb182cd4fc98c1533e973dc89cf697c2ba3f5762001d5",
          "status": "current"
        },
        {
          "locator": "/integration_rules/@id=particle-format.integration.project-boundary/rationale",
          "source": "The Engine documents reusable mechanics but cannot define a game's assets or production targets.",
          "source_sha256": "fc18239ea9a0f59cc0a51aae41579c1fc9683e4442132fe802b993ded1672ddc",
          "status": "current"
        },
        {
          "locator": "/integration_rules/@id=particle-format.integration.project-boundary/requirement",
          "source": "Keep particle catalogs, visual policy, backend selection, resource provenance, performance budgets, and acceptance scenes in project documentation.",
          "source_sha256": "1819d9f6a9f3142d3cdc4842120c4feeabf3853feeaebd4ddbeb8498448689c7",
          "status": "current"
        },
        {
          "locator": "/integration_rules/@id=particle-format.integration.sprite/name",
          "source": "Sprite integration",
          "source_sha256": "ae28f03ab60d16deec970a71b1d5f4dd18a82b2765f0807a546c34ff11d4a30e",
          "status": "current"
        },
        {
          "locator": "/integration_rules/@id=particle-format.integration.sprite/rationale",
          "source": "The factory exposes enabled runtime extensions and constructs ParticleSprite from ParticleManager.",
          "source_sha256": "66a68afc135dce158ad7d6f2819c7229451fc80743f22202a7a2a71869c06b94",
          "status": "current"
        },
        {
          "locator": "/integration_rules/@id=particle-format.integration.sprite/requirement",
          "source": "Load particle sprites through ParticleSpriteFactory and let the backend choose atlas or direct-scene rendering.",
          "source_sha256": "1d164df13cbbb66b57d744d03868bdfc8b1b92640d36e071f94f9ce6082fa55c",
          "status": "current"
        },
        {
          "locator": "/object_families/@id=particle-format.family.actions/name",
          "source": "Actions",
          "source_sha256": "ff8059dc6752afdd30d275932b1d5031a2ec854b387a8c57ecc6689915293a43",
          "status": "current"
        },
        {
          "locator": "/object_families/@id=particle-format.family.actions/rationale",
          "source": "These are the only action object tags registered by the vendored SPARK build.",
          "source_sha256": "48d3fb573fb5d17b7732f8a7c7b9f25724b3236532b6d94ec363959ea94973cd",
          "status": "current"
        },
        {
          "locator": "/object_families/@id=particle-format.family.actions/requirement",
          "source": "Birth/death action references may use ActionSet and SpawnParticlesAction.",
          "source_sha256": "82045e5922ef16c6fc78c7afb43ad90441730cae5692881e1174824eab1ee742",
          "status": "current"
        },
        {
          "locator": "/object_families/@id=particle-format.family.core/name",
          "source": "Core",
          "source_sha256": "70ea1983c983deacc1b61805aea3d43648afd932f346fb2e5d9b15facd4035c2",
          "status": "current"
        },
        {
          "locator": "/object_families/@id=particle-format.family.core/rationale",
          "source": "The SPARK loader accepts one and only one System and the runtime/render paths consume its groups.",
          "source_sha256": "7681364f252a03c3aa2e94a59e425128fd468546ad07e8bc8e36c8513e78d585",
          "status": "current"
        },
        {
          "locator": "/object_families/@id=particle-format.family.core/requirement",
          "source": "Author exactly one System root object and compose one or more Group objects beneath its groups attribute.",
          "source_sha256": "bcad5dfffe354ba14e493dee8452b157bd93a3ff4809f9c96688901bde26042a",
          "status": "current"
        },
        {
          "locator": "/object_families/@id=particle-format.family.effekseer/name",
          "source": "Effekseer backend",
          "source_sha256": "99138381e7a246590be4c396c31f1afa1820417d0a7a2a1cdf2daf849fb47c4e",
          "status": "current"
        },
        {
          "locator": "/object_families/@id=particle-format.family.effekseer/rationale",
          "source": "Backend selection is explicit and independent of SPARK.",
          "source_sha256": "b080552ba9fb9c9f7f59f6c6edaac655f401d8182300ac3ff570ee8050ee6d21",
          "status": "current"
        },
        {
          "locator": "/object_families/@id=particle-format.family.effekseer/requirement",
          "source": "Enable FO_EFFEKSEER_PARTICLES to compile the fixed-profile project compiler and Effekseer runtime backend.",
          "source_sha256": "0abf631e1b99b6d6f7f37b17780f71a4d6dc55e1ed4b605ee5f6cf7478391167",
          "status": "current"
        },
        {
          "locator": "/object_families/@id=particle-format.family.emitters/name",
          "source": "Emitters",
          "source_sha256": "b024842ed6364750562e78d0121ca7ce82eea7af2a79aa6189595ca89c169c9b",
          "status": "current"
        },
        {
          "locator": "/object_families/@id=particle-format.family.emitters/rationale",
          "source": "Registration and editor creation controls define the portable authored emitter set.",
          "source_sha256": "3beb0cff368100953ea420b4def3f516b6fb344688e3a5f679a36bd570182eaf",
          "status": "current"
        },
        {
          "locator": "/object_families/@id=particle-format.family.emitters/requirement",
          "source": "Groups may contain the five registered emitter tags.",
          "source_sha256": "03677eadcbd82293cf9963a7c95a0a26fab081e186b94fec86a092de31eccdf6",
          "status": "current"
        },
        {
          "locator": "/object_families/@id=particle-format.family.interpolators/name",
          "source": "Interpolators",
          "source_sha256": "69567eaba190631a3c1db5effc7fafbc8ef6324b35587e1b954430a1a96f8739",
          "status": "current"
        },
        {
          "locator": "/object_families/@id=particle-format.family.interpolators/rationale",
          "source": "The XML loader constructs object tags through the IOManager registry.",
          "source_sha256": "451bcfcd02a61b4c14e97733624da271ce262a996b0a08172781fb106c243a1d",
          "status": "current"
        },
        {
          "locator": "/object_families/@id=particle-format.family.interpolators/requirement",
          "source": "Use only the registered float and color initializer/interpolator tags for particle parameter evolution.",
          "source_sha256": "27579f66e3b18ff52e3a4b10ed493c15d36d3750df4d16e3c554006d2cbc296a",
          "status": "current"
        },
        {
          "locator": "/object_families/@id=particle-format.family.modifiers/name",
          "source": "Modifiers",
          "source_sha256": "072da57facdcc631f41c5d886717e71197314fb5518d7c4b51033dbe11f7ffff",
          "status": "current"
        },
        {
          "locator": "/object_families/@id=particle-format.family.modifiers/rationale",
          "source": "The list is the complete modifier surface recognized by both the loader and stock editor.",
          "source_sha256": "b61943e29b844cc0da81bccfbace1683a35fec707baa6d045e725e7b939fd4b1",
          "status": "current"
        },
        {
          "locator": "/object_families/@id=particle-format.family.modifiers/requirement",
          "source": "Groups may contain the eleven registered modifier tags.",
          "source_sha256": "106b53612cf63656c13299c7f6606c54ba5910807dbd4569f5f473db6890b979",
          "status": "current"
        },
        {
          "locator": "/object_families/@id=particle-format.family.renderer/name",
          "source": "Renderer",
          "source_sha256": "9deb780b4331c60e997ac3b4855911f7e0fc8c432d7607992e566cb0087e7ca2",
          "status": "current"
        },
        {
          "locator": "/object_families/@id=particle-format.family.renderer/rationale",
          "source": "The Engine registers this custom renderer once before loading particle resources and exposes no other SPARK renderer to the editor.",
          "source_sha256": "c314172baa66b2debe8e62415719bb567627172a38791dd28f6e8b7c6ce6345a",
          "status": "current"
        },
        {
          "locator": "/object_families/@id=particle-format.family.renderer/requirement",
          "source": "Use the Engine-owned SparkQuadRenderer tag for particle rendering.",
          "source_sha256": "3bc21154f4f96baf56a741a041106ee080ac8fee98ce94f2dcf17a2c4c53a28a",
          "status": "current"
        },
        {
          "locator": "/object_families/@id=particle-format.family.spark/name",
          "source": "SPARK backend",
          "source_sha256": "ba36567f0f58e7bbaf3608ec300aa5b40bd7dd52f3c117c946c0fc48e739a5d6",
          "status": "current"
        },
        {
          "locator": "/object_families/@id=particle-format.family.spark/rationale",
          "source": "Backend selection is explicit and independent of Effekseer.",
          "source_sha256": "1c4c87694247a36e68310858e6bdac9e4dba27268793274797586bd6b8861a1c",
          "status": "current"
        },
        {
          "locator": "/object_families/@id=particle-format.family.spark/requirement",
          "source": "Enable FO_SPARK_PARTICLES to compile the SPARK baker, runtime backend, and Mapper authoring subeditor.",
          "source_sha256": "fee1cf90ba33a0d40bcd7781303c3aebb6ec241d26d8a9ce071b418c0711e487",
          "status": "current"
        },
        {
          "locator": "/object_families/@id=particle-format.family.zones/name",
          "source": "Zones",
          "source_sha256": "a53aa373c5e23e694a5498ab4d49bb604e15c7c77ba1aab4bc1423fc7fce7fe6",
          "status": "current"
        },
        {
          "locator": "/object_families/@id=particle-format.family.zones/rationale",
          "source": "Other SPARK zone implementations are not available to authored Engine resources unless registered and editor-supported.",
          "source_sha256": "4891344753515509f24bbaf335e192ec0caef647bad9edc396c53d8f9977b56d",
          "status": "current"
        },
        {
          "locator": "/object_families/@id=particle-format.family.zones/requirement",
          "source": "Emitter and zoned-modifier references may use the six registered geometric zone tags.",
          "source_sha256": "41fc6b3228dec0ca1b6910c2cb4c2fa19533cdc95ca9218cbdbc87cc6e660e3d",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.action-set/family",
          "source": "Actions",
          "source_sha256": "ff8059dc6752afdd30d275932b1d5031a2ec854b387a8c57ecc6689915293a43",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.action-set/rationale",
          "source": "Unregistered object tags make the SPARK graph fail to load.",
          "source_sha256": "bc2c4073b709105a0aebc0a38111937dfbcac3f6f9aec7962023d497103b5e08",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.action-set/requirement",
          "source": "The <ActionSet> XML tag is registered and editable by the stock particle editor.",
          "source_sha256": "e1a125a93568a9967770f3b44018f3f6c1f938978854e2be59400adaa3609adc",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.box/family",
          "source": "Zones",
          "source_sha256": "a53aa373c5e23e694a5498ab4d49bb604e15c7c77ba1aab4bc1423fc7fce7fe6",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.box/rationale",
          "source": "Unregistered object tags make the SPARK graph fail to load.",
          "source_sha256": "bc2c4073b709105a0aebc0a38111937dfbcac3f6f9aec7962023d497103b5e08",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.box/requirement",
          "source": "The <Box> XML tag is registered and editable by the stock particle editor.",
          "source_sha256": "65a2ebc9205658eaf503371e23823cb9aa2982a90fe783b76f4fce93f5fb26d1",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.collider/family",
          "source": "Modifiers",
          "source_sha256": "072da57facdcc631f41c5d886717e71197314fb5518d7c4b51033dbe11f7ffff",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.collider/rationale",
          "source": "Unregistered object tags make the SPARK graph fail to load.",
          "source_sha256": "bc2c4073b709105a0aebc0a38111937dfbcac3f6f9aec7962023d497103b5e08",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.collider/requirement",
          "source": "The <Collider> XML tag is registered and editable by the stock particle editor.",
          "source_sha256": "83a67727ce53f9976523caeb920bc7afeb5ac9489752960c25484ffb583aec37",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.color-default-initializer/family",
          "source": "Interpolators",
          "source_sha256": "69567eaba190631a3c1db5effc7fafbc8ef6324b35587e1b954430a1a96f8739",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.color-default-initializer/rationale",
          "source": "Unregistered object tags make the SPARK graph fail to load.",
          "source_sha256": "bc2c4073b709105a0aebc0a38111937dfbcac3f6f9aec7962023d497103b5e08",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.color-default-initializer/requirement",
          "source": "The <ColorDefaultInitializer> XML tag is registered and editable by the stock particle editor.",
          "source_sha256": "4a911161ddd12ea29a6af1ed298f3c19f6dc26617b70e83bb36192056a70ed3e",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.color-graph-interpolator/family",
          "source": "Interpolators",
          "source_sha256": "69567eaba190631a3c1db5effc7fafbc8ef6324b35587e1b954430a1a96f8739",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.color-graph-interpolator/rationale",
          "source": "Unregistered object tags make the SPARK graph fail to load.",
          "source_sha256": "bc2c4073b709105a0aebc0a38111937dfbcac3f6f9aec7962023d497103b5e08",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.color-graph-interpolator/requirement",
          "source": "The <ColorGraphInterpolator> XML tag is registered and editable by the stock particle editor.",
          "source_sha256": "4c2696fe5823ae82fa353bcf043061e9b2d499baf5e72b6eb4950ddfc09735bf",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.color-random-initializer/family",
          "source": "Interpolators",
          "source_sha256": "69567eaba190631a3c1db5effc7fafbc8ef6324b35587e1b954430a1a96f8739",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.color-random-initializer/rationale",
          "source": "Unregistered object tags make the SPARK graph fail to load.",
          "source_sha256": "bc2c4073b709105a0aebc0a38111937dfbcac3f6f9aec7962023d497103b5e08",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.color-random-initializer/requirement",
          "source": "The <ColorRandomInitializer> XML tag is registered and editable by the stock particle editor.",
          "source_sha256": "c2c77b914915b7b575da29452af52d35d8b104f64414c041103fd6eefce36cab",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.color-random-interpolator/family",
          "source": "Interpolators",
          "source_sha256": "69567eaba190631a3c1db5effc7fafbc8ef6324b35587e1b954430a1a96f8739",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.color-random-interpolator/rationale",
          "source": "Unregistered object tags make the SPARK graph fail to load.",
          "source_sha256": "bc2c4073b709105a0aebc0a38111937dfbcac3f6f9aec7962023d497103b5e08",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.color-random-interpolator/requirement",
          "source": "The <ColorRandomInterpolator> XML tag is registered and editable by the stock particle editor.",
          "source_sha256": "4410fb42cb78c623a59142eb8526422965383a87a8e1bd7171507206f432af4e",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.color-simple-interpolator/family",
          "source": "Interpolators",
          "source_sha256": "69567eaba190631a3c1db5effc7fafbc8ef6324b35587e1b954430a1a96f8739",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.color-simple-interpolator/rationale",
          "source": "Unregistered object tags make the SPARK graph fail to load.",
          "source_sha256": "bc2c4073b709105a0aebc0a38111937dfbcac3f6f9aec7962023d497103b5e08",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.color-simple-interpolator/requirement",
          "source": "The <ColorSimpleInterpolator> XML tag is registered and editable by the stock particle editor.",
          "source_sha256": "79f0328cca59bd50a8f345f5250ee2fec887960d3ffa37b9fe4469ad4f6268e9",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.cylinder/family",
          "source": "Zones",
          "source_sha256": "a53aa373c5e23e694a5498ab4d49bb604e15c7c77ba1aab4bc1423fc7fce7fe6",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.cylinder/rationale",
          "source": "Unregistered object tags make the SPARK graph fail to load.",
          "source_sha256": "bc2c4073b709105a0aebc0a38111937dfbcac3f6f9aec7962023d497103b5e08",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.cylinder/requirement",
          "source": "The <Cylinder> XML tag is registered and editable by the stock particle editor.",
          "source_sha256": "7faa55d053e1e0d94827b877ff6a3422f40fb84311481a2c54482a6091b62e6c",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.destroyer/family",
          "source": "Modifiers",
          "source_sha256": "072da57facdcc631f41c5d886717e71197314fb5518d7c4b51033dbe11f7ffff",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.destroyer/rationale",
          "source": "Unregistered object tags make the SPARK graph fail to load.",
          "source_sha256": "bc2c4073b709105a0aebc0a38111937dfbcac3f6f9aec7962023d497103b5e08",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.destroyer/requirement",
          "source": "The <Destroyer> XML tag is registered and editable by the stock particle editor.",
          "source_sha256": "c1da407d52f33f435837a1961833fd80675981410a2b78da6e3e175f3c449881",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.effekseer-runtime/rationale",
          "source": "ParticleBaker rejects authored .efk files, validates SKFE output, and the runtime backend advertises only efk.",
          "source_sha256": "f9f5987f4ee1afda4e6827e262ebcbfe47a47cc535ec34486dff1e28b666a4a2",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.effekseer-runtime/requirement",
          "source": "Treat .efk as generated baked output and never check it into an authored resource source.",
          "source_sha256": "583fb5e0ad41e575145aa5c7d1385bbcd5d7260b7b7b0823ca331c645b23a504",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.effekseer-source/rationale",
          "source": "The fixed-profile compiler converts project XML into the runtime binary during baking.",
          "source_sha256": "826da42288d5fee1805e1f2e1db897627a85e8de0d65364704fe88cec1a2f342",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.effekseer-source/requirement",
          "source": "Author Effekseer effects as text .efkproj projects and reference the corresponding .efk path from game content.",
          "source_sha256": "94f8db53949019475fa1916170fc0be1e36aa1aae1f65c47049fc0708457eef5",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.emitter-attacher/family",
          "source": "Modifiers",
          "source_sha256": "072da57facdcc631f41c5d886717e71197314fb5518d7c4b51033dbe11f7ffff",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.emitter-attacher/rationale",
          "source": "Unregistered object tags make the SPARK graph fail to load.",
          "source_sha256": "bc2c4073b709105a0aebc0a38111937dfbcac3f6f9aec7962023d497103b5e08",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.emitter-attacher/requirement",
          "source": "The <EmitterAttacher> XML tag is registered and editable by the stock particle editor.",
          "source_sha256": "8677f75a066de49221eaa2d5d06c3ebea5c6cb9e3adea506847a2e6fdfa7d78f",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.float-default-initializer/family",
          "source": "Interpolators",
          "source_sha256": "69567eaba190631a3c1db5effc7fafbc8ef6324b35587e1b954430a1a96f8739",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.float-default-initializer/rationale",
          "source": "Unregistered object tags make the SPARK graph fail to load.",
          "source_sha256": "bc2c4073b709105a0aebc0a38111937dfbcac3f6f9aec7962023d497103b5e08",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.float-default-initializer/requirement",
          "source": "The <FloatDefaultInitializer> XML tag is registered and editable by the stock particle editor.",
          "source_sha256": "48f83c18c4fa56c278355c5b123ca56b50f04127c426618c2beb828d178ec0f2",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.float-graph-interpolator/family",
          "source": "Interpolators",
          "source_sha256": "69567eaba190631a3c1db5effc7fafbc8ef6324b35587e1b954430a1a96f8739",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.float-graph-interpolator/rationale",
          "source": "Unregistered object tags make the SPARK graph fail to load.",
          "source_sha256": "bc2c4073b709105a0aebc0a38111937dfbcac3f6f9aec7962023d497103b5e08",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.float-graph-interpolator/requirement",
          "source": "The <FloatGraphInterpolator> XML tag is registered and editable by the stock particle editor.",
          "source_sha256": "e8f9ee8812b100f542a90870479795c1eedc473efb5583a82f3fc02e87d366be",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.float-random-initializer/family",
          "source": "Interpolators",
          "source_sha256": "69567eaba190631a3c1db5effc7fafbc8ef6324b35587e1b954430a1a96f8739",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.float-random-initializer/rationale",
          "source": "Unregistered object tags make the SPARK graph fail to load.",
          "source_sha256": "bc2c4073b709105a0aebc0a38111937dfbcac3f6f9aec7962023d497103b5e08",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.float-random-initializer/requirement",
          "source": "The <FloatRandomInitializer> XML tag is registered and editable by the stock particle editor.",
          "source_sha256": "f4cfa9908f1b7eb7e4b3c21b633cec9e22fec42bed6ce673cccb9bb9b3bcb04a",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.float-random-interpolator/family",
          "source": "Interpolators",
          "source_sha256": "69567eaba190631a3c1db5effc7fafbc8ef6324b35587e1b954430a1a96f8739",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.float-random-interpolator/rationale",
          "source": "Unregistered object tags make the SPARK graph fail to load.",
          "source_sha256": "bc2c4073b709105a0aebc0a38111937dfbcac3f6f9aec7962023d497103b5e08",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.float-random-interpolator/requirement",
          "source": "The <FloatRandomInterpolator> XML tag is registered and editable by the stock particle editor.",
          "source_sha256": "c8bb48c9ab9c440cf984c38ecf30b00ff776021f13d2f59dd163e5c64bc06798",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.float-simple-interpolator/family",
          "source": "Interpolators",
          "source_sha256": "69567eaba190631a3c1db5effc7fafbc8ef6324b35587e1b954430a1a96f8739",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.float-simple-interpolator/rationale",
          "source": "Unregistered object tags make the SPARK graph fail to load.",
          "source_sha256": "bc2c4073b709105a0aebc0a38111937dfbcac3f6f9aec7962023d497103b5e08",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.float-simple-interpolator/requirement",
          "source": "The <FloatSimpleInterpolator> XML tag is registered and editable by the stock particle editor.",
          "source_sha256": "bad94b4b19a62e2be7332d7f6813ee5195aa5406be786717e36caf324fa00713",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.friction/family",
          "source": "Modifiers",
          "source_sha256": "072da57facdcc631f41c5d886717e71197314fb5518d7c4b51033dbe11f7ffff",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.friction/rationale",
          "source": "Unregistered object tags make the SPARK graph fail to load.",
          "source_sha256": "bc2c4073b709105a0aebc0a38111937dfbcac3f6f9aec7962023d497103b5e08",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.friction/requirement",
          "source": "The <Friction> XML tag is registered and editable by the stock particle editor.",
          "source_sha256": "33ed134787ebe170514e39fff14bbb553ec76610594ebcc3a86b140223990fad",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.gravity/family",
          "source": "Modifiers",
          "source_sha256": "072da57facdcc631f41c5d886717e71197314fb5518d7c4b51033dbe11f7ffff",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.gravity/rationale",
          "source": "Unregistered object tags make the SPARK graph fail to load.",
          "source_sha256": "bc2c4073b709105a0aebc0a38111937dfbcac3f6f9aec7962023d497103b5e08",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.gravity/requirement",
          "source": "The <Gravity> XML tag is registered and editable by the stock particle editor.",
          "source_sha256": "a01e2106ffbb889a2e2abe9c323df6483929fc2895b267480b3f59178bacffa5",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.group/family",
          "source": "Core",
          "source_sha256": "70ea1983c983deacc1b61805aea3d43648afd932f346fb2e5d9b15facd4035c2",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.group/rationale",
          "source": "Unregistered object tags make the SPARK graph fail to load.",
          "source_sha256": "bc2c4073b709105a0aebc0a38111937dfbcac3f6f9aec7962023d497103b5e08",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.group/requirement",
          "source": "The <Group> XML tag is registered and editable by the stock particle editor.",
          "source_sha256": "367d137115e639ca5cf252d3ab6ea6952ff4224853ec66b6fbe187ed302ba9c7",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.linear-force/family",
          "source": "Modifiers",
          "source_sha256": "072da57facdcc631f41c5d886717e71197314fb5518d7c4b51033dbe11f7ffff",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.linear-force/rationale",
          "source": "Unregistered object tags make the SPARK graph fail to load.",
          "source_sha256": "bc2c4073b709105a0aebc0a38111937dfbcac3f6f9aec7962023d497103b5e08",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.linear-force/requirement",
          "source": "The <LinearForce> XML tag is registered and editable by the stock particle editor.",
          "source_sha256": "c261913e644abce5783b2bca36545dc921c96da4f49d6f8e03eacf2f9467fe85",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.normal-emitter/family",
          "source": "Emitters",
          "source_sha256": "b024842ed6364750562e78d0121ca7ce82eea7af2a79aa6189595ca89c169c9b",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.normal-emitter/rationale",
          "source": "Unregistered object tags make the SPARK graph fail to load.",
          "source_sha256": "bc2c4073b709105a0aebc0a38111937dfbcac3f6f9aec7962023d497103b5e08",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.normal-emitter/requirement",
          "source": "The <NormalEmitter> XML tag is registered and editable by the stock particle editor.",
          "source_sha256": "4e07bce24453f8186008d39b1ca78710ec0120e3e884e8440e261eda972cc916",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.obstacle/family",
          "source": "Modifiers",
          "source_sha256": "072da57facdcc631f41c5d886717e71197314fb5518d7c4b51033dbe11f7ffff",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.obstacle/rationale",
          "source": "Unregistered object tags make the SPARK graph fail to load.",
          "source_sha256": "bc2c4073b709105a0aebc0a38111937dfbcac3f6f9aec7962023d497103b5e08",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.obstacle/requirement",
          "source": "The <Obstacle> XML tag is registered and editable by the stock particle editor.",
          "source_sha256": "973125e35b9e2115f3e41932201f61bc1382de4a4e9fe5a1e9b1b9a8fd86ae51",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.plane/family",
          "source": "Zones",
          "source_sha256": "a53aa373c5e23e694a5498ab4d49bb604e15c7c77ba1aab4bc1423fc7fce7fe6",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.plane/rationale",
          "source": "Unregistered object tags make the SPARK graph fail to load.",
          "source_sha256": "bc2c4073b709105a0aebc0a38111937dfbcac3f6f9aec7962023d497103b5e08",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.plane/requirement",
          "source": "The <Plane> XML tag is registered and editable by the stock particle editor.",
          "source_sha256": "51b15733eb3e18ca5e743cdbb8713a4a62ffd3eb0ef648ff9eb465180bd82451",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.point-mass/family",
          "source": "Modifiers",
          "source_sha256": "072da57facdcc631f41c5d886717e71197314fb5518d7c4b51033dbe11f7ffff",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.point-mass/rationale",
          "source": "Unregistered object tags make the SPARK graph fail to load.",
          "source_sha256": "bc2c4073b709105a0aebc0a38111937dfbcac3f6f9aec7962023d497103b5e08",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.point-mass/requirement",
          "source": "The <PointMass> XML tag is registered and editable by the stock particle editor.",
          "source_sha256": "a5e8fc2ec4f8214ada2b4e8632a0530d95994093a2223278ce2d5314d7245c50",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.point/family",
          "source": "Zones",
          "source_sha256": "a53aa373c5e23e694a5498ab4d49bb604e15c7c77ba1aab4bc1423fc7fce7fe6",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.point/rationale",
          "source": "Unregistered object tags make the SPARK graph fail to load.",
          "source_sha256": "bc2c4073b709105a0aebc0a38111937dfbcac3f6f9aec7962023d497103b5e08",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.point/requirement",
          "source": "The <Point> XML tag is registered and editable by the stock particle editor.",
          "source_sha256": "b49c18ad48571a0e749e131a4bbb0ff5b7221378a08f7d457dddf0145c890190",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.random-emitter/family",
          "source": "Emitters",
          "source_sha256": "b024842ed6364750562e78d0121ca7ce82eea7af2a79aa6189595ca89c169c9b",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.random-emitter/rationale",
          "source": "Unregistered object tags make the SPARK graph fail to load.",
          "source_sha256": "bc2c4073b709105a0aebc0a38111937dfbcac3f6f9aec7962023d497103b5e08",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.random-emitter/requirement",
          "source": "The <RandomEmitter> XML tag is registered and editable by the stock particle editor.",
          "source_sha256": "2a12c0247dfab2e1ac9100f520384f8bfbaa8cb7dd5a2a59c56f53f2014392f2",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.random-force/family",
          "source": "Modifiers",
          "source_sha256": "072da57facdcc631f41c5d886717e71197314fb5518d7c4b51033dbe11f7ffff",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.random-force/rationale",
          "source": "Unregistered object tags make the SPARK graph fail to load.",
          "source_sha256": "bc2c4073b709105a0aebc0a38111937dfbcac3f6f9aec7962023d497103b5e08",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.random-force/requirement",
          "source": "The <RandomForce> XML tag is registered and editable by the stock particle editor.",
          "source_sha256": "34d0fad0cf3e49ef9b9055c93caba19ec57afd3aa0fee637662b6eb9f35d604c",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.ring/family",
          "source": "Zones",
          "source_sha256": "a53aa373c5e23e694a5498ab4d49bb604e15c7c77ba1aab4bc1423fc7fce7fe6",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.ring/rationale",
          "source": "Unregistered object tags make the SPARK graph fail to load.",
          "source_sha256": "bc2c4073b709105a0aebc0a38111937dfbcac3f6f9aec7962023d497103b5e08",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.ring/requirement",
          "source": "The <Ring> XML tag is registered and editable by the stock particle editor.",
          "source_sha256": "6e857dfaacd31fe13a814835a6461d1eea6f93fcdc444ac19d73ab7fcb615afc",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.rotator/family",
          "source": "Modifiers",
          "source_sha256": "072da57facdcc631f41c5d886717e71197314fb5518d7c4b51033dbe11f7ffff",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.rotator/rationale",
          "source": "Unregistered object tags make the SPARK graph fail to load.",
          "source_sha256": "bc2c4073b709105a0aebc0a38111937dfbcac3f6f9aec7962023d497103b5e08",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.rotator/requirement",
          "source": "The <Rotator> XML tag is registered and editable by the stock particle editor.",
          "source_sha256": "470f63a7a2da5195ba016326716c3b9c34c2f19297c534e8c8e3eb397f26ab7e",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.spark-quad-renderer/family",
          "source": "Renderer",
          "source_sha256": "9deb780b4331c60e997ac3b4855911f7e0fc8c432d7607992e566cb0087e7ca2",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.spark-quad-renderer/rationale",
          "source": "Unregistered object tags make the SPARK graph fail to load.",
          "source_sha256": "bc2c4073b709105a0aebc0a38111937dfbcac3f6f9aec7962023d497103b5e08",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.spark-quad-renderer/requirement",
          "source": "The <SparkQuadRenderer> XML tag is registered and editable by the stock particle editor.",
          "source_sha256": "0a5dcbb37481afb07fc2f20d8389894ff43c8d8ca48b1313b22a61c29730ce01",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.spark-runtime/rationale",
          "source": "ParticleBaker rejects authored .spk files and the runtime backend advertises only spk.",
          "source_sha256": "b912be8ca087783baa91b88a89b1ccf4565da564b9cd6da65e0b2f74a041ddf2",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.spark-runtime/requirement",
          "source": "Treat .spk as generated baked output and never check it into an authored resource source.",
          "source_sha256": "91552cfd3839deb07e69fb25c7b74b8b67977fe3cd252e66a562ef05b19c3dce",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.spark-source/rationale",
          "source": "ParticleBaker parses XML and emits the runtime binary; runtime never loads the source file.",
          "source_sha256": "858d4b9c38c082c3a038dd244f93622df1ac4c94573d2c618ec746ed357ba5ea",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.spark-source/requirement",
          "source": "Author SPARK systems as XML in .spark files and reference the corresponding .spk path from game content.",
          "source_sha256": "c4de7606f69858c6f775f4a8ecc5ef1acc87298dc235c271167b1f6492f7f334",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.spawn-particles-action/family",
          "source": "Actions",
          "source_sha256": "ff8059dc6752afdd30d275932b1d5031a2ec854b387a8c57ecc6689915293a43",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.spawn-particles-action/rationale",
          "source": "Unregistered object tags make the SPARK graph fail to load.",
          "source_sha256": "bc2c4073b709105a0aebc0a38111937dfbcac3f6f9aec7962023d497103b5e08",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.spawn-particles-action/requirement",
          "source": "The <SpawnParticlesAction> XML tag is registered and editable by the stock particle editor.",
          "source_sha256": "48dbeda24ef1ab5ef2a1a4c3a74a2dd4bd8948097d72f38c0c26cd13db916385",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.sphere/family",
          "source": "Zones",
          "source_sha256": "a53aa373c5e23e694a5498ab4d49bb604e15c7c77ba1aab4bc1423fc7fce7fe6",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.sphere/rationale",
          "source": "Unregistered object tags make the SPARK graph fail to load.",
          "source_sha256": "bc2c4073b709105a0aebc0a38111937dfbcac3f6f9aec7962023d497103b5e08",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.sphere/requirement",
          "source": "The <Sphere> XML tag is registered and editable by the stock particle editor.",
          "source_sha256": "c1c153d4c740155185287183577c7e26a35a8a5160f8b50b3ff640cbf2fd9943",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.spheric-emitter/family",
          "source": "Emitters",
          "source_sha256": "b024842ed6364750562e78d0121ca7ce82eea7af2a79aa6189595ca89c169c9b",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.spheric-emitter/rationale",
          "source": "Unregistered object tags make the SPARK graph fail to load.",
          "source_sha256": "bc2c4073b709105a0aebc0a38111937dfbcac3f6f9aec7962023d497103b5e08",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.spheric-emitter/requirement",
          "source": "The <SphericEmitter> XML tag is registered and editable by the stock particle editor.",
          "source_sha256": "6b21404cbf22197654effe47bde31adab2848ecdf6069bc3e38661c1557bae0b",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.static-emitter/family",
          "source": "Emitters",
          "source_sha256": "b024842ed6364750562e78d0121ca7ce82eea7af2a79aa6189595ca89c169c9b",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.static-emitter/rationale",
          "source": "Unregistered object tags make the SPARK graph fail to load.",
          "source_sha256": "bc2c4073b709105a0aebc0a38111937dfbcac3f6f9aec7962023d497103b5e08",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.static-emitter/requirement",
          "source": "The <StaticEmitter> XML tag is registered and editable by the stock particle editor.",
          "source_sha256": "5c888a238ed2793c3fe9de8fef54a334580250e914e7133ac0693736730b1e42",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.straight-emitter/family",
          "source": "Emitters",
          "source_sha256": "b024842ed6364750562e78d0121ca7ce82eea7af2a79aa6189595ca89c169c9b",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.straight-emitter/rationale",
          "source": "Unregistered object tags make the SPARK graph fail to load.",
          "source_sha256": "bc2c4073b709105a0aebc0a38111937dfbcac3f6f9aec7962023d497103b5e08",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.straight-emitter/requirement",
          "source": "The <StraightEmitter> XML tag is registered and editable by the stock particle editor.",
          "source_sha256": "1cef09b987057a3a73d80a8f9a00893dee58fd0c0dd467f9d82c54b25c2824c2",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.system/family",
          "source": "Core",
          "source_sha256": "70ea1983c983deacc1b61805aea3d43648afd932f346fb2e5d9b15facd4035c2",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.system/rationale",
          "source": "Unregistered object tags make the SPARK graph fail to load.",
          "source_sha256": "bc2c4073b709105a0aebc0a38111937dfbcac3f6f9aec7962023d497103b5e08",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.system/requirement",
          "source": "The <System> XML tag is registered and editable by the stock particle editor.",
          "source_sha256": "07d2ba3a41b813f320349dc1a2dd8cef428adf691261459c3ec5acbfdca4af49",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.vortex/family",
          "source": "Modifiers",
          "source_sha256": "072da57facdcc631f41c5d886717e71197314fb5518d7c4b51033dbe11f7ffff",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.vortex/rationale",
          "source": "Unregistered object tags make the SPARK graph fail to load.",
          "source_sha256": "bc2c4073b709105a0aebc0a38111937dfbcac3f6f9aec7962023d497103b5e08",
          "status": "current"
        },
        {
          "locator": "/objects/@id=particle-format.object.vortex/requirement",
          "source": "The <Vortex> XML tag is registered and editable by the stock particle editor.",
          "source_sha256": "eb123c71689e5edf516a3ff94b21bd0ec9a11d78983f7a2ad4087336770273ec",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.atlas-dimensions/default",
          "source": "1;1",
          "source_sha256": "ac4750dbb83d4a51542912ea8135f5e1107464ecc7892381c90b21d02d1b9d35",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.atlas-dimensions/rationale",
          "source": "Atlas dimensions control UV subdivision rather than the Engine TextureAtlas allocator.",
          "source_sha256": "e8dac3c4befd2c12806ee02bcd4759fdd53266af0dc936c9d6f8aa24a62af733",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.atlas-dimensions/requirement",
          "source": "One value sets the X cell count; two set X and Y. The particle texture-index parameter chooses atlas cells.",
          "source_sha256": "86b5ffac03d8f1f4d5b1f29ba44010a493f6bdb79e8230b7a8ccd7b1dade4d39",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.blend-mode/default",
          "source": "unused",
          "source_sha256": "febe1d741b49e5a9c31526728d8c5134a803adfc4c04c4f052673722ed85597e",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.blend-mode/rationale",
          "source": "Treating this field as active would create resources whose appearance depends on a control the runtime ignores.",
          "source_sha256": "467126f8cd6910933c2c109521f0dddbf656c3fe0bfeed5e717c946642c31752",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.blend-mode/requirement",
          "source": "Do not author blend mode: the descriptor declares it, but SparkQuadRenderer neither imports, exports, nor applies it. Select blending in the .fofx effect instead.",
          "source_sha256": "8acecf8a09f6377a6da79e13436d458304e2a298b7db7cfb1c08d3108ac533ce",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.draw-in-scene/default",
          "source": "false",
          "source_sha256": "fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.draw-in-scene/rationale",
          "source": "A ParticleSprite has one render route, selected after scanning all groups.",
          "source_sha256": "2523e98bc9e95a5cfe1ab174d850e98fd1987487de8c0edd0bbc1bd3ae5312cf",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.draw-in-scene/requirement",
          "source": "When any group renderer enables draw in scene, the whole ParticleSprite uses the direct map-scene path instead of atlas refresh.",
          "source_sha256": "f0eee77cd09771b1c78b6aabd73564642c5de53c496962fedb91c29836f0bc6c",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.effect/default",
          "source": "empty",
          "source_sha256": "2e1cfa82b035c26cbbbdae632cea070514eb8b773f616aaeaf668e2f0be8f10d",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.effect/rationale",
          "source": "Blend, depth, and shader behavior come from the selected Engine effect.",
          "source_sha256": "ff6fc921bc8f4b7a4b95379e56816c45b2ef2ac2f1cd62e244cb56b86966a714",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.effect/requirement",
          "source": "Name a baked .fofx resource compatible with EffectUsage::QuadSprite; the renderer loads it through EffectManager.",
          "source_sha256": "ec54b6b8d2e9ca557366a64c974f7386048cf406946b65795801c2139d7cf5a7",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.effekseer-depth-cull-sort/default",
          "source": "authored per node",
          "source_sha256": "9282b360f6d71c7cc378e17fa5d0946aed8ab5fe0857292947034fad6fc7ae5e",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.effekseer-depth-cull-sort/rationale",
          "source": "Draw state and ordering are preserved only where the callback geometry can implement them without breaking strip or model topology.",
          "source_sha256": "2dcc628972e6cebb7885b5acd2c52692f9025c914d3e15a9772dfe7abb2a26c0",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.effekseer-depth-cull-sort/requirement",
          "source": "Sprite and Ring may use stable camera-depth sorting; Ribbon, Track, and Model reject Z-sort. Per-node ZTest/ZWrite select an effect depth variant, and Model face culling selects the Engine draw cull mode.",
          "source_sha256": "18376f451c012019d62fa61e05ff421a438420911fc99f96e4fe63d0b3b0bdfe",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.effekseer-direct-scene/default",
          "source": "true",
          "source_sha256": "b5bea41b6c623f7c09f1bf24dcae58ebab3c0cdd90ad966bc43a45b44867e12b",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.effekseer-direct-scene/rationale",
          "source": "The Effekseer runtime supplies callback geometry to FOnline rather than using the atlas route.",
          "source_sha256": "bd7db56e26544324d229384b82b961217e1c6b5be67f491b1bcf082614e6cb1c",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.effekseer-direct-scene/requirement",
          "source": "Treat Effekseer effects as direct-scene particles and validate their supported renderer capabilities in the FOnline client.",
          "source_sha256": "83325c2b412b56d7e2d1af6c634b704d860731f972de5207daf3bc29614d9064",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.effekseer-distortion/default",
          "source": "disabled",
          "source_sha256": "17eb3c0168d0d7b21ede5481150f17233427d89833ec121b4dbc4fb96cfab71e",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.effekseer-distortion/rationale",
          "source": "Only sprite geometry supplies the refracting plane required by the Engine distortion effect.",
          "source_sha256": "7d4000e091041aea40394c9d8e1ec2c57100425a254b9c0d53b62ba9dce0fd11",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.effekseer-distortion/requirement",
          "source": "Use scene distortion only on Sprite nodes with a distortion texture and finite intensity; the draw samples a deferred scene-background snapshot through BackgroundTex and ParticleSamplingBuf.",
          "source_sha256": "80a6b0fb7cc5f6684f782da03b7980754bd5e7ad690942dffbd456431970d89c",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.effekseer-geometry/default",
          "source": "Engine-owned renderers",
          "source_sha256": "4f0cd17f7369cd6f76ad23586db661e4c601cc1fa89dfb3dbd0491ccfe47e5b0",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.effekseer-geometry/rationale",
          "source": "The FOnline runtime does not use Effekseer's graphics backend and fails closed on unimplemented node families.",
          "source_sha256": "c0e5b98740bb1a03690ca635d0e2da5c6fcb3d1c47d7937620f807f848fc4485",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.effekseer-geometry/requirement",
          "source": "Use only Root, None, Sprite, Ring, Ribbon, Track, and Model nodes; the five drawing families are converted to Engine-owned callback geometry.",
          "source_sha256": "d6ac150f9c14753d50426520a62f21bc21e9341180d4893ac9345c05a9d55508",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.effekseer-global-exclusions/default",
          "source": "unsupported",
          "source_sha256": "60945d49535300be8e42108658dba31fcd5d665fc40d6f186798e7e0682320ae",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.effekseer-global-exclusions/rationale",
          "source": "The runtime rejects unsupported global resources before accepting the effect.",
          "source_sha256": "e4b6dcbbec24cee0cfaf67ccf01898daaad7a41f4da1e60e7e110af5101e0cb2",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.effekseer-global-exclusions/requirement",
          "source": "Do not use GPU particles, normal textures, sounds, custom materials, external curves, or procedural models. Referenced static model resources must load and pass FOnline validation.",
          "source_sha256": "bbdd350ab12f2190758f447871490faf94f365bf6b8799baf30a3c2eefecf09f",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.effekseer-material-profile/default",
          "source": "Default material; authored sampling",
          "source_sha256": "7fff3920794b9ca28e2c1baad5cb42f8bd1be31e7a79f4e08e1481c1afbf228b",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.effekseer-material-profile/rationale",
          "source": "The callback renderers implement a deliberately bounded material profile and validate it before drawing.",
          "source_sha256": "e6da025ae5115ae1414bf5fa63a0341692b9140f50fd73aac9f2c201cb103f5a",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.effekseer-material-profile/requirement",
          "source": "Use the Default material, Normal/Add/Sub blending, nearest or linear filtering, and Clamp or Repeat wrapping. Multiply blending, mirrored wrapping, advanced texture slots, custom materials, soft particles, falloff, and flipbook interpolation are rejected.",
          "source_sha256": "8ebf5df41d73be85b6d6d0151547b7c388afe25886b3793b89ec7c129e7ccb90",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.locked-axis/default",
          "source": "LOCK_UP",
          "source_sha256": "3868b9b6608cd4114727cc4b9c82a6d181b593d36953fd528eba9211926d1ba8",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.locked-axis/rationale",
          "source": "Only these two names are imported and exported.",
          "source_sha256": "021b9856ec91874189dfa4bdfbb6c236a7c8271ae3531321ac41ca320d720b61",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.locked-axis/requirement",
          "source": "Use LOCK_LOOK or LOCK_UP when an axis-based orientation mode needs one vector held fixed.",
          "source_sha256": "40fe31e92a0363f735a15d1258fb8a76196d2e551702e3e8a8c2dea64801359b",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.locked-look-vector/default",
          "source": "(0,0,1)",
          "source_sha256": "8d82467b7686f652efdcf792dff0763f739cb8fc051f68d968b4e53cbc5d0387",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.locked-look-vector/rationale",
          "source": "The value is imported directly into SPARK's lookVector.",
          "source_sha256": "2c6f3a1f7449e4c7b992a30ec78e3d8c5c5aaeebdf69d8098418c1565d6f6c6a",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.locked-look-vector/requirement",
          "source": "Provide the world/local look vector used by the selected oriented-quad mode.",
          "source_sha256": "b10591cbbd0b321dca789e77e9e8911fccf292c44e5e3ba11b009369f6d3ed00",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.locked-up-vector/default",
          "source": "(0,1,0)",
          "source_sha256": "de66332d4f7284a3fb59f87ec95d0976ebe86ee643587d76f9762158ed7ea8c5",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.locked-up-vector/rationale",
          "source": "The value is imported directly into SPARK's upVector.",
          "source_sha256": "641168786e7cb5e6f851cc51745aabce743c71a63896beff4229c9a03c845392",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.locked-up-vector/requirement",
          "source": "Provide the world/local up vector used by the selected oriented-quad mode.",
          "source_sha256": "ccabfabf7b6d607d5b8e0d1653146a5901ecf8fd5d4a788810615e91088d1506",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.look-orientation/default",
          "source": "LOOK_CAMERA_PLANE",
          "source_sha256": "a3e6e81dcd6e2b7565d71b2c45672808fdb0c8d79c0a6ad428786c4aee38f550",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.look-orientation/rationale",
          "source": "String parsing is an explicit closed branch in SparkQuadRenderer import.",
          "source_sha256": "83044f93d37eeb4d869d65aa1a7299350779a008c25706df2ce8423a66ee44e8",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.look-orientation/requirement",
          "source": "Use one of the four recognized look-orientation names; other strings leave the default orientation unchanged.",
          "source_sha256": "109eb66dc2007422157fe1a5050d9eff2817e2a75ff8f6c68c2f3d03c472e3e5",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.scale/default",
          "source": "1;1",
          "source_sha256": "ac4750dbb83d4a51542912ea8135f5e1107464ecc7892381c90b21d02d1b9d35",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.scale/rationale",
          "source": "The Engine maps the field directly to SPARK QuadRenderBehavior scale.",
          "source_sha256": "b30a292f0a5331b0a006615c6d2349b2836c230019c530dc70863dcc17b679ad",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.scale/requirement",
          "source": "One value changes X while retaining default Y; two values set X and Y particle-quad scale.",
          "source_sha256": "bc1a2cb8fca252e6e986176da148d3253590c0a336994fbddeacaacb206a86b9",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.spark-draw-route/default",
          "source": "false",
          "source_sha256": "fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.spark-draw-route/rationale",
          "source": "The SPARK runtime promotes the complete particle system to direct-scene rendering when a renderer requests it.",
          "source_sha256": "37452d37af983936402102f31aadae2e9d79dfaa9fe9835891dba09bfc1ea473",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.spark-draw-route/requirement",
          "source": "Use atlas rendering for ordinary particle sprites; enable DrawInScene when the effect must share the map scene and depth path.",
          "source_sha256": "bc1f3b604c27bf1de9e50f96f165b7fc8238638d8be1cda7ec10a51e75da9699",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.spark-resources/default",
          "source": "empty",
          "source_sha256": "2e1cfa82b035c26cbbbdae632cea070514eb8b773f616aaeaf668e2f0be8f10d",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.spark-resources/rationale",
          "source": "SparkQuadRenderer imports both values and uses FOnline rendering resources.",
          "source_sha256": "82d6c426a709a7f300a3cfff558ea7817ea92409f15be12928fcd95702e4690e",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.spark-resources/requirement",
          "source": "Select a baked FOnline effect and a texture path valid for the particle resource source.",
          "source_sha256": "6e1213a2f6e24692bd667f9036b6fa45480a9052c4de0c80cb27e7c6478870fe",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.texture/default",
          "source": "empty",
          "source_sha256": "2e1cfa82b035c26cbbbdae632cea070514eb8b773f616aaeaf668e2f0be8f10d",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.texture/rationale",
          "source": "Relative texture names keep particle packs relocatable while reusing the Engine image pipeline.",
          "source_sha256": "cba137a3cb2a03863ff737d6cf5d80d9b875884a83e9a8bcc4edee2f9975c019",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.texture/requirement",
          "source": "Resolve a supported sprite resource relative to the .spark source directory and load its atlas texture through the provided texture loader.",
          "source_sha256": "f9c54ae54fdbb70ae6423563825d042d03f1a6f1bc4786791ee842dd6ad71a89",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.up-orientation/default",
          "source": "UP_CAMERA",
          "source_sha256": "f4ec58aaed5bec18833a9cf511b25985f21388b64385bb4633d1082f366744a3",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.up-orientation/rationale",
          "source": "The renderer maps these exact names to SPARK oriented-quad modes.",
          "source_sha256": "c81e45b6d7a97fd4fa059e5cd99925c76a91d0d8fa383643f6ba626ccc479e82",
          "status": "current"
        },
        {
          "locator": "/renderer_fields/@id=particle-format.renderer.up-orientation/requirement",
          "source": "Use one of the four recognized up-orientation names; other strings leave the default orientation unchanged.",
          "source_sha256": "c994b91f1b0b5846ddbcc5c03ab59fda501052eac4082fd14a26f3cc19c343c8",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.atlas-path/name",
          "source": "Default offscreen-atlas path",
          "source_sha256": "aaa4bb471a973d499bc300d8e931a2967753640d19f31d3d48431400facc8923",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.atlas-path/rationale",
          "source": "The default path preserves ordinary sprite ordering and batching at the cost of flattening particle depth.",
          "source_sha256": "8050f57e74dd02fea9d5f65e37928047c344ffae382a3003e2ed43889b64eb2a",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.atlas-path/requirement",
          "source": "With draw in scene false, updates render the SPARK system into an intermediate render target and copy it into the sprite atlas; normal sprite batching draws the resulting quad.",
          "source_sha256": "55551e493301623b54c1f88354970c193bec9dc6704163932225047832893db0",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.backend-composition/name",
          "source": "Backend composition",
          "source_sha256": "ab2199495dfa99615a941c2b720581218d9465df14cb76f2addc5429cf2705ee",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.backend-composition/rationale",
          "source": "CreateParticleRuntimeBackends is the single feature-aware composition point.",
          "source_sha256": "0a0779a8acccfd24085511bab10494a01c943004fa58b56ddd63fd356bd854a6",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.backend-composition/requirement",
          "source": "Compile only the particle backends selected by FO_SPARK_PARTICLES and FO_EFFEKSEER_PARTICLES.",
          "source_sha256": "41bb290a304b383ec2b97f39e24ddc9b8bb05f995844396f804afc072efc57bd",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.baked-bounds/name",
          "source": "Mandatory baked bounds",
          "source_sha256": "f0696a9ade885c3fe9e727e94a1fdf8e696facf34b9d61dc1489499e75c21065",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.baked-bounds/rationale",
          "source": "Static measured bounds replace manual draw dimensions and avoid recomputing a particle AABB every frame.",
          "source_sha256": "f1dae483e1dc422d0b350ca11d37793d13bdd537f5865ad0ca7198fe0bf297c9",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.baked-bounds/requirement",
          "source": "Bake each particle system's simulated position box and maximum billboard radius into the runtime resource. SPARK rejects a system that never shows a particle; Effekseer appends and validates a mandatory bounds trailer.",
          "source_sha256": "460a5cda7929b7b55f4e3e26ab1e2daa52c1bce28568ff853c67c1d28cac2536",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.bounds-semantics/name",
          "source": "Position box and billboard radius",
          "source_sha256": "84d8592be0066dd21e6c04bac2dc3805c7c132ad93ef592dc15622c7ce98c509",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.bounds-semantics/rationale",
          "source": "Rotating or sweeping billboard radius as a world point overstates the frame and can still misrepresent its screen footprint.",
          "source_sha256": "425eb41fb506cc627526f8e64fa11e6072f28e91e9b48319310ca058649d70ce",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.bounds-semantics/requirement",
          "source": "Treat ParticleBounds3D.PositionMin/PositionMax as world positions transformed by the full placement matrix, and BillboardRadius as camera-facing padding transformed by placement scale only.",
          "source_sha256": "8f6031bcc99d4c4f2c0151f6629acefaeb4948d1dcbaef85e30909433ba6e6c1",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.extension-routing/name",
          "source": "Runtime extension routing",
          "source_sha256": "97c3da94e448c91b354aa0f8b5c7ef53d2754f59960c30039c005fdbccbef9e4",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.extension-routing/rationale",
          "source": "Authored source extensions are not runtime sprite formats.",
          "source_sha256": "10e9659df100a83d4d4dec0a0c339698d202bdbe94e1da8c71e7991125777340",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.extension-routing/requirement",
          "source": "Reference baked .spk or .efk paths; ParticleManager selects a backend by its advertised extension.",
          "source_sha256": "f8a0a1147feecffdb89154035e708253210a8fa7480b6bf76bf8e12b6866f404",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.live-bounds/name",
          "source": "Live bounds",
          "source_sha256": "991d6cf3b959e68f5da1e6823e835069df0bd4ddade4cbd5cfc8c086b844613e",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.live-bounds/rationale",
          "source": "Occasional attached effects must expand their owning model only while visible.",
          "source_sha256": "a94fdafd79ce455e98fed7aa747d1354a0df08c34e0a0b8697b3ffc3d816976f",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.live-bounds/requirement",
          "source": "GetLiveBounds returns transformed baked bounds only while the backend has live particles or instances; dormant and finished systems reserve no model-frame space.",
          "source_sha256": "de21a3048bbf72b3ea7069208027372c253f2d57472ac52f0f6c2d9508b6d22d",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.prewarm/name",
          "source": "Prewarm",
          "source_sha256": "aa3007c02fc4b5c35552d56bbdf8a5d4187733dc6d17a86bf36bfcee644039ac",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.prewarm/rationale",
          "source": "The runtime advances the selected backend and resets facade timing to the reported elapsed time.",
          "source_sha256": "66012978e33b93c2ff14953d44613f93f8be64b910b1a8fd98aa1635d297eeef",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.prewarm/requirement",
          "source": "Use prewarm only when the effect must enter already simulated, and include its cost in the project performance gate.",
          "source_sha256": "45682af5a4e640d5d9140e37777161a950d717aac7982f55cf10afae7dc512c0",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.scale/name",
          "source": "Runtime scale",
          "source_sha256": "b699bdc2365aaec04344f9d8a1efccda99a3bb4795954d18ee8964d9c024eea6",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.scale/rationale",
          "source": "Scale is part of the backend-neutral runtime setup and forces a transform refresh.",
          "source_sha256": "cdba316a1b41b1bdb57c1dd398d929455376aa3f39b4242bffd6f2310919633f",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.scale/requirement",
          "source": "Apply finite positive scale through ParticleSystem and revalidate bounds, depth, and attachment placement.",
          "source_sha256": "cd876c7311b3c2619aa259520cb44df5f86c1b46e4672e8f1002dc2455c1ebf6",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.scene-path/name",
          "source": "Direct map-scene path",
          "source_sha256": "c52b3ba496c5e338dcac913786ad7af0143fd69cc8500a1b8b9c46f5864b54cc",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.scene-path/rationale",
          "source": "World-space particles can be occluded by standing sprites and models according to the selected .fofx depth state.",
          "source_sha256": "bd91f285ecb4d02944851c507b4064293163337c9e243224100e8648af9aaf7d",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.scene-path/requirement",
          "source": "With draw in scene true, ParticleSprite is direct-draw and renders SPARK geometry against the map projection and shared depth target instead of refreshing its atlas region.",
          "source_sha256": "3afce3e2fb8dce834ba795d5155d1ad4faa072172642f08c47ff059455e33a04",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.seed/name",
          "source": "Seeded respawn",
          "source_sha256": "8b22184cdac0c857e26cc9036e3d0db2b40a635a56668de715d531d23e801bda",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.seed/rationale",
          "source": "The neutral facade forwards the seed to the selected backend.",
          "source_sha256": "f55be7b87213b1cd9631f76b2fbb791a5d80003e8ae34a9599c65cd6074fab51",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.seed/requirement",
          "source": "Use an explicit seed when deterministic replay or comparison is required.",
          "source_sha256": "3c8f749aef91464bec4f4ec693a618c4181b976d50a6e39b07e0b4d848155909",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.sprite-frame/name",
          "source": "Automatic particle sprite frame",
          "source_sha256": "8db057520e3fb5ff5f18627bbec6d31df4333e2c565d97dcf129f6dc9a00513d",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.sprite-frame/rationale",
          "source": "ParticleSprite allocation follows measured effect content without an authored draw-size field.",
          "source_sha256": "35c36cf31d18272f5c5acc9139470623870f7c5bedc6303c6f262de6e4f92d06",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.sprite-frame/requirement",
          "source": "ParticleSystem projects baked bounds through the map-camera tilt, adds billboard and antialiasing margins, and derives atlas size, emitter offset, and world transform automatically. Invalid or unavailable bounds fall back to Render.DefaultParticleDrawWidth/Height.",
          "source_sha256": "27a3cb6c53772e3012a4937134de650a1a7e814e70ede7644718db70dd98e75d",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.sprite-semantics/name",
          "source": "ParticleSprite animation semantics",
          "source_sha256": "5a7df04ae0e3ba3c02f90b4847996a1379c613d30383761a3e4683bfb13ce0ab",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.sprite-semantics/rationale",
          "source": "Generic Sprite animation controls do not map to SPARK timeline or direction selection.",
          "source_sha256": "e7197c480a5d0df54a5034bca58cd3e065526aff70f257105ab2159170f88262",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.sprite-semantics/requirement",
          "source": "ParticleSprite is non-copyable and never hit-tests; Play respawns, Stop is a no-op, SetTime and SetDir are ignored, and IsPlaying mirrors SPARK active state.",
          "source_sha256": "34f5c8fbd28837f1751c7e6649c24b49093ff6648a02e5b3f6b91f108e0d8578",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.update-cadence/name",
          "source": "Update cadence",
          "source_sha256": "fcf4ceb9053d713e20dd4bde9b336fcc9a7cebc8f8ca0f5d87f6c74ec14b7cda",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.update-cadence/rationale",
          "source": "Particle simulation cadence shares the 3D animation setting rather than owning an independent particle FPS.",
          "source_sha256": "af2d2a1d10f660f03477dc8f1de50fad5f558890d8688ed32488e07f12259da3",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.update-cadence/requirement",
          "source": "Render.Animation3dFPS sets the millisecond particle update threshold; zero leaves the threshold at zero and therefore permits an update every frame.",
          "source_sha256": "61829bdc1bb9b2f5b748de3b1325ceca4b78676413e87bf57adeeae3eb9d8829",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.world-scale/name",
          "source": "Shared model and particle scale",
          "source_sha256": "d7279f62766bcc3c71a20f73f9a37e80de59c4d50f56db94b42fa8790bb7ba2d",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.world-scale/rationale",
          "source": "ParticleSprite and model projection use the same scale setting, so project overrides affect both.",
          "source_sha256": "cc85eeeaafe45242871fb368b26617b7c70a0d2ea50ee66acd81cae831f8b79f",
          "status": "current"
        },
        {
          "locator": "/runtime_rules/@id=particle-format.runtime.world-scale/requirement",
          "source": "Render.ModelProjFactor is screen pixels per 3D world unit for models and in-scene particles. The Engine default is 40.0; embedding projects may override it consistently.",
          "source_sha256": "d71d78324b2c1221eda07fd6cff199df8222c5689472c054cb218f50d92feaa2",
          "status": "current"
        },
        {
          "locator": "/scope/excluded",
          "source": [
            "embedding-project particle catalogs, filenames, visual policy, and budgets",
            "project-selected effects, textures, models, and acceptance scenes",
            "unsupported Effekseer renderer families and advanced capabilities",
            "upstream editor behavior that is not present in the bundled tools",
            "generated .spk and .efk files as authored source"
          ],
          "source_sha256": "e5f12d6bd4f566cff3d5b098361a3679202e3c82e2e250da1c282c736807ba9a",
          "status": "current"
        },
        {
          "locator": "/scope/included",
          "source": [
            "SPARK .spark authoring and baked .spk delivery",
            "Effekseer .efkproj authoring and baked .efk delivery",
            "backend-neutral particle runtime and sprite integration",
            "Mapper preview and SPARK authoring tools",
            "resource, model, and client-script integration",
            "source-backed validation and production gates"
          ],
          "source_sha256": "bc9381195187318bd56430b6d75f3be63fe2dfbb3bfdd05ee27ec59444ef40b0",
          "status": "current"
        },
        {
          "locator": "/scope/support_note",
          "source": "SPARK and Effekseer are independent optional backends. Embedding projects must pin an Engine revision and explicitly enable, test, and support the formats they ship.",
          "source_sha256": "59f89383d2db0c0ac6e83d531c679cb0d83612fe0014bf7eeab08d532d7c212a",
          "status": "current"
        },
        {
          "locator": "/tooling_rules/@id=particle-format.tooling.effekseer-editor/name",
          "source": "Standalone Effekseer Editor",
          "source_sha256": "362907c13faf3155ee955f83aacf33171becce172e77e818a72d34c4634e77bd",
          "status": "current"
        },
        {
          "locator": "/tooling_rules/@id=particle-format.tooling.effekseer-editor/rationale",
          "source": "The editor has an isolated auxiliary build and staged payload.",
          "source_sha256": "2ebe4ebb066805ce5cacc3a7aaa5597497cd80f802ec1832e96096fbe7e587cf",
          "status": "current"
        },
        {
          "locator": "/tooling_rules/@id=particle-format.tooling.effekseer-editor/requirement",
          "source": "Build and stage the Windows Effekseer authoring tool through buildtools.py build-auxiliary; do not ship it as a game runtime dependency.",
          "source_sha256": "97dd72fa8aecd375d7e02ae5eae32bcea32dbf43091655c5a21046dda87b9065",
          "status": "current"
        },
        {
          "locator": "/tooling_rules/@id=particle-format.tooling.incremental-effekseer/name",
          "source": "Effekseer dependency cache",
          "source_sha256": "ee2347022c60f7b3e1d6eebebe2cc779926af44a551b8505cd34371fc8511b1b",
          "status": "current"
        },
        {
          "locator": "/tooling_rules/@id=particle-format.tooling.incremental-effekseer/rationale",
          "source": "The cache invalidates an effect when its project or dependencies change.",
          "source_sha256": "b034436272027c312887610db53795e726902be13fea463dbb1dd7e5d0fc34e6",
          "status": "current"
        },
        {
          "locator": "/tooling_rules/@id=particle-format.tooling.incremental-effekseer/requirement",
          "source": "Let ParticleBaker track compiler-reported dependency snapshots; force a full rebake after changing compiler behavior.",
          "source_sha256": "83a0a9ebce6be13c777706e308ebf08373449e5c357f9706f04f7a81d4529d5d",
          "status": "current"
        },
        {
          "locator": "/tooling_rules/@id=particle-format.tooling.mapper-preview/name",
          "source": "Backend-neutral Mapper preview",
          "source_sha256": "1f9c11aee850fe8b6ad4143985590df34123d162eefed0d6ab4c025264e40a69",
          "status": "current"
        },
        {
          "locator": "/tooling_rules/@id=particle-format.tooling.mapper-preview/rationale",
          "source": "The preview uses the same ParticleSystem facade and runtime extensions as the game.",
          "source_sha256": "d10ff59fdec9a6e491197fa51c603cb4a637904a3958a77166b21021d76cfd05",
          "status": "current"
        },
        {
          "locator": "/tooling_rules/@id=particle-format.tooling.mapper-preview/requirement",
          "source": "Preview baked .spk and .efk resources through the Mapper particle window using explicit placement, seed, scale, offset, and optional prewarm.",
          "source_sha256": "ad271b538c0c00381b43695c6685e20e1f7227bcb57d4be40959260d735253f6",
          "status": "current"
        },
        {
          "locator": "/tooling_rules/@id=particle-format.tooling.normalized-round-trip/name",
          "source": "Serializer-normalized round trip",
          "source_sha256": "12bc12ce71bfc6ef24c65d59fe17de047e3a80a355bfa6744100e98938adc060",
          "status": "current"
        },
        {
          "locator": "/tooling_rules/@id=particle-format.tooling.normalized-round-trip/rationale",
          "source": "The editor saves an object graph, not a token-preserving XML syntax tree.",
          "source_sha256": "6605d96db7f38fd54d9de728f2e123a3db93f3b175f2fa62a4ca98d318a82ce6",
          "status": "current"
        },
        {
          "locator": "/tooling_rules/@id=particle-format.tooling.normalized-round-trip/requirement",
          "source": "Expect Save to rewrite object ordering, optional/default fields, nesting, references, and formatting according to the SPARK graph serializer; review the semantic diff.",
          "source_sha256": "1f620895e48d3d900d2130aa3a914600ed268803b85766d811912fb75078795d",
          "status": "current"
        },
        {
          "locator": "/tooling_rules/@id=particle-format.tooling.spark-editor/name",
          "source": "Mapper SPARK editor",
          "source_sha256": "0f122cd8f74840888cad0dd7baa046207a9e99a2562680f20e300544d9087c94",
          "status": "current"
        },
        {
          "locator": "/tooling_rules/@id=particle-format.tooling.spark-editor/rationale",
          "source": "The editor reads source assets while previewing the baked runtime form.",
          "source_sha256": "78017c48ca7b9926f83f3620b81b663f0f5895e2a7323d69ed152b5f1ba0f1b3",
          "status": "current"
        },
        {
          "locator": "/tooling_rules/@id=particle-format.tooling.spark-editor/requirement",
          "source": "Edit raw .spark assets in Mapper, save through the SPARK XML saver, then rebake and recreate the .spk preview.",
          "source_sha256": "85ec27d75a9c9a7fb60d370d12545ca7d730280cafa3d000eff97fc09c915bf4",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=particle-format.validation.baker-tests/name",
          "source": "Particle baker tests",
          "source_sha256": "4dcc797aee7d4c318ad28b0f13f36faf702ee40e0ab7f5d4f32c23d4963e2cba",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=particle-format.validation.baker-tests/rationale",
          "source": "The native suite exercises both backend bake boundaries.",
          "source_sha256": "95d8c2b25c7a3f2a80a941af66b894f1713ac6bb3365665567f03a71037822e1",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=particle-format.validation.baker-tests/requirement",
          "source": "Run the ParticleBaker unit tests after changing source formats, transforms, path checks, compiler output, or dependency invalidation.",
          "source_sha256": "58c168fddeeeb4fd725b1eb1b07f7543a22af8e22e82cf44ee4f35c6f5fe0d97",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=particle-format.validation.documentation/name",
          "source": "Documentation contract",
          "source_sha256": "b332a213cf4d245ca73848868307505e3e6b53863da3f8852074a7d0ad680c0a",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=particle-format.validation.documentation/rationale",
          "source": "The manifest validates every source anchor and generated page.",
          "source_sha256": "159560643b63c8c109159f62a0c4659502d02d386a1c2b07d194d7d5a2c98465",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=particle-format.validation.documentation/requirement",
          "source": "Run docs_particle_format.py --check and its focused unit test after changing particle formats, backends, tools, or integrations.",
          "source_sha256": "182a20a3539a4fc4e057d53c37e15733c2f28f886581e4ca4adb8af2a04b9e5b",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=particle-format.validation.effekseer-runtime/name",
          "source": "Effekseer runtime tests",
          "source_sha256": "3d64926eb20442e033596888e00e5b4bb1bac6cc3e0c90af6562a587ac0e4792",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=particle-format.validation.effekseer-runtime/rationale",
          "source": "The suite checks deterministic callback geometry and supported runtime behavior.",
          "source_sha256": "c039cb5251dd3e090984a70a27f40f587203cec7e4f5a9f789bc514ebd469201",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=particle-format.validation.effekseer-runtime/requirement",
          "source": "Run the focused Effekseer runtime tests after changing compiler/runtime geometry, sorting, batching, textures, seed, or scale.",
          "source_sha256": "db62aac2443832be32762f1d91134518216f24109ec977c68880a140d2519b1f",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=particle-format.validation.model-route/name",
          "source": "Model attachment route",
          "source_sha256": "6322ee071b1b8b354c794899258282fe5bef9d34abcdf50fb3c7d251d2ab8cf0",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=particle-format.validation.model-route/rationale",
          "source": "ParticleSprite tests do not exercise model-bone ownership or projection.",
          "source_sha256": "93a8370a2e88870684660ef264d726d29eab9cf3a2b4e61953c4fc003218d44f",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=particle-format.validation.model-route/requirement",
          "source": "For AttachParticles or Critter.RunParticle changes, visibly verify the target bone, offset, active layer lifetime, animation, and FO_ENABLE_3D profile.",
          "source_sha256": "f3d0c5ece8208ac6b3e0fb831a8f577331bfe2841b53977032133618a633a6de",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=particle-format.validation.project-bake/name",
          "source": "Embedding-project bake",
          "source_sha256": "b29502214f82b6db2149775337e6ae7c14c8d5319b675aa06410800c5cbb83af",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=particle-format.validation.project-bake/rationale",
          "source": "Only the project bake sees its complete resource graph and feature selection.",
          "source_sha256": "c5bb982f1479b11f838aa2981b9836f887104eae49f79085f1a9aa4bbb9020f8",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=particle-format.validation.project-bake/requirement",
          "source": "Rebake an affected embedding project and reject authored .spk/.efk, malformed sources, missing dependencies, and stale generated resources.",
          "source_sha256": "3ec73d420701724b1455655c3ebfae6c2f8dc04c31d36e75d3a9623c5118ef01",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=particle-format.validation.render-routes/name",
          "source": "Both render routes",
          "source_sha256": "a962f9af27d5ee63ab15f0b0fe293f178a4323bb5978ad4d38c67a92d6997f0f",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=particle-format.validation.render-routes/rationale",
          "source": "Headless parsing cannot prove framing, alpha, blend, depth, orientation, or world-scale behavior.",
          "source_sha256": "02c428701d9c20d279f8cb4c5dd02dc04fc81cc63279ff61aa3d15e12db8a63e",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=particle-format.validation.render-routes/requirement",
          "source": "Visibly check atlas particles and direct-scene particles at their real draw order, camera angle, scale, depth occluders, and supported renderer backends.",
          "source_sha256": "98b89a8322b46cd6063a6db33620d503a55dd31e00accf8e0747b1aea203c861",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=particle-format.validation.visible-scene/name",
          "source": "Visible runtime validation",
          "source_sha256": "aea545a9a6e5b18a0445bcab8b303907e3a1c96ac42ba650e0ce3ef51694c767",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=particle-format.validation.visible-scene/rationale",
          "source": "Successful compilation cannot prove visual correctness or gameplay timing.",
          "source_sha256": "5da7940f47fd9dae8da9b9aebed1a2a41e9ca0571cacd8f5c495dc4fb91344df",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=particle-format.validation.visible-scene/requirement",
          "source": "Inspect every affected backend and integration route in Mapper and a representative client scene, including depth, clipping, lifetime, transforms, and performance.",
          "source_sha256": "8d551c1e3364aa3b1c3f8d73637b5a1baec0863ac024005f3e6eaae10e990881",
          "status": "current"
        },
        {
          "locator": "/xml_rules/@id=particle-format.xml.arrays/name",
          "source": "Semicolon arrays",
          "source_sha256": "aa220564417e9b8c374136e5cf2c20bce175317cfd12bd2f1a1a6095e302cb40",
          "status": "current"
        },
        {
          "locator": "/xml_rules/@id=particle-format.xml.arrays/rationale",
          "source": "convert2Array splits only on semicolons and returns false for an empty conversion result.",
          "source_sha256": "ea1f73b50c3c6f293abca47a823ed9327c5fcb907e1d05772517ef7d218c8e89",
          "status": "current"
        },
        {
          "locator": "/xml_rules/@id=particle-format.xml.arrays/requirement",
          "source": "Separate array values with semicolons; each element is converted independently and at least one converted value is required before assignment.",
          "source_sha256": "4b466faad56504b3f29bbed34d3fa7bebade343a8e1c360baf13c3e661902e93",
          "status": "current"
        },
        {
          "locator": "/xml_rules/@id=particle-format.xml.attributes/name",
          "source": "Attribute elements",
          "source_sha256": "5507a89edb548a285b0bdf170d65ebacba73448ab5c61ca6fd4e82b26a2d304f",
          "status": "current"
        },
        {
          "locator": "/xml_rules/@id=particle-format.xml.attributes/rationale",
          "source": "The loader ignores non-attrib children at attribute level and looks up each id in the descriptor.",
          "source_sha256": "a94faf09802bc9b4780b0ee19b7a776d69c9b29a6bad36c5689d88002d90ad59",
          "status": "current"
        },
        {
          "locator": "/xml_rules/@id=particle-format.xml.attributes/requirement",
          "source": "Serialize descriptor values as attrib children with a non-empty id matching the object's descriptor attribute name.",
          "source_sha256": "7c10f32020050a7d466774b54a78c0e90f177c3d68fc726b7120094687ce0741",
          "status": "current"
        },
        {
          "locator": "/xml_rules/@id=particle-format.xml.effekseer-dependencies/name",
          "source": "Effekseer dependency paths",
          "source_sha256": "364e86b02281e118e07f856254a107d866221989635d50eeaba216218a130416",
          "status": "current"
        },
        {
          "locator": "/xml_rules/@id=particle-format.xml.effekseer-dependencies/rationale",
          "source": "Dependency snapshots and compilation resolve against the physical project directory and reject escapes.",
          "source_sha256": "0de47d7a19ba3fb4fa7046daa5c975a82a50fd8b560b72a6ede51ed321910c71",
          "status": "current"
        },
        {
          "locator": "/xml_rules/@id=particle-format.xml.effekseer-dependencies/requirement",
          "source": "Keep compiler-reported dependencies relative and inside the directory resource source that owns the project.",
          "source_sha256": "5394ad27edf040c9cb880ed8df14c0ea4694e7451482919b64ed6f7b3838050c",
          "status": "current"
        },
        {
          "locator": "/xml_rules/@id=particle-format.xml.effekseer-project/name",
          "source": "Effekseer project XML",
          "source_sha256": "97957b888513c09cdef9f77f506b1963a45c559fe779fa4275fdfa1ed82dfcb9",
          "status": "current"
        },
        {
          "locator": "/xml_rules/@id=particle-format.xml.effekseer-project/rationale",
          "source": "The native compiler rejects malformed XML and unsupported profile features during baking.",
          "source_sha256": "b4f58e5708cf2c95dcdbee65a92c78975cfee2d100bba487b5a2928c48e9cb6f",
          "status": "current"
        },
        {
          "locator": "/xml_rules/@id=particle-format.xml.effekseer-project/requirement",
          "source": "An .efkproj source must be a non-empty EffekseerProject XML document supported by the fixed compiler profile.",
          "source_sha256": "094f86ae4d4d6cfe8a8d884594837f9ddff7972845edaabcbd3c1bf767bef26d",
          "status": "current"
        },
        {
          "locator": "/xml_rules/@id=particle-format.xml.names-and-unknowns/name",
          "source": "Names and unknown attributes",
          "source_sha256": "0467a43805112c0ce57391831b56c5cdd77a7bdf82cb2c27110e83f8131c165d",
          "status": "current"
        },
        {
          "locator": "/xml_rules/@id=particle-format.xml.names-and-unknowns/rationale",
          "source": "Names have a dedicated descriptor path, and typoed attributes do not affect the loaded object.",
          "source_sha256": "b347e7c81d82ae3bcdca3283fe1924bcec3505943ca6db82635de80faf1cf839",
          "status": "current"
        },
        {
          "locator": "/xml_rules/@id=particle-format.xml.names-and-unknowns/requirement",
          "source": "Write an object's optional display name in its name XML attribute. Unknown non-empty attrib ids are logged as warnings and skipped rather than becoming custom data.",
          "source_sha256": "9aabd9206e5448c8faa84710dad102f30f38e4f833fa290db099fcb42cbbdee5",
          "status": "current"
        },
        {
          "locator": "/xml_rules/@id=particle-format.xml.object-tags/name",
          "source": "Registered object tags",
          "source_sha256": "73d82d1917f4ab5b3357408471386b30c10333c156271ce1c53a70d4aaea5a08",
          "status": "current"
        },
        {
          "locator": "/xml_rules/@id=particle-format.xml.object-tags/rationale",
          "source": "Graph::addNode fails when IOManager cannot construct the named object.",
          "source_sha256": "5af5d7e90628545f23989ee8841c14d3dd02d1d8d0b36a0c9b85df34975b2e51",
          "status": "current"
        },
        {
          "locator": "/xml_rules/@id=particle-format.xml.object-tags/requirement",
          "source": "Every object element name must match one of the registered object tags in the generated catalog.",
          "source_sha256": "a7f89dd68cd0ef0b8134d2f203ac42e406c83743eafd7f5306c88c09175367e1",
          "status": "current"
        },
        {
          "locator": "/xml_rules/@id=particle-format.xml.references/name",
          "source": "Nested objects and references",
          "source_sha256": "e0191257ef34a05102523bec35cdbb32c0ea0385948a094035c1fc530a92b798",
          "status": "current"
        },
        {
          "locator": "/xml_rules/@id=particle-format.xml.references/rationale",
          "source": "The loader resolves both inline graph nodes and integer reference IDs, while the saver emits references according to graph sharing.",
          "source_sha256": "71139c416abe31e16d6607d228c772b5ab2a7d370b92990a703e1d27781076b5",
          "status": "current"
        },
        {
          "locator": "/xml_rules/@id=particle-format.xml.references/requirement",
          "source": "Reference attributes may nest an object directly or identify a previously described shared object through ref; arrays of references use nested objects and Ref children.",
          "source_sha256": "9e867af4e2ddd215d1736dfa22c2e29f2d5c45096339cfaa96aa0bbc93103f0e",
          "status": "current"
        },
        {
          "locator": "/xml_rules/@id=particle-format.xml.root/name",
          "source": "SPARK document root",
          "source_sha256": "056a9b7bacdce484648a30d26c06cb6380dc8ae33ba1f4776cf31f93fbda213b",
          "status": "current"
        },
        {
          "locator": "/xml_rules/@id=particle-format.xml.root/rationale",
          "source": "The XML loader rejects missing or differently named roots before graph construction.",
          "source_sha256": "43907600ec7c9ad571f58470366a26addc560e912e7a8c49e23214a20b715bc5",
          "status": "current"
        },
        {
          "locator": "/xml_rules/@id=particle-format.xml.root/requirement",
          "source": "The document element must be named SPARK exactly.",
          "source_sha256": "e918793ccde464569d0ef42ada82235ba769b3cbd633d6000c15cdad3a27abfa",
          "status": "current"
        },
        {
          "locator": "/xml_rules/@id=particle-format.xml.single-system/name",
          "source": "Exactly one System",
          "source_sha256": "157c430e47aec5f827c902fc90966d80f0dd2736128eed19509dfafc39131a81",
          "status": "current"
        },
        {
          "locator": "/xml_rules/@id=particle-format.xml.single-system/rationale",
          "source": "Graph validation selects the sole System as the load result.",
          "source_sha256": "73ded39c814767e9e1a63f737f33044e720b7be5764f10e771e99b77814e42b9",
          "status": "current"
        },
        {
          "locator": "/xml_rules/@id=particle-format.xml.single-system/requirement",
          "source": "The graph must contain exactly one System object; nested helper objects do not replace it and a second System is invalid.",
          "source_sha256": "f338cb408a999d5cd8ff3e04f1448d34f7736bc4493485740fdfdd7bec70b659",
          "status": "current"
        },
        {
          "locator": "/xml_rules/@id=particle-format.xml.spark-graph/name",
          "source": "SPARK XML graph",
          "source_sha256": "c73f453a6be29201e192a83e928429136a3dbe36b25c025cfed326642e517a11",
          "status": "current"
        },
        {
          "locator": "/xml_rules/@id=particle-format.xml.spark-graph/rationale",
          "source": "Baking fails when loadFromBuffer(\"xml\", ...) returns no system.",
          "source_sha256": "560b4fdbe91a32ab879a6a06bd5ad75e30327ee1151b86e87b4c39e3aac19645",
          "status": "current"
        },
        {
          "locator": "/xml_rules/@id=particle-format.xml.spark-graph/requirement",
          "source": "A .spark source must be accepted by the vendored SPARK XML loader and contain a usable System graph.",
          "source_sha256": "4c9135727c37245d0cd24ff5f84e849bae58162a39467d496a7e7cfc1bbb0537",
          "status": "current"
        },
        {
          "locator": "/xml_rules/@id=particle-format.xml.spark-textures/name",
          "source": "SPARK texture paths",
          "source_sha256": "2a023df86a026af8a98974e8d2c552bf3b0844c46ec737b4d98be5862f072b89",
          "status": "current"
        },
        {
          "locator": "/xml_rules/@id=particle-format.xml.spark-textures/rationale",
          "source": "The baker rejects absolute and escaping paths before producing .spk.",
          "source_sha256": "473498335320835f98d2e1a65c93ad547b04e1d4a8335853bcba21acc1a80d8a",
          "status": "current"
        },
        {
          "locator": "/xml_rules/@id=particle-format.xml.spark-textures/requirement",
          "source": "SPARK texture paths must be relative, contain no line-control characters, and remain inside the particle's resource source.",
          "source_sha256": "15ddc107d6877b29f5633ee70f68b707668859f7fb3cc712858850f690259c38",
          "status": "current"
        },
        {
          "locator": "/xml_rules/@id=particle-format.xml.values/name",
          "source": "Value attribute or text",
          "source_sha256": "342dbb19874c4e1dbb04b19cb47cda8b864701db136144d119dfb8b336389d70",
          "status": "current"
        },
        {
          "locator": "/xml_rules/@id=particle-format.xml.values/rationale",
          "source": "XMLLoader::getValue checks the value attribute first and otherwise reads child text.",
          "source_sha256": "b7c6bf0ac120e3f14af75056f5b6100f180884afce1c05199e6646080bc398a0",
          "status": "current"
        },
        {
          "locator": "/xml_rules/@id=particle-format.xml.values/requirement",
          "source": "A scalar or array value may be written in the attrib value XML attribute or as element text; value takes precedence when both exist.",
          "source_sha256": "3257fb35e67b21d662740999b8fa795d0dbaaa223df89d748920cada167b8d60",
          "status": "current"
        }
      ]
    },
    "prototype-format": {
      "source_model": "Docs/generated/prototype-format.json",
      "entry_count": 190,
      "current_count": 190,
      "missing_count": 0,
      "complete": true,
      "entries": [
        {
          "locator": "/description",
          "source": "Source-backed authoring contract for FOnline prototype files.",
          "source_sha256": "083cab181cba34cc7af18a956349049ef66400e2f8919dd90c3ab82eecc5da1f",
          "status": "current"
        },
        {
          "locator": "/directives/@id=prototype-format.directive.name/default",
          "source": "source file name without its extension",
          "source_sha256": "ea2b7369be3d58037a514bfb34ee1beaeb4b1d406b8bfa351c2561043e94ea4e",
          "status": "current"
        },
        {
          "locator": "/directives/@id=prototype-format.directive.name/description",
          "source": "Sets the prototype identity within its resolved type. The identity is migration-resolved before duplicate detection.",
          "source_sha256": "592da0e48d1fd65c5256b454552139533748b255b76a49d7f696b91d7cd07d49",
          "status": "current"
        },
        {
          "locator": "/directives/@id=prototype-format.directive.parent/default",
          "source": "no parents",
          "source_sha256": "5113b2beb2cdabb90509bff8987abf0294a2d6d019e0e75a96b2283dfa996925",
          "status": "current"
        },
        {
          "locator": "/directives/@id=prototype-format.directive.parent/description",
          "source": "Lists same-type parent prototypes separated by spaces. Parents are merged left to right and the child is applied last.",
          "source_sha256": "4955d31821cbfa85635de71b8126a399652f44128ab717516e7b64aadc6656ac",
          "status": "current"
        },
        {
          "locator": "/file_selection/description",
          "source": "The engine defaults are read from Settings.inc; embedding projects may add extensions without changing the grammar. ProtoBaker consumes every top-level prototype/fixed-type section and skips nested map placements.",
          "source_sha256": "2d446ddc4892d4c1e72f2c9122378aa0db5ece19f64055e76c843029d476b6d7",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.AttachMaster/description",
          "source": "Identifier of the attachment master; zero when the critter is not attached",
          "source_sha256": "7322c3094e8eed388df1fba240578d7855801138f86b0c715e6941ef08babbe4",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.AttachMaster/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.Condition/description",
          "source": "Current life-state condition used by animation, filtering, and gameplay queries",
          "source_sha256": "2afcc291a8b5a505cd1930649d35673632251f86ff1ce75de5e9b6ec964f3e33",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.ControlledByPlayer/description",
          "source": "Classifies the critter as player-controllable independently of its current online state",
          "source_sha256": "6fe4912752db582cec69d3de354ada545935ac26ed477846853ab955c2b5c3c0",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.ControlledByPlayer/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.CustomHolderEntry/description",
          "source": "For a custom entity, names the holder entry through which it is attached",
          "source_sha256": "1050e666d84a94010a810b27fa9d7f3ad171a30f9a7d8d759bfb66b9dc73a348",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.CustomHolderId/description",
          "source": "For a custom entity, stores the persistent identifier of its owning holder; zero when the holder has no persistent identifier",
          "source_sha256": "f84e0928a758c5e497d28a042fd88d98879212b1ac2f6931f329526772f507b3",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.DeadDrawNoFlatten/description",
          "source": "Keeps a dead critter in the normal critter draw order instead of the flattened dead-critter order",
          "source_sha256": "891621e672774d5264b2ffb1613683cb9ab83fad4f2f877721d48851f40bd601",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.Dir/description",
          "source": "Current facing direction on the map grid",
          "source_sha256": "ec2df791dfe2567ef28726bdb6eb1631477d238ed40d57f9cfcffaaa445ddede",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.Elevation/description",
          "source": "Vertical rendering elevation of the critter",
          "source_sha256": "0d356e2b8b3c58596328c573c25bb438a96615db22c714bd5c0e23932af67cba",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.ExplicitlyPersistent/description",
          "source": "Marks an entity as independently persistent rather than persistent only through containment by another entity",
          "source_sha256": "909a82b41efa2f84a7e1fd273e8267c3b69fc21f3390ff505defbb973cf11e51",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.GlobalMapTripId/description",
          "source": "Server-assigned identifier shared by members of the same current global-map trip",
          "source_sha256": "150133a813a0a180910efe456a696c997b1e7e0f9e443affb685091d90f2b678",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.GlobalMapTripId/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.Hex/description",
          "source": "Origin hex currently occupied by the critter on its map",
          "source_sha256": "4673dc90632e2343fafd7d22411b309cb8670c1153963561fbbbf3bf76c08227",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.HexOffset/description",
          "source": "Sub-hex map-space offset used by movement interpolation and rendering",
          "source_sha256": "d5b05576494249b7957e87938fb0c13671789b2fe9b5b252914a906a3fedc9bc",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.HideSprite/description",
          "source": "Hides the current client map sprite without removing the critter's map presence",
          "source_sha256": "f65ac8e86db89b74cfbdc7b4435eecb83865fb9f2f5c899a1fa9208e9b141445",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.InitScript/description",
          "source": "Server initialization function called after the critter-init event for a newly created or restored critter",
          "source_sha256": "b4b717c3f31356bff2f72d8197f7658746d0b2af05f9fb966c335c9f074412de",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.IsAttached/description",
          "source": "Reports that this critter currently follows another critter as an attachment",
          "source_sha256": "b8587bbd99ce1fc420a5c32a110491c986d513981939362dacd32bf490be8d36",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.IsAttached/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.IsChosen/description",
          "source": "Reports that this critter is the locally chosen critter on the current client",
          "source_sha256": "381e130d01d4c815747cf6091918b078756c0360817a237010518e9b5b3aee79",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.IsChosen/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.IsPlayerOffline/description",
          "source": "Client-side connection state reported for a player-controlled critter",
          "source_sha256": "f153b3cf89aebef940af174bddc8a7f977265dfc401cd362959b2fc3a9246e71",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.IsPlayerOffline/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.ItemIds/description",
          "source": "Persistent identifiers of the items directly held in the critter's inventory",
          "source_sha256": "b36a3cf283ea2690381cf7a72659b34381f660c9436d905a97d00694169ed90d",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.LightColor/description",
          "source": "RGBA color emitted by the critter's client-side light source",
          "source_sha256": "88d328cc2723924031ded0647f20671259a644ea8b912439ab1560bf25e463cd",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.LightColor/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.LightDistance/description",
          "source": "Radius in hexes reached by the critter's client-side light source",
          "source_sha256": "f25441db4ccf37f9477696ec349a9229623d2e1b5d2d1a2a12e1d2f1cb062573",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.LightDistance/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.LightFlags/description",
          "source": "Bit mask controlling global, inverse, and direction-blocking behavior of the light source",
          "source_sha256": "8046c6aff9fc965d52aa6f346beacf6560ff28bdb8b15e8346f029d6fd0ddbc4",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.LightFlags/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.LightIntensity/description",
          "source": "Signed percentage intensity of the critter's client-side light source",
          "source_sha256": "f14dfed224d2691eccdc99cd59b5d17080fa909760b4424f94a30b2c9a361c0e",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.LightIntensity/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.LightSource/description",
          "source": "Enables a client-side map light source centered on this critter",
          "source_sha256": "81799139e0e90b3da0d8ff6cc9c815d3b7c033f5507e7a9d1eaa6e4673557b8c",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.LightSource/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.LookDistance/description",
          "source": "Maximum map-view distance in hexes used by server visibility processing",
          "source_sha256": "c8034068f82917328834377f3d8b396d9ce4402ba0b433b81cadfbd44f8c031f",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.MapId/description",
          "source": "Identifier of the map currently containing the critter; zero while it is on the global map",
          "source_sha256": "59c6b611b4325b1c6c16dc0993104036c13ddaf388c8b2c22a948c745f285633",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.ModelLayers/description",
          "source": "Fixed-size client values passed to the 3D model layer and animation resolver",
          "source_sha256": "1d2a56becb527cfd62f862977b11e16a1c119a556c7eec6702746d191b605974",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.ModelLayers/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.ModelName/description",
          "source": "Sprite or 3D model resource used to present the critter",
          "source_sha256": "69d124a0012e5742bdf62f5aee5c124f95d439b041e250f0006d87511f5ad63d",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.MovingSpeed/description",
          "source": "Current server movement speed published for active movement",
          "source_sha256": "f473809fb05663ef513259a86b455e883426981039533dd06e89483977da8c01",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.MovingSpeed/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.Multihex/description",
          "source": "Radius in hexes occupied by the critter in movement, pathfinding, and distance checks",
          "source_sha256": "8243c8fafcd3fb39b49333e131ef30daff5ed37b5a7dd63c229c8facd67aaf19",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.NameOffset/description",
          "source": "Vertical pixel adjustment applied to the critter name label",
          "source_sha256": "c1808ffa3b13587c823c7eef6cab1adc0e5d2d2987c2bc4ef07687ea887f74d2",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.ScaleFactor/description",
          "source": "3D model scale in thousandths; zero selects the default scale of 1000",
          "source_sha256": "de043ac920f0dcf58b124093ede046063447afb7ad4d69db37585cbf6b868152",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.ShowCritterDist1/description",
          "source": "Optional first visibility-event distance in hexes; zero disables this distance group",
          "source_sha256": "f0fa76d680d51b3ca727d663ae6456c87525ae6da02daf967bce05532f3388b4",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.ShowCritterDist2/description",
          "source": "Optional second visibility-event distance in hexes; zero disables this distance group",
          "source_sha256": "b12e13e50471425a135e4e9f12be606edc4fcf3ae917ba5a6ff5d8d2573b7548",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.ShowCritterDist3/description",
          "source": "Optional third visibility-event distance in hexes; zero disables this distance group",
          "source_sha256": "3c063f897d07ccd7dc2d66e41a791e0e37c5d6793fa356076deaaade0b0adcfe",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.VisibilityMode/description",
          "source": "Visibility detail mode assigned to this critter from the current client's viewpoint",
          "source_sha256": "ba9e8d77f08fbaee8cd10f84866c21c5d60edd7a4f0c31ff9af07d0fe57c77fa",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Critter.VisibilityMode/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.AlwaysHideSprite/description",
          "source": "Prevents the item sprite from being drawn at runtime and hides it by default in Mapper",
          "source_sha256": "35bbd94aefd466f34cc5b9d2561f4cd554850378266d72e52df6b764d0a7d1d2",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.Colorize/description",
          "source": "Enables ColorizeColor tinting for the item's map sprite",
          "source_sha256": "fc4a04b90caa7c6602957d4a260cffa28ad283acc864ed3116d2f5339e341817",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.ColorizeColor/description",
          "source": "RGBA tint applied when Colorize is enabled; alpha also supplies the default sprite opacity",
          "source_sha256": "ebe85964e70fa2e7f5b2c315636c32f31b3a0a5115fb6d3f01eaf2ee68bd0de2",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.ContainerId/description",
          "source": "Identifier of the parent item while Ownership is ItemContainer; zero otherwise",
          "source_sha256": "c85a3e9812e7fc48a9e9a55573956448664d61f40174c8a48d8b6844555da73a",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.ContainerStack/description",
          "source": "Project-defined grouping key used to select and merge items inside a container",
          "source_sha256": "a88ea8a1f9f4099039b20d4ecede9d8894dd4fcda99b506ce39b39fd0b108481",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.Corner/description",
          "source": "Wall-corner orientation used by map lighting and transparent-foreground behavior",
          "source_sha256": "daaaf946091f088f124d52c8573ad8e0b445dd278ffb9abb2bd6149263438b57",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.CritterId/description",
          "source": "Identifier of the owning critter while Ownership is CritterInventory; zero otherwise",
          "source_sha256": "13163e321142cdc5a2132d01d1196e72b7881953b23a53297d7b9456720b3d56",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.CritterSlot/description",
          "source": "Inventory or equipment slot occupied while the item belongs to a critter",
          "source_sha256": "04356d847e6a4adad69bf5df6099ddd423664b953973627513ed2fb933c60886",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.CustomHolderEntry/description",
          "source": "For a custom entity, names the holder entry through which it is attached",
          "source_sha256": "1050e666d84a94010a810b27fa9d7f3ad171a30f9a7d8d759bfb66b9dc73a348",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.CustomHolderId/description",
          "source": "For a custom entity, stores the persistent identifier of its owning holder; zero when the holder has no persistent identifier",
          "source_sha256": "f84e0928a758c5e497d28a042fd88d98879212b1ac2f6931f329526772f507b3",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.DisableEgg/description",
          "source": "Disables transparent-foreground egg processing for the item's map sprite",
          "source_sha256": "166fd72b77aab431e0f9a90190521321c69a4cc47972ada45f5515f2eaef9ff6",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.DrawFlatten/description",
          "source": "Renders the item in a flat map pass instead of the normal depth-sorted item pass",
          "source_sha256": "8c42c5f7962a272d8b9e70aade0133b2beae3deb1203b7f6b0f01b2d864c097c",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.DrawMultihexLines/description",
          "source": "Draws repeated item sprites on footprint hexes generated by MultihexLines",
          "source_sha256": "e1f92c7770e5a03345518079545fbedfff6a27a97c418d31d7d98e5399525ae3",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.DrawMultihexMesh/description",
          "source": "Draws repeated item sprites on the explicit MultihexMesh hexes",
          "source_sha256": "c24ca063a44af2b82ae183fab57ad10825260e0e22e2f52d4d288d5be2d51181",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.DrawOrderSubLayer/description",
          "source": "Fine ordering inside the item's primary draw-order layer; synchronized when changed at runtime",
          "source_sha256": "55fb2bfaa60af95d8078bb9e8e7479fcf877e7408b86da776626d6946d46a736",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.Elevation/description",
          "source": "Vertical rendering elevation of the map item",
          "source_sha256": "1a2a1b15c27eca391a5e41748dc34b495971a1be9dd6d1f4bf7c1cb3a34cd53b",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.ExplicitlyPersistent/description",
          "source": "Marks an entity as independently persistent rather than persistent only through containment by another entity",
          "source_sha256": "909a82b41efa2f84a7e1fd273e8267c3b69fc21f3390ff505defbb973cf11e51",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.Hex/description",
          "source": "Origin map hex used while the item is placed on a map",
          "source_sha256": "dffc781d0273108a8166191f1ee7febb58907456ba4a0c8571a8548e5dbf7a33",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.Hidden/description",
          "source": "Server visibility flag that suppresses a dynamic item from client views while set",
          "source_sha256": "637af3b02f94ec0a51dfc10801f441ca0dc7c2a5ad7f5bde36e947edcdecd812",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.HideSprite/description",
          "source": "Hides the current client map sprite without removing the item's map presence",
          "source_sha256": "03595d24e3807b1bd2adda9a5d7fbc3e87341f55193ecc8f6ed0ef53830613db",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.InitScript/description",
          "source": "Server initialization function called after the item-init event for a newly created or restored item",
          "source_sha256": "92c8c2cd2af271cbebda880be7310c5cdae7e3a75135bc0873b8dbb4dfa56b82",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.InnerItemIds/description",
          "source": "Persistent identifiers of the items directly contained by this item",
          "source_sha256": "e0d3bca11c2ebef564c2c5adaea9ac4544cd821ae15094f6fd6791ea1405a876",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.IsGag/description",
          "source": "Marks a blocking item as conditionally passable through the map gag callback",
          "source_sha256": "d6ead5d157ce9a339e1981db6301c067f80773f5dc0006728c6a64a4efb2eb6d",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.IsRoofTile/description",
          "source": "Selects roof rendering instead of ground-tile rendering when IsTile is enabled",
          "source_sha256": "b019a3275120fddbf135b646be5d3691f333ec42ea2c77142e8263a5d66bc64a",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.IsScenery/description",
          "source": "Classifies the item as scenery for Mapper filtering and flat-render lighting rules",
          "source_sha256": "e41d65a20f9fbd4390072cc498f637608fde707756922c1a5692e7612c840c4a",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.IsTile/description",
          "source": "Classifies the item as a ground or roof tile rendered in a tile layer",
          "source_sha256": "03a9b963535708e07109769fdd25dea31bae0958dda28e54cc151695caa469cb",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.IsTrigger/description",
          "source": "Includes the item in map trigger lookup and movement-trigger processing",
          "source_sha256": "7cfbc5d256b1e4dfb364fe05767e6bbb741d5b9696c0b4e07cbb0047694970c1",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.IsWall/description",
          "source": "Classifies the item as a wall for Mapper filtering and map presentation",
          "source_sha256": "5dc61a298f187be1900a6a22c3319644558b714cd962655e392997b97f85b668",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.LightColor/description",
          "source": "RGBA color emitted by the item's light source",
          "source_sha256": "571e9fe8175d07be7ddd5db7a81dc0bcd27976f8e519632996682416dbb95931",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.LightDistance/description",
          "source": "Radius in hexes reached by the item's light source",
          "source_sha256": "ad159f0529a1fdffa5884404e3e1f88a13da7381faf87c08f13a0918ab29bc6e",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.LightFlags/description",
          "source": "Bit mask controlling global, inverse, and direction-blocking behavior of the light source",
          "source_sha256": "8046c6aff9fc965d52aa6f346beacf6560ff28bdb8b15e8346f029d6fd0ddbc4",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.LightIntensity/description",
          "source": "Signed percentage intensity of the item's light source",
          "source_sha256": "b58932e26f9f005302377f2cfa1110c75ded4c1ea422638619290be9f1ed37ba",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.LightSource/description",
          "source": "Enables a map light source centered on this item",
          "source_sha256": "d287baff16708fe3fc54acc82e11370dbe4c75368b824c1217b6701811552284",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.LightThru/description",
          "source": "Allows map light propagation through every hex occupied by the item",
          "source_sha256": "1037af338e9b7376b3a18c459cdfadf082ea98fba93afd2c1cd145c9a404f823",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.MapId/description",
          "source": "Identifier of the owning map while Ownership is MapHex; zero otherwise",
          "source_sha256": "2c46f45492a4e7e8b84eea7f0d09c5ddc481e712e59c1f4cb3f1a3847a38f066",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.MultihexGeneration/description",
          "source": "Mapper coalescing strategy used to build MultihexMesh from compatible item placements",
          "source_sha256": "fc29904b19512b32c28da26f6e561fade5d8e0e100c83d4cf5b83fd90d713b77",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.MultihexLines/description",
          "source": "Direction and step-count pairs that trace additional footprint hexes from each mesh origin",
          "source_sha256": "cb8c7af3792f23d28e56ca10e77c1e42880daa622880376c303f6e8759237e73",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.MultihexMesh/description",
          "source": "Explicit map hexes that share this item's footprint and optional repeated sprite",
          "source_sha256": "64d3fad57d3b2158528f52ee892636e53709072c139e7c15d4e7cf2b36cd7e3b",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.NoBlock/description",
          "source": "Allows movement through every hex occupied by the item",
          "source_sha256": "47c83de8812ede09ff101593fe047c00fe7fe8ad0df398ad0825d74c6e938d8c",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.NoHighlight/description",
          "source": "Prevents the client from applying normal item highlight presentation",
          "source_sha256": "3913f9b16e667e72c3057841165a1c035be5191e2d72d60203a709d27322eb80",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.NoLightInfluence/description",
          "source": "Prevents ambient map lighting from tinting the item's sprite",
          "source_sha256": "a0eac1c042bcb0ffd45a7ce06e9181e22ccf36207156193ed9c52f5ce387d08b",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.Offset/description",
          "source": "Pixel offset applied to the item's map sprite from its origin hex",
          "source_sha256": "7a272511540548ee8b56d6ed151072068dcc37b4a6dfa1e42ea13f148ad16132",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.Ownership/description",
          "source": "Current placement category: map hex, critter inventory, item container, or nowhere",
          "source_sha256": "7f18b6727e88f6a9f2dd9e4ac8fa9f2954debee9351d8c1d9cda9660afc20d7f",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.PicInv/description",
          "source": "Sprite resource used to present the item in inventory interfaces",
          "source_sha256": "a14861a79d378dd986d0c5a1f31cb43d745b23dcd5502f66ca74fa8e5a4f15ee",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.PicMap/description",
          "source": "Sprite resource used to render the item on a map",
          "source_sha256": "ab14f55b75cc41008483bf44e6eb5d60046db1eb89c820cc29227f941f262567",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.ShootThru/description",
          "source": "Allows projectile traces through every hex occupied by the item",
          "source_sha256": "bc1513365e7604c60ab42986e2e235bf63ae81f5081ee66377dbc348d0a157ae",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.Static/description",
          "source": "Marks map-authored item data as static scenery rather than a dynamic item entity",
          "source_sha256": "5fd25d0321400cdb6825f1b256dbf52f6e3a41c4be58a508e6375fe045a30fb2",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.StaticScript/description",
          "source": "Server callback invoked when a critter interacts with this static item",
          "source_sha256": "80accddad61a6cbeb107b37c7e6fc4691023d6304302fbd93627672e584a67ea",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.TileLayer/description",
          "source": "Zero-based ground- or roof-tile draw layer selected for a tile item",
          "source_sha256": "a406efdae80c13b34e1cd584889d5d940a6943a27c70fd1f486b7f7a37b131cf",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Item.TriggerScript/description",
          "source": "Server callback invoked when a critter enters or leaves this trigger item",
          "source_sha256": "8fde30c2a2608ca0eb769ffd696ba7fee6c5df33a2002299a603d40e4fe273d7",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Location.CustomHolderEntry/description",
          "source": "For a custom entity, names the holder entry through which it is attached",
          "source_sha256": "1050e666d84a94010a810b27fa9d7f3ad171a30f9a7d8d759bfb66b9dc73a348",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Location.CustomHolderId/description",
          "source": "For a custom entity, stores the persistent identifier of its owning holder; zero when the holder has no persistent identifier",
          "source_sha256": "f84e0928a758c5e497d28a042fd88d98879212b1ac2f6931f329526772f507b3",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Location.ExplicitlyPersistent/description",
          "source": "Marks an entity as independently persistent rather than persistent only through containment by another entity",
          "source_sha256": "909a82b41efa2f84a7e1fd273e8267c3b69fc21f3390ff505defbb973cf11e51",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Location.InitScript/description",
          "source": "Server initialization function called after the location-init event for a newly created or restored location",
          "source_sha256": "06ca5c2f44541f145f85a9eb9c2d230cb115412a59951ee233501cefa4eeae3a",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Location.MapIds/description",
          "source": "Persistent identifiers of the maps owned by this location, in location-map order",
          "source_sha256": "c534f6bf02f4b86795dfab21f1c845908827df13ba74c7a0a6d9b831e615232e",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Map.CritterIds/description",
          "source": "Persistent identifiers of the non-player critters owned by this map",
          "source_sha256": "383b430c8c33bf1885c300520c17fd38067ff56b78d668e11ac9244035dd8e8f",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Map.CustomHolderEntry/description",
          "source": "For a custom entity, names the holder entry through which it is attached",
          "source_sha256": "1050e666d84a94010a810b27fa9d7f3ad171a30f9a7d8d759bfb66b9dc73a348",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Map.CustomHolderId/description",
          "source": "For a custom entity, stores the persistent identifier of its owning holder; zero when the holder has no persistent identifier",
          "source_sha256": "f84e0928a758c5e497d28a042fd88d98879212b1ac2f6931f329526772f507b3",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Map.DayColor/description",
          "source": "Channel-major RGB values for the map's corresponding daylight color keyframes",
          "source_sha256": "8c28d7782ce766bae7a87f21602faf98ccc756e3917e876a0278936521dae885",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Map.DayColorTime/description",
          "source": "Map-specific daylight color keyframe times expressed in minutes of the day cycle",
          "source_sha256": "063442b339f136a862ee76aca06b2b9f76af23eef2bdcef6d597bacafc297b48",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Map.ExplicitlyPersistent/description",
          "source": "Marks an entity as independently persistent rather than persistent only through containment by another entity",
          "source_sha256": "909a82b41efa2f84a7e1fd273e8267c3b69fc21f3390ff505defbb973cf11e51",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Map.FixedDayTime/description",
          "source": "Map-local day-time override value, conventionally expressed in minutes and interpreted by game scripts",
          "source_sha256": "733a7356ce97118638d8a96d452edf88bb2b23c6af70c8ca437978b1124fee05",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Map.GlobalDayColor/description",
          "source": "Current client-side global daylight color supplied through SetDayColors for scripts and effects",
          "source_sha256": "5062b0632e9dfa916cb4a1452f07becc6317345af600ffa19e3857a4faf8a19d",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Map.GlobalDayColor/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Map.GlobalDayLightCapacity/description",
          "source": "Current daylight capacity percentage for light sources flagged as global, clamped to 0 through 100",
          "source_sha256": "0e896da615c499ca6b6d72bbfb4ff6cce8634eee240e64afb1eb6f58bb28a46d",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Map.GlobalDayLightCapacity/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Map.InitScript/description",
          "source": "Server initialization function called after the map-init event for a newly created or restored map",
          "source_sha256": "b346fcb09dd09317254f8bd4a470e5686139f49d77fdddb12cc789c9b9a54fdf",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Map.ItemIds/description",
          "source": "Persistent identifiers of the dynamic items placed directly on this map",
          "source_sha256": "f68bdd19c02a3c7072ef0c3f60c46e20895921dc5864e549679ff50e67587c65",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Map.LocId/description",
          "source": "Identifier of the location that owns this map",
          "source_sha256": "a03a7cf8f8affc1651b2f66086f024e3a3e58ae8f73bc470d3f60fd31ec661e9",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Map.LocMapIndex/description",
          "source": "Zero-based position of this map in its owning location's map list",
          "source_sha256": "edc543ed913945fdf817c99f20c8174c2f26112564f57b9a1d30a42ba8ba5d59",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Map.MapDayColor/description",
          "source": "Current client-side map tint supplied through SetDayColors and consumed by map rendering",
          "source_sha256": "7d45ea8d535569211311209d1e1b090eff8bd95a7711ad597fe4674d6b8c39f3",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Map.MapDayColor/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Map.MapDayLightCapacity/description",
          "source": "Current daylight capacity percentage for ordinary map light sources, clamped to 0 through 100",
          "source_sha256": "a7905a27180f72a6d5c60e80fbd6a24dcd91c21834c106f7ffbd18129444961f",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Map.MapDayLightCapacity/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Map.RemovedStaticItemIds/description",
          "source": "Identifiers of the baked static items this map instance has dropped; removal is one-way for the life of the instance",
          "source_sha256": "10145eb732c492e95bd1f053d5f0dd6f9130a2d46594d4d1bdd479c2eed8351f",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Map.ScrollAxialArea/description",
          "source": "Axial-coordinate rectangle that bounds map scrolling; a zero rectangle leaves the full map available",
          "source_sha256": "3fa8a2bad17f4366872010bfc71dd29fae1130ec58631caac1921a43c94da421",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Map.ScrollOffset/description",
          "source": "Rounded client viewport offset in map-space pixels",
          "source_sha256": "db936c3fe0561e0b2e76721fec01b38c190f6d0df6c06e0c0de5db60f847e17c",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Map.ScrollOffset/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Map.Size/description",
          "source": "Width and height of the map grid in hexes",
          "source_sha256": "55bb18dc4ab688f68beaf3fb1b2bfed3d1d671b87a6c09cf6816c70f83e77e49",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Map.SpritesZoom/description",
          "source": "Current client map-sprite zoom factor",
          "source_sha256": "e7dab76f2064735454657cf83bfd532048bf61a2dbf2c0e7a92b8e919305b47c",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Map.SpritesZoom/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Map.SpritesZoomTarget/description",
          "source": "Target zoom factor toward which the client map view is interpolating",
          "source_sha256": "5cc47384c7e656b8df01bf7003c3ca3f136e115eb89e50dc18affa7ba19589d1",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Map.SpritesZoomTarget/excluded_reason",
          "source": "temporary",
          "source_sha256": "ea8b82a5c42a33f042e3f6c8d0f750226bf9e0ac8268e8e8ac9ab02cc1d99dff",
          "status": "current"
        },
        {
          "locator": "/properties/@id=prototype-format.property.Map.WorkHex/description",
          "source": "Authoring work hex used as the initial Mapper view center",
          "source_sha256": "39e3f4def04bf163c5b07c4ede4f0dbe86be876eeee8e51712a36a3b3162a429",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.acyclic-inheritance/description",
          "source": "ProtoBaker and ProtoTextBaker track the active parent path and reject self, pair, and longer cycles under every repeated-parent policy.",
          "source_sha256": "8b0be70e60b03f23809ef262b76fb9287eb9d54b85994acab23828774eec3bbc",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.acyclic-inheritance/name",
          "source": "Acyclic inheritance",
          "source_sha256": "7ff534d4765f947c79d0c3de65f414cead72feb25ee688c0517b61d765dac688",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.acyclic-inheritance/requirement",
          "source": "Prototype parent graphs must be acyclic.",
          "source_sha256": "bf22407129f7bb17b9d8044328a848c6c525b3fd834a234d78c465ef8c3b9d7d",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.config-syntax/description",
          "source": "Prototype files use the shared ConfigFile parser; quoted or escaped comment characters remain part of the value.",
          "source_sha256": "02a95a175613626cecc94aceaeff6be8b3e3d78aeccc63715a4ca6aab09b0dba",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.config-syntax/name",
          "source": "Configuration syntax",
          "source_sha256": "8ba0c0cd1d9a44cd69850ff4d459bd88a5b9d10a742ff0fa566261f80d27c188",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.config-syntax/requirement",
          "source": "Use repeated INI-like sections, key = value assignments, # comments, whitespace-prefixed trailing backslash continuation, and key += value append where appropriate.",
          "source_sha256": "03fd67e9ed69c717476d94d6e2360ee47e02def4cf7335a506adddada7a1c61e",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.file-filter/description",
          "source": "Directories and conventional extension names do not select a prototype type; the section does.",
          "source_sha256": "b5f9425670f44b13b84252ab87b6b47560e18c45529ac39cc4f8732355850b51",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.file-filter/name",
          "source": "Extension filter",
          "source_sha256": "345d6ac7f702513d6aedbf112d0c553d0ac40c2ff77faf8e1dc2b069b50114e1",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.file-filter/requirement",
          "source": "Only files whose extension occurs in Baking.ProtoFileExtensions enter ProtoBaker.",
          "source_sha256": "0206ebc2fee53f058180f9fb1ffdafe4bcf77b7f4499023fe11f5ac492b267c7",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.identifier-characters/description",
          "source": "The baker rejects either character after applying the file-basename fallback and before hashing or duplicate detection.",
          "source_sha256": "18541d1f263496a93bd3b23d0c70d5b6b784f1a211d9e5379e4c4b84c5ba5bc9",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.identifier-characters/name",
          "source": "Reserved identifier characters",
          "source_sha256": "1cd0ab9d54c7be454c1ee92bd48dbd0f44c14fe1eafea270ebd81ce69977051c",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.identifier-characters/requirement",
          "source": "Prototype ids must not contain / or $ because both characters are reserved for nested section addressing.",
          "source_sha256": "29d280f10ac918596a9c08742e860f81b467ddbf47d59296e56100f15b3a91ff",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.identity-per-type/description",
          "source": "The same text id may exist in different prototype types; duplicate ids in one type fail the bake.",
          "source_sha256": "488f2c5bc1694dd266a48cfa29735aef4ca40a75c01757c2fd554ee316c3bf8c",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.identity-per-type/name",
          "source": "Identity and duplicates",
          "source_sha256": "3c9c640771b828b8d10708724e9217c1ff28260aa8b7245292acb10ba2f59d7a",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.identity-per-type/requirement",
          "source": "A migration-resolved prototype id must be unique within its resolved type across the complete pack input.",
          "source_sha256": "1986768d24ac0d686674e4655c3d9565f268dca1585c143d5c7e4b64ed3fc908",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.inheritance-precedence/description",
          "source": "$-prefixed control directives are not copied into the merged property map.",
          "source_sha256": "ba093107a30b5686de6a3df62b1ad1f60f1766554bb9eb90d25d65f8ed808140",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.inheritance-precedence/name",
          "source": "Inheritance precedence",
          "source_sha256": "2f66124b72d3ac5cd0e3484e3bca4c911471b9bf3e8f85163b099f441af4215c",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.inheritance-precedence/requirement",
          "source": "Merge ancestors depth first, then parents from left to right, then the child; later property values replace earlier values.",
          "source_sha256": "86cebdf1dc62f26432b1493c7ad2de1fd4277d952c6f8537ed66758104ea7064",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.inheritance-scope/description",
          "source": "Parents may be declared in another file, but cross-type and missing parents fail the bake.",
          "source_sha256": "49ad98bed31190e4d8f4d07a81b397dfbda4252cc8331c90e017c4a88bc91163",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.inheritance-scope/name",
          "source": "Inheritance scope",
          "source_sha256": "1d52ad0cd9dde243b1ad4cb00f1e5c12a8569dec3ada93996470d55d45d13c95",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.inheritance-scope/requirement",
          "source": "Every parent must resolve inside the same prototype type and current pack input.",
          "source_sha256": "8c479e7f03a3ec549c4a71d798018c30bee9265c0f4242fca3e366aba8f5fb02",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.init-script-signature/description",
          "source": "Server baking validates ScriptFuncType metadata for every authored callback property and rejects missing functions or mismatched signatures before runtime.",
          "source_sha256": "2cbf2bc3a70ba1e10c1e9dda50879a68641172d16cc98fdee0242dc32a46e362",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.init-script-signature/name",
          "source": "InitScript callback signatures",
          "source_sha256": "a635c88472791c5ab0301e5cfe379e7ce0aa7c0d2afaecb9c6e38d1034911441",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.init-script-signature/requirement",
          "source": "A non-empty built-in Item, Critter, Map, or Location InitScript property must resolve to a global void callback receiving that entity type and bool firstTime.",
          "source_sha256": "5c3a76a9664b0ddf8429feaf38db44926abf7bcb5ebfee72f9b79e68f365eaf3",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.property-resolution/description",
          "source": "Unknown, disabled-for-this-side, virtual, and temporary properties are rejected; opposite-side-only properties are skipped for that side.",
          "source_sha256": "18095fb7f65adf8b52e5b8f99923c0dde2a18bb10fadd4bed14433e3489aab99",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.property-resolution/name",
          "source": "Property resolution",
          "source_sha256": "67b0080ec421ce890de202e181ac0b2d950d1053f47a9de9e4555089dd518422",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.property-resolution/requirement",
          "source": "Every non-control key must resolve to a property available for the current bake side.",
          "source_sha256": "bb545c29f25c1dc4fa52d9ebf968b1d69677adef39f83b7c49a5a2df31a6605c",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.proto-migration/description",
          "source": "Author migrations in native/project metadata with ///@ MigrationRule Proto <Type> <Old> <NewOrRemove>.",
          "source_sha256": "484a9df55871d4e20e4121376ae76760ae782ab9763a3e0fe5df5dbe9486a397",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.proto-migration/name",
          "source": "Prototype migration",
          "source_sha256": "04fb86a69a92c9277e619542b83494d7d8fe64cdfad971b969a7d04c212fd3d7",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.proto-migration/requirement",
          "source": "Proto migration rules are applied to declared ids, parent ids, lookups, and persisted references before final resolution.",
          "source_sha256": "a85a9e3c4ea4fddb7444f892a55b8fa3dbc4c625d6beb0849123bb1502f1d49d",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.proto-reference/description",
          "source": "A removed or renamed referenced id needs an explicit Proto migration rule to a valid target or Remove according to the owning persistence policy.",
          "source_sha256": "88fad8262b86da1d45daa702037306204147c09b51a99b50d7baa88cd078a989",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.proto-reference/name",
          "source": "Prototype references",
          "source_sha256": "9186255de4f7780eb716991831cd746209092bde1a66f3b52dfe1d98d39ba9db",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.proto-reference/requirement",
          "source": "FixedType and Proto entity property references must resolve after migration unless the property is nullable and the authored value is empty.",
          "source_sha256": "d5c08397b2e94007068881bd23f42d4df47a0a538b13c12ddae387a051e1372d",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.repeated-ancestors/description",
          "source": "The default is permissive; set the option false when a project wants every inheritance diamond to fail baking. ProtoBaker and ProtoTextBaker apply the same rule.",
          "source_sha256": "49fc1cc07ea1b731fbd9045d6e4393b2c1437894cda80fba5fe3a383e2d8363b",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.repeated-ancestors/name",
          "source": "Repeated ancestors",
          "source_sha256": "3b7e486bfe39fde3fe810e8fa50b87ec0bf15e4a030b54bf4ec0023a96bcae86",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.repeated-ancestors/requirement",
          "source": "A parent reached through several inheritance paths contributes only where it is first reached; Baking.AllowRepeatedProtoParents decides whether the later reach is skipped or rejected.",
          "source_sha256": "ad9bcd40019167e91db1c5f6b54182cf5bb66797cd85c1072ecd4fd3197cc387",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.side-specific-output/description",
          "source": "A source property can be meaningful on one side and skipped on another; server output also validates script callback properties.",
          "source_sha256": "ea46ce8437e05b825c0848d267c2a049ec5f7db8a9639f77ee36a9e1a7c17023",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.side-specific-output/name",
          "source": "Side-specific output",
          "source_sha256": "21faf823883c42a616c08d85cf5e27454bfc1e20b4edb362e3c3c6ec5f32a0be",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.side-specific-output/requirement",
          "source": "The same source set is parsed and serialized separately for server, client, and mapper metadata.",
          "source_sha256": "7d8307d9043b80be64db98c41132657ec28597542835909f3fcd2afcd78a0ef4",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.strict-values/description",
          "source": "The property serializer is the authority for scalar, enum, struct, array, dictionary, RefType, FixedType, and Proto reference text.",
          "source_sha256": "a49903812abdb8cae1b2f3787e881375e1fd69dbf20d380a9c1f3e4b7fcba6d9",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.strict-values/name",
          "source": "Strict text values",
          "source_sha256": "9b1da4d45eb0f581610b439424716d9c3876b383da8eefdfb01d01a8dc8bdffe",
          "status": "current"
        },
        {
          "locator": "/rules/@id=prototype-format.rule.strict-values/requirement",
          "source": "Property values must parse according to the metadata type without overflow, unknown enum/prototype references, non-finite numbers, or malformed collection structure.",
          "source_sha256": "7788c3de59d14562a0170450cefe4a35df9387279fa237834860c417e264f573",
          "status": "current"
        },
        {
          "locator": "/scope/excluded",
          "source": [
            "project-authored entity and FixedType declarations or properties",
            "nested map placement sections addressed as $Name/Critter or $Name/Item",
            "gameplay balance, content ids, directory taxonomy, and localization policy",
            "runtime persistence records and project migration rollout policy"
          ],
          "source_sha256": "97bac935469f5644250e22e1ceda04b1d83e7795098d33b76a3536b88fcde059",
          "status": "current"
        },
        {
          "locator": "/scope/included",
          "source": [
            "prototype file discovery and side-specific bake outputs",
            "section forms, prototype identity, inheritance, and migration",
            "property applicability and strict text-value validation",
            "built-in InitScript callback signature validation",
            "built-in HasProtos entity types and their engine-owned property catalog"
          ],
          "source_sha256": "8892cdca1027c644edfad036c5804e594570cce12f881247e3bc808a196f4cd6",
          "status": "current"
        },
        {
          "locator": "/scope/support_note",
          "source": "The grammar is documented for a pinned engine revision. Concrete project entity types, properties, file extensions, ids, and gameplay semantics remain project-owned.",
          "source_sha256": "a077143a5938325d383dbfec67c13e9859946df732be4dd561396f5b26aea629",
          "status": "current"
        },
        {
          "locator": "/section_forms/@id=prototype-format.section.fixed-type/description",
          "source": "Declares a prototype-like fixed value defined by embedding-project metadata.",
          "source_sha256": "29c9e17a770c9a7a9ff99e70332683767a9201f3cdeadec53ed79537504ff005",
          "status": "current"
        },
        {
          "locator": "/section_forms/@id=prototype-format.section.fixed-type/resolves_to",
          "source": "A metadata type declared with ///@ FixedType",
          "source_sha256": "5dd8ca76c3e4b7d74b46e3e6411639bb3a722451740ffb16c7976f67a63e65eb",
          "status": "current"
        },
        {
          "locator": "/section_forms/@id=prototype-format.section.fomap-proto-map/description",
          "source": "Each top-level ProtoMap anchor declares a Map prototype. Nested $Name/Item and $Name/Critter placement sections are skipped by ProtoBaker and consumed by MapBaker.",
          "source_sha256": "f736ba2a1843571c0920033b045bbb81a84bea00758727cc07169bcbc58e4238",
          "status": "current"
        },
        {
          "locator": "/section_forms/@id=prototype-format.section.fomap-proto-map/resolves_to",
          "source": "Map",
          "source_sha256": "be176b0015c424b78e9f343f8bc3014a7a701cc2eb9000b6acbc04d67dbecb8f",
          "status": "current"
        },
        {
          "locator": "/section_forms/@id=prototype-format.section.proto-entity/description",
          "source": "Declares a prototype for a built-in or project-authored entity type whose metadata enables prototypes.",
          "source_sha256": "2ebf8283c65528d01a5d504b46ab727c900113a289d854dde04bf905f2ae0fc8",
          "status": "current"
        },
        {
          "locator": "/section_forms/@id=prototype-format.section.proto-entity/resolves_to",
          "source": "Entity metadata type <Type> with HasProtos",
          "source_sha256": "6753cd36a218d5a6bdfbfcffea370f97f38d19f423e90df73859fa67f8dea9f6",
          "status": "current"
        }
      ]
    },
    "public-examples": {
      "source_model": "Docs/generated/public-examples.json",
      "entry_count": 13,
      "current_count": 13,
      "missing_count": 0,
      "complete": true,
      "entries": [
        {
          "locator": "/program/owners/build_release",
          "source": "Build and release maintainers",
          "source_sha256": "82f40d1a225bf35a75b670e30708a516235431d482ccdc89ec4f2e07ece240ea",
          "status": "current"
        },
        {
          "locator": "/program/owners/content",
          "source": "Content and asset maintainers",
          "source_sha256": "7e1e90e9a55b7333429d5c4e57bfa655a277226bed7fb19eb3aa241f8a70a6ff",
          "status": "current"
        },
        {
          "locator": "/program/owners/documentation",
          "source": "Documentation maintainers",
          "source_sha256": "bea06261f7ad224f7b4967add65ee469cd1470e3df78e24e74a7b9081ea7e52e",
          "status": "current"
        },
        {
          "locator": "/program/owners/runtime",
          "source": "Engine runtime maintainers",
          "source_sha256": "5a86a82b9ef4eb0d47bd64e6659e304e854378838ea8acf387d1bee5d61e3c86",
          "status": "current"
        },
        {
          "locator": "/program/owners/security",
          "source": "Repository administrators",
          "source_sha256": "b39397e6c418206f3e640581e11e17874e458cf5b7caabad78ada1fb32655f02",
          "status": "current"
        },
        {
          "locator": "/repositories/@id=content-showcase/exit_gate",
          "source": "A tagged build produces the public showcase and reproducible captures with complete machine-readable rights and provenance.",
          "source_sha256": "23781935514fa71e0c3ae5574e363be5cddd8ce60075c66ce0c4d8c46faea67b",
          "status": "current"
        },
        {
          "locator": "/repositories/@id=content-showcase/purpose",
          "source": "Presentation-quality gallery for rendering and authoring capabilities without a large gameplay codebase.",
          "source_sha256": "4f65908428feede6b54a7e6c00fe837388c7d837ca37096a08f41e7cf1ea3b32",
          "status": "current"
        },
        {
          "locator": "/repositories/@id=minimal-multiplayer/exit_gate",
          "source": "Every tutorial checkpoint reproduces from its pinned tag and the final project is understandable without Last Frontier or TLA.",
          "source_sha256": "37c75a5f1c438ef3a52dc37742118e276ad61c2ba1ea19113b2e56d19efb8f50",
          "status": "current"
        },
        {
          "locator": "/repositories/@id=minimal-multiplayer/purpose",
          "source": "Tiny playable vertical slice used by first server, client, content, scripting, persistence, and test tutorials.",
          "source_sha256": "306945c537efa8aa49d283baf1d6f6ce158a667461852a21139a5740176a60d6",
          "status": "current"
        },
        {
          "locator": "/repositories/@id=native-extension-sample/exit_gate",
          "source": "The tagged sample demonstrates one complete native extension path without game-specific services and passes the generated extension contract checks.",
          "source_sha256": "9099b2227e613b69508141e07913922e4d354076516d54240c850aaed221abe2",
          "status": "current"
        },
        {
          "locator": "/repositories/@id=native-extension-sample/purpose",
          "source": "Advanced minimal example of project-native C++ composition, lifecycle hooks, script exports, tests, and ABI review.",
          "source_sha256": "00a58125f46c48b3aa69fcebd5504e288a7e0dbd0e00002e13e97e166d575c37",
          "status": "current"
        },
        {
          "locator": "/repositories/@id=project-template/exit_gate",
          "source": "A clean Windows or Linux host reaches the documented successful server state in under 30 minutes from a tagged exact Engine revision.",
          "source_sha256": "49f06c6f1b6b3827c03fea84e6f8576b6a04c59a3e915df59d015e4bff9daccb",
          "status": "current"
        },
        {
          "locator": "/repositories/@id=project-template/purpose",
          "source": "Canonical GitHub template and source for the first successful headless-project quickstart.",
          "source_sha256": "20b60665d454e81d03553442fbc29f313ae948a4f950b1e9e63a94da43df035c",
          "status": "current"
        }
      ]
    },
    "support-matrix": {
      "source_model": "Docs/generated/support-matrix.json",
      "entry_count": 76,
      "current_count": 76,
      "missing_count": 0,
      "complete": true,
      "entries": [
        {
          "locator": "/platforms/@id=android-arm-clients/applications",
          "source": [
            "client shared library/package inputs"
          ],
          "source_sha256": "a41dea1e2edd649e2ea650e8b149c6ef78ae378140c13b230935d4ac1d2badb3",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=android-arm-clients/compiler",
          "source": "Android NDK Clang",
          "source_sha256": "c4ad472b34d4877ce2759074ba6c63507493a49aebc8156b35fd043f5360d13c",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=android-arm-clients/host",
          "source": "Ubuntu 24.04 cross-build host",
          "source_sha256": "154b05b164ebc0dfd381aa476e63aed23daf95f603ff7c580671600917d824a1",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=android-arm-clients/limitations",
          "source": "APK assembly, signing, store delivery, device GPU/input/audio, pause/resume, and network acceptance are project-owned.",
          "source_sha256": "011f82f296ef71e437685209ca098d2ba1d26132e089702b921688f724f3b871",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=android-arm-clients/runtime_evidence",
          "source": "No emulator or physical-device smoke route is required.",
          "source_sha256": "99d371dae23b1151f6a793188b6c20bb7e5f4c37094cab16f5d71b57b4c87387",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=android-arm-clients/target",
          "source": "Android armeabi-v7a and arm64-v8a",
          "source_sha256": "1711622632e550bb3567cb7ff4c073b57c7def6b4dbbf66b93d3c17adb6cfe17",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=android-x86-client/applications",
          "source": [
            "client shared library/package inputs"
          ],
          "source_sha256": "a41dea1e2edd649e2ea650e8b149c6ef78ae378140c13b230935d4ac1d2badb3",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=android-x86-client/compiler",
          "source": "Android NDK Clang",
          "source_sha256": "c4ad472b34d4877ce2759074ba6c63507493a49aebc8156b35fd043f5360d13c",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=android-x86-client/host",
          "source": "cross-build host",
          "source_sha256": "3839c7250ae97171fbcd65ffd59e03d916d6fd9d5e8167b79243d041c4a92b50",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=android-x86-client/limitations",
          "source": "Do not advertise Android x86 as a supported release target without a project-owned build and device/emulator gate.",
          "source_sha256": "9ae997c1c587fe028e8ae38093ac1b10f39a931b0ff5cedb347d12ef0e1deb09",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=android-x86-client/runtime_evidence",
          "source": "No required CI or runtime lane exists.",
          "source_sha256": "64ab21a448088cbe5dc1a48586da01797ce3670a3202343545b236b577c7f8fb",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=android-x86-client/target",
          "source": "Android x86",
          "source_sha256": "f186e93da44327f649ff33b2c0ed2b7dddebd2cab788eb4bb83db83030a5eb49",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=ios-client/applications",
          "source": [
            "client library/application bundle inputs"
          ],
          "source_sha256": "96d7b76b5f74b2f35e0f2b61a9c2cac7caf381a28969fc21aa2f1eb1aaeab2d9",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=ios-client/compiler",
          "source": "AppleClang",
          "source_sha256": "8cad4368acf2e09467e16f73fb5c4ffd771a0270117d6d654d93f09178394d6a",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=ios-client/host",
          "source": "macOS 26 Intel and Apple Silicon runners",
          "source_sha256": "5ebbaecac7121ccb2cc024fbe553e6946b50a870c911d45ad7a70b4a09b52326",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=ios-client/limitations",
          "source": "Provisioning, signing, App Store delivery, device input, audio, networking, and lifecycle acceptance are project-owned.",
          "source_sha256": "d31b61a5d8228d718ec23810bae5bfbe64359b68e74b73f7163251084b293310",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=ios-client/runtime_evidence",
          "source": "No simulator or device smoke route is required.",
          "source_sha256": "a675a173fec8ea573da1e521d0676c7fffbeb572d4dfe6bbd9e7771e796693f2",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=ios-client/target",
          "source": "iOS client",
          "source_sha256": "a2bde82c01a19aed73290c9d61a8c8e4bb4d4f770b39230e81413047da8d3a45",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=linux-x64-clang/applications",
          "source": [
            "desktop client and headless client",
            "server, headless server, and daemon",
            "mapper, animation viewer, and particle viewer",
            "AngelScript compiler",
            "resource baker"
          ],
          "source_sha256": "536c6c987d6744afb3c76c1a5b2cfbdbf6e7b75cdf9c54ab23b3c760b31bd170",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=linux-x64-clang/compiler",
          "source": "Clang 20 or newer",
          "source_sha256": "4e3d40d2b63b6cd4666b7009f3ad22293aa303347dbff00f3e6149b86bb29e67",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=linux-x64-clang/host",
          "source": "Ubuntu 24.04",
          "source_sha256": "f62cbb2d1c9fc506fce3c8988d30ff746dd3b91dd3a0a88852b39eef48b105dc",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=linux-x64-clang/limitations",
          "source": "The current matrix qualifies Ubuntu 24.04 configure and compilation only; runtime, other distributions, installers, signing, stores, deployment, and rollback require project acceptance.",
          "source_sha256": "f03786568b253d3aad79de51fc3b977c8d3d235e8e6b5e1da1864100f7a2f464",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=linux-x64-clang/runtime_evidence",
          "source": "No process-level smoke route is required by the checked BuildTools validation registry.",
          "source_sha256": "bc4c9eca7f920efb63c901da4510a6c60e556f8b6a16b6e49ef7909385d44e5a",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=linux-x64-clang/target",
          "source": "Linux x64",
          "source_sha256": "0b89754e2450f9d4e963b32bf6ea1475c55bd3b4620dcebd0576e7785379d314",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=linux-x64-gcc/applications",
          "source": [
            "desktop client and headless client",
            "server, headless server, and daemon",
            "mapper, animation viewer, and particle viewer",
            "AngelScript compiler",
            "resource baker"
          ],
          "source_sha256": "536c6c987d6744afb3c76c1a5b2cfbdbf6e7b75cdf9c54ab23b3c760b31bd170",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=linux-x64-gcc/compiler",
          "source": "GCC 13 or newer",
          "source_sha256": "50f1526da53f14906ec268c5a3c97a4c805ac6ba27bf67960683ec0be0a8c830",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=linux-x64-gcc/host",
          "source": "Ubuntu 24.04",
          "source_sha256": "f62cbb2d1c9fc506fce3c8988d30ff746dd3b91dd3a0a88852b39eef48b105dc",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=linux-x64-gcc/limitations",
          "source": "Runtime qualification comes from the Clang lane; a project relying on GCC-specific behavior needs its own smoke lane.",
          "source_sha256": "1d478a1f596aad18d61c6b829ccddd8946d49b60a384adb47ba089f842ac3bdb",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=linux-x64-gcc/runtime_evidence",
          "source": "No GCC-specific process smoke route is required.",
          "source_sha256": "616ff970f9eedbff523ccf5554ee02aa3ac16d04942191df874bf202b7ab55c6",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=linux-x64-gcc/target",
          "source": "Linux x64",
          "source_sha256": "0b89754e2450f9d4e963b32bf6ea1475c55bd3b4620dcebd0576e7785379d314",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=macos-client/applications",
          "source": [
            "desktop client"
          ],
          "source_sha256": "f0e05e48c11c13a93d18f7a5edd02dfd6b88e4780caf594e61adee6c5468480f",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=macos-client/compiler",
          "source": "AppleClang",
          "source_sha256": "8cad4368acf2e09467e16f73fb5c4ffd771a0270117d6d654d93f09178394d6a",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=macos-client/host",
          "source": "macOS 26 Intel and Apple Silicon runners",
          "source_sha256": "5ebbaecac7121ccb2cc024fbe553e6946b50a870c911d45ad7a70b4a09b52326",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=macos-client/limitations",
          "source": "The public matrix does not qualify macOS server, mapper, tools, packaging, signing, or notarization.",
          "source_sha256": "3c2a2ed829a6fa64cb2c10d8b9e76f9d8120cb211fc8471166a9bbd4f4cd2c9d",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=macos-client/runtime_evidence",
          "source": "No process-level client smoke route is required.",
          "source_sha256": "703ac788c7b77f7a492795b1a63b61cc3af7447e37fb9135e64fade6c1c774a5",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=macos-client/target",
          "source": "macOS x64 and arm64",
          "source_sha256": "6251e3df09ecda30103ab5665f83e66e93cc96b2dee00338cc8460164897399c",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=web-client/applications",
          "source": [
            "browser client"
          ],
          "source_sha256": "5695009f5f9d9f139d48eea79b5ad931bd7167cab589a662464dad2429bc43c0",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=web-client/compiler",
          "source": "Emscripten Clang",
          "source_sha256": "77f1c128336aa26eac646af3f4f1facb64882c78a38418190197c83d67739365",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=web-client/host",
          "source": "Ubuntu 24.04 cross-build host",
          "source_sha256": "154b05b164ebc0dfd381aa476e63aed23daf95f603ff7c580671600917d824a1",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=web-client/limitations",
          "source": "The stock web target is WebGL 2 client-only. The build lane does not qualify browser/GPU pairs or production hosting, headers, persistence, audio activation, deployment, CDN, signing, or rollback behavior; those remain project-owned acceptance gates.",
          "source_sha256": "ace456af947eefced39ca4c5410ac8b03d940b771e954298003cdee224e26ca2",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=web-client/runtime_evidence",
          "source": "No browser process smoke route is required by the checked BuildTools validation registry.",
          "source_sha256": "8deaffd8bbe65c727205735168b5f68b2f3623f52761217cc3d5a9ee05beb0f8",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=web-client/target",
          "source": "WebAssembly",
          "source_sha256": "3cc64514d3abed3dc3b2e415611859ab78d3b9603db4ea43cea997437a1d3c94",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=windows-x64-clangcl/applications",
          "source": [
            "desktop client",
            "server",
            "AngelScript compiler",
            "resource baker"
          ],
          "source_sha256": "77768aaccc065b658d44a8a26466730932538f19c041f158702960d481d52129",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=windows-x64-clangcl/compiler",
          "source": "ClangCL 20 or newer",
          "source_sha256": "b6226d6598e7f5cd2b7f5b85273a886d96159b30827bda75a081460c9c4b6317",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=windows-x64-clangcl/host",
          "source": "Windows",
          "source_sha256": "d598026a9cbc60505f138ce53ac78088d582100c196d0f70c7e2538d4a8d7e10",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=windows-x64-clangcl/limitations",
          "source": "Use MSVC for the qualified Windows route unless the embedding project adds and owns ClangCL validation.",
          "source_sha256": "007bb0e1a07d9a2550ca4d272784e674f5dced7fcc60123da156ed3b62bceb0f",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=windows-x64-clangcl/runtime_evidence",
          "source": "No required CI or runtime lane exists.",
          "source_sha256": "64ab21a448088cbe5dc1a48586da01797ce3670a3202343545b236b577c7f8fb",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=windows-x64-clangcl/target",
          "source": "Windows x64",
          "source_sha256": "e40abbc83ba24de80b8abec9aef47f03140b3b36695ea69db71bb4a9843afc91",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=windows-x64-msvc/applications",
          "source": [
            "desktop client and headless client",
            "server, headless server, and Windows service",
            "mapper, animation viewer, and particle viewer",
            "AngelScript compiler",
            "resource baker"
          ],
          "source_sha256": "b8bcc6f7062ced90abdda51db169fec7a588d35c792d09dae8ac34a365926ee7",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=windows-x64-msvc/compiler",
          "source": "MSVC 19.44 or newer",
          "source_sha256": "a4b36114e3a904c4f7369bc8aab7680b7760fe6b2ce271e3b1606d834faa6610",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=windows-x64-msvc/host",
          "source": "Windows",
          "source_sha256": "d598026a9cbc60505f138ce53ac78088d582100c196d0f70c7e2538d4a8d7e10",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=windows-x64-msvc/limitations",
          "source": "The required lane proves configure and compilation, not renderer, driver, database, installer, signing, store, deployment, rollback, or runtime lifecycle behavior.",
          "source_sha256": "f8ee591ee091ed2592adda0fe4a89a1b789db4b0e8fcd7b589b4fad328124166",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=windows-x64-msvc/runtime_evidence",
          "source": "No process-level smoke route is required by the checked BuildTools validation registry.",
          "source_sha256": "bc4c9eca7f920efb63c901da4510a6c60e556f8b6a16b6e49ef7909385d44e5a",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=windows-x64-msvc/target",
          "source": "Windows x64",
          "source_sha256": "e40abbc83ba24de80b8abec9aef47f03140b3b36695ea69db71bb4a9843afc91",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=windows-x86-msvc/applications",
          "source": [
            "desktop client"
          ],
          "source_sha256": "f0e05e48c11c13a93d18f7a5edd02dfd6b88e4780caf594e61adee6c5468480f",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=windows-x86-msvc/compiler",
          "source": "MSVC 19.44 or newer",
          "source_sha256": "a4b36114e3a904c4f7369bc8aab7680b7760fe6b2ce271e3b1606d834faa6610",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=windows-x86-msvc/host",
          "source": "Windows",
          "source_sha256": "d598026a9cbc60505f138ce53ac78088d582100c196d0f70c7e2538d4a8d7e10",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=windows-x86-msvc/limitations",
          "source": "Server and tool applications are outside the published x86 validation surface.",
          "source_sha256": "76fefaa7769e0d813106d1fb882e0d18074cb2d8cc11a20259fd76dada42ba05",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=windows-x86-msvc/runtime_evidence",
          "source": "No process-level smoke route is required.",
          "source_sha256": "8c019fd9d7ee8f6615bc4aec939d1aab330c3034ea40a64e3a4813bc0a02dd8e",
          "status": "current"
        },
        {
          "locator": "/platforms/@id=windows-x86-msvc/target",
          "source": "Windows x86",
          "source_sha256": "0e11b18f4686e5f8eda60cc052a7cfa76196252538632fad2eaa7a675f2e5dd8",
          "status": "current"
        },
        {
          "locator": "/policy/build_gated",
          "source": "Configured and compiled by the required validation workflow on every change.",
          "source_sha256": "030970cc514382c2c8b0c4dd3210bd2eb476d62519b2ed5a2479321544c4205b",
          "status": "current"
        },
        {
          "locator": "/policy/not_in_public_matrix",
          "source": "No supported validation target is published for this application/platform combination.",
          "source_sha256": "fa9093c6c1e23d3a7cd0d80ac1d7720b1f0a25fb9074d6644fa78654865590c9",
          "status": "current"
        },
        {
          "locator": "/policy/smoke_gated",
          "source": "Build-gated and exercised by an automated process-level starter, native-extension, multiplayer, or content-showcase smoke test.",
          "source_sha256": "06dd943a7b90e72fe151be4cf542d69c5fc4d62ca07ea824f673b51fd9aa560b",
          "status": "current"
        },
        {
          "locator": "/policy/source_capable",
          "source": "The checked BuildTools registry exposes a target, but the required workflow does not exercise it.",
          "source_sha256": "a83cc63a53eee3258eface1ab23295b7e2a3f6878eb8e6e1d62370349a785299",
          "status": "current"
        },
        {
          "locator": "/renderer_policy/@platforms=Android%20and%20iOS/compiled_backends",
          "source": "OpenGL ES plus platform capabilities; Vulkan and SDL_GPU remain compile-time optional outside Web",
          "source_sha256": "015e9de5e0afbc80a72b4bddc7e3ef6f984257cd13010cafb8ed944d9a9d841e",
          "status": "current"
        },
        {
          "locator": "/renderer_policy/@platforms=Android%20and%20iOS/platforms",
          "source": "Android and iOS",
          "source_sha256": "eca2d740063bd7cc9238df265e11d7d2135db3b988fbd0509754fd948febd391",
          "status": "current"
        },
        {
          "locator": "/renderer_policy/@platforms=Android%20and%20iOS/qualification",
          "source": "Device acceptance is required.",
          "source_sha256": "5c79aa172af0992f6b0650f44536c67cf9b3863425006f13ccdbccbb1f110555",
          "status": "current"
        },
        {
          "locator": "/renderer_policy/@platforms=Web/compiled_backends",
          "source": "WebGL 2",
          "source_sha256": "83d3fbfd290e7355b3a04b690d34c65c4ab0b3f8098b90b29c9d1d4b6252b322",
          "status": "current"
        },
        {
          "locator": "/renderer_policy/@platforms=Web/platforms",
          "source": "Web",
          "source_sha256": "2975104784a401e3880e2215550e9490eda7e67db5fc2b35e1a244acb092ced3",
          "status": "current"
        },
        {
          "locator": "/renderer_policy/@platforms=Web/qualification",
          "source": "Vulkan and SDL_GPU are excluded by the platform stage; browser acceptance is required.",
          "source_sha256": "8ced349bd0399a748f4570a90e4bbca7b23bf1cbd5b8506211f4770850845c83",
          "status": "current"
        },
        {
          "locator": "/renderer_policy/@platforms=Windows%2C%20Linux%2C%20macOS/compiled_backends",
          "source": "platform OpenGL plus opt-out Vulkan and SDL_GPU where the source backend can initialize",
          "source_sha256": "c38411fdba74adaf73cf66d04a94579399d148cfd3df8c2376849cda7d7ea400",
          "status": "current"
        },
        {
          "locator": "/renderer_policy/@platforms=Windows%2C%20Linux%2C%20macOS/platforms",
          "source": "Windows, Linux, macOS",
          "source_sha256": "58d2747484a948f6e54b712994e86cb91376a5cf4d803adb6b1670ed0c88bb65",
          "status": "current"
        },
        {
          "locator": "/renderer_policy/@platforms=Windows%2C%20Linux%2C%20macOS/qualification",
          "source": "Build coverage is not renderer/runtime-driver coverage; every shipped backend needs a visible project scene.",
          "source_sha256": "e84d9586b79bac5ecceebc411c314945c124541a23521dff0a64917eee0230e3",
          "status": "current"
        },
        {
          "locator": "/renderer_policy/@platforms=headless%20applications/compiled_backends",
          "source": "null/headless frontend",
          "source_sha256": "1d4f1c3ff1d52220a78e69a2b3bc4bc6b9851ca05af0786ae22635b35120fc8b",
          "status": "current"
        },
        {
          "locator": "/renderer_policy/@platforms=headless%20applications/platforms",
          "source": "headless applications",
          "source_sha256": "fa6962f37255a1280fd78ba205fa9b82a196b621cc98828bb3bba4d087cdc5f6",
          "status": "current"
        },
        {
          "locator": "/renderer_policy/@platforms=headless%20applications/qualification",
          "source": "Do not infer visible rendering or audio support from a headless smoke.",
          "source_sha256": "c112665b40a162d5e65fdee0726cdf02f6d899743ac839002a57dd20b0315164",
          "status": "current"
        }
      ]
    },
    "text-format": {
      "source_model": "Docs/generated/text-format.json",
      "entry_count": 116,
      "current_count": 116,
      "missing_count": 0,
      "complete": true,
      "entries": [
        {
          "locator": "/description",
          "source": "Source-backed authoring, baking, normalization, runtime lookup, and rendering contract for FOnline text packs and prototype-localized text.",
          "source_sha256": "b3bad8b7e87c5e7cf49e8082be4dcd022c05e4a863494809e741b62ab99853d3",
          "status": "current"
        },
        {
          "locator": "/language_rules/@id=text-format.language.bake-time-fallback/name",
          "source": "Bake-time fallback",
          "source_sha256": "fd7e6a0d89f75366706899389522cacdc68faa2c665eec6afbef5f3359f8e48d",
          "status": "current"
        },
        {
          "locator": "/language_rules/@id=text-format.language.bake-time-fallback/rationale",
          "source": "Runtime lookup loads already-normalized binary packs and does not perform fallback.",
          "source_sha256": "352099d301de5999118506a3d375be1559764501b5fc4f8b87dacc8118c44751",
          "status": "current"
        },
        {
          "locator": "/language_rules/@id=text-format.language.bake-time-fallback/requirement",
          "source": "Missing packs and keys are copied from each language's configured fallback during baking; packs and keys absent from that fallback are removed.",
          "source_sha256": "9f36f08eaea6bc2187071ced41edc9f5bca7a56517f575bff021ba2c76c65050",
          "status": "current"
        },
        {
          "locator": "/language_rules/@id=text-format.language.base/name",
          "source": "Base language",
          "source_sha256": "b599980060cae69f5e365e3da7a03b4169a7c85bd1150255ecd1612e93b46263",
          "status": "current"
        },
        {
          "locator": "/language_rules/@id=text-format.language.base/rationale",
          "source": "TextPack::ParseBakeLanguages validates the ordered declarations before either text baker consumes them.",
          "source_sha256": "abddc37ae75651efa53fa3214066556cdcbac7f422ee35c7dfbca9530abd3043",
          "status": "current"
        },
        {
          "locator": "/language_rules/@id=text-format.language.base/requirement",
          "source": "Baking.BakeLanguages must be non-empty and its first bare language is the default normalization base.",
          "source_sha256": "bee84be6fbcd68bc4bb0f9cc61ce1ad7cb41d4102a0b4200629527abbaa4ee3b",
          "status": "current"
        },
        {
          "locator": "/language_rules/@id=text-format.language.binary-name/name",
          "source": "Baked filename",
          "source_sha256": "bbb97ebc584ed556d259d0be9b3d1e2226d3bd65a4011669d6cf637b9c60b464",
          "status": "current"
        },
        {
          "locator": "/language_rules/@id=text-format.language.binary-name/rationale",
          "source": "TextPack::LoadFromResources later requires exactly those three basename segments.",
          "source_sha256": "3a681619472364a96a0feaba65cbc6c0be8f6d7fbf6dd2e9983abf453853628e",
          "status": "current"
        },
        {
          "locator": "/language_rules/@id=text-format.language.binary-name/requirement",
          "source": "Raw and prototype text bakers emit <ResourcePack>.<TextPack>.<Language>.fotxt-bin.",
          "source_sha256": "442fb7d774c680ad1aacca9a0e92f6519d56080a7a640ebd553d72a0af8f0a56",
          "status": "current"
        },
        {
          "locator": "/language_rules/@id=text-format.language.default-source-required/name",
          "source": "Base source required",
          "source_sha256": "f5afde55d0d66e54c99b400d5e477a00d68484fe7ef211b6d7b1d72a848c7864",
          "status": "current"
        },
        {
          "locator": "/language_rules/@id=text-format.language.default-source-required/rationale",
          "source": "TextBaker cannot normalize a changed pack without the base language and throws before parsing output.",
          "source_sha256": "1a2ee76206662dac1351769cf18acc9bbcda2b384e99c263ffb644a0cba94c21",
          "status": "current"
        },
        {
          "locator": "/language_rules/@id=text-format.language.default-source-required/requirement",
          "source": "For every changed raw text pack, the selected file set must contain the base-language source.",
          "source_sha256": "604c7f0da81bf0561e906f03dfc6c90050f2ad5bae8443563b35855995223eda",
          "status": "current"
        },
        {
          "locator": "/language_rules/@id=text-format.language.fallback-declaration/name",
          "source": "Fallback declaration",
          "source_sha256": "f6efe1b291c9204040dd870ce92a59c971c363a3a8d0c6897b4e551a3802c2c2",
          "status": "current"
        },
        {
          "locator": "/language_rules/@id=text-format.language.fallback-declaration/rationale",
          "source": "An explicit parent forms an ordered bake-time fallback chain, while a bare non-first language falls back to the first language.",
          "source_sha256": "2f7a2d3b15cf95bc65b19e430c5ac1a5d985d9d78b8de76f4b9a0cc4ccba8ea4",
          "status": "current"
        },
        {
          "locator": "/language_rules/@id=text-format.language.fallback-declaration/requirement",
          "source": "Each BakeLanguages entry is language or child:parent; names are unique and a parent must appear before its child.",
          "source_sha256": "976bab4149eed65aa614e5792dd9ce9a006453e0fe21947accc6d2344e58683d",
          "status": "current"
        },
        {
          "locator": "/language_rules/@id=text-format.language.filename/name",
          "source": "Source filename",
          "source_sha256": "3fc6620c9672ff2eb08b49fac810300f7bf7ae5fa1cf7d1c7e707ca486f40ce2",
          "status": "current"
        },
        {
          "locator": "/language_rules/@id=text-format.language.filename/rationale",
          "source": "TextBaker rejects every other basename shape.",
          "source_sha256": "b65777c5339248f2b50e50e8d557715d6550900f24e0f035cd1f1e2ade0b3fe1",
          "status": "current"
        },
        {
          "locator": "/language_rules/@id=text-format.language.filename/requirement",
          "source": "A .fotxt basename contains exactly two dot-separated segments: text-pack name and language identifier.",
          "source_sha256": "f2e91425a34bb14ed06a734d01f745d7f133774eb5326f7d0b8bfe4a0ba387dc",
          "status": "current"
        },
        {
          "locator": "/language_rules/@id=text-format.language.identifier/name",
          "source": "Language identifier",
          "source_sha256": "e5cecf3df64084422e5de32d5e65d0c94a202dafb4c931dfa8a9e749384fc730",
          "status": "current"
        },
        {
          "locator": "/language_rules/@id=text-format.language.identifier/rationale",
          "source": "Acceptance is equality against the language names parsed from Baking.BakeLanguages; no length or locale-shape validator exists.",
          "source_sha256": "c9e58987e8bf0f60648d241c3c61fc45834d4ff91cb383b72940aa529d8ffe7f",
          "status": "current"
        },
        {
          "locator": "/language_rules/@id=text-format.language.identifier/requirement",
          "source": "The Engine treats the filename suffix as an opaque configured string and imposes no fixed character count.",
          "source_sha256": "a8077b544a1c9c9e0f56fc8c579cc62ee5cac444ab97d5319d71a3a99f64f03b",
          "status": "current"
        },
        {
          "locator": "/language_rules/@id=text-format.language.incremental-pack-set/name",
          "source": "Incremental pack completion",
          "source_sha256": "4b33f0ea5bac55fe5e06506c54fdf02177966b221895a1bc4899465dbe4dd18a",
          "status": "current"
        },
        {
          "locator": "/language_rules/@id=text-format.language.incremental-pack-set/rationale",
          "source": "A partial language update must still pass complete-pack normalization.",
          "source_sha256": "624ab53e6316e3de97f9daa1309ad89ae4e534b02e1a9e155fb4e64159e99d8f",
          "status": "current"
        },
        {
          "locator": "/language_rules/@id=text-format.language.incremental-pack-set/requirement",
          "source": "When one language file of a text pack changes, TextBaker includes every configured language file for that same pack in the rebake.",
          "source_sha256": "a24927f55c259d47f0759ed13556ecd3f2ffee9b7987c0ae58a88693b2aea277",
          "status": "current"
        },
        {
          "locator": "/language_rules/@id=text-format.language.unsupported/name",
          "source": "Unsupported language",
          "source_sha256": "6d3ffecefc827c1e3cde052664fb0bd8b4ae0f79bd9d8c7c62db58532493748e",
          "status": "current"
        },
        {
          "locator": "/language_rules/@id=text-format.language.unsupported/rationale",
          "source": "Unsupported raw languages do not create binary packs.",
          "source_sha256": "2777050885488c3ce0277d6773a11498b4f1a55f2d332cebf3a9d2baefa55d94",
          "status": "current"
        },
        {
          "locator": "/language_rules/@id=text-format.language.unsupported/requirement",
          "source": "A raw text file whose suffix is absent from Baking.BakeLanguages is warned and skipped.",
          "source_sha256": "d296dadc732433dcfa0fb2ee9e396cca0b539942f999f03eb2683326eca5680c",
          "status": "current"
        },
        {
          "locator": "/language_rules/@id=text-format.language.variant-cardinality/name",
          "source": "Variant cardinality",
          "source_sha256": "5ff6ab275384d5ff54b401fb06e764f280bd65ec00b380c55788534da178904a",
          "status": "current"
        },
        {
          "locator": "/language_rules/@id=text-format.language.variant-cardinality/rationale",
          "source": "FixStr tests only whether a key count is zero and preserves all existing variants when the key exists.",
          "source_sha256": "eac708b02a1c76821e3801c368b7135c74881d1bd673e60ceae6aa617f3d4e06",
          "status": "current"
        },
        {
          "locator": "/language_rules/@id=text-format.language.variant-cardinality/requirement",
          "source": "Normalization aligns key presence, not the number or ordering of duplicate variants under an existing key.",
          "source_sha256": "febff281059f020c5c82aa2afcc9f938037ba4e4f10c272c76944fd6e73ac440",
          "status": "current"
        },
        {
          "locator": "/proto_text_rules/@id=text-format.proto.complete-output-set/name",
          "source": "Complete output set",
          "source_sha256": "a37de73ffbd9eba838bb883a4a71731eb8f17e3418dd1f574083f849adcf0c63",
          "status": "current"
        },
        {
          "locator": "/proto_text_rules/@id=text-format.proto.complete-output-set/rationale",
          "source": "The binary output shape is deterministic across projects and language sets.",
          "source_sha256": "a245a460f824920fb16a1b229b505c83df367880a4b1c49c8145f6dc2c2c1504",
          "status": "current"
        },
        {
          "locator": "/proto_text_rules/@id=text-format.proto.complete-output-set/requirement",
          "source": "ProtoTextBaker creates all five generated packs for every configured language, including empty packs.",
          "source_sha256": "46db8f8ae5ef210ff7379259db1d8579fd9f39f44b557f9da693acb4bd3dc20a",
          "status": "current"
        },
        {
          "locator": "/proto_text_rules/@id=text-format.proto.default-language/name",
          "source": "Omitted language",
          "source_sha256": "b758802d7220ba401cfdbb43d19aa38f2a51ba6161d647bcec04a94cc768227b",
          "status": "current"
        },
        {
          "locator": "/proto_text_rules/@id=text-format.proto.default-language/rationale",
          "source": "The same ordered base-language contract is shared with raw text packs.",
          "source_sha256": "f53d5688446780136a95febb56e2de06917cfe05eac69fd6f582290cd777cbe9",
          "status": "current"
        },
        {
          "locator": "/proto_text_rules/@id=text-format.proto.default-language/requirement",
          "source": "When the language token is omitted, a $Text field belongs to the first Baking.BakeLanguages entry.",
          "source_sha256": "54bfb616c5142e95c519fbc518c643ee5a8711f7acdd66f5dd067adc434d8655",
          "status": "current"
        },
        {
          "locator": "/proto_text_rules/@id=text-format.proto.escape-decoding/name",
          "source": "Escaped value decoding",
          "source_sha256": "bb0b0d3ccb29c5af5f0edbc0c10b49097a9a422fb20f1c1e4a37f7dc1b6f140d",
          "status": "current"
        },
        {
          "locator": "/proto_text_rules/@id=text-format.proto.escape-decoding/rationale",
          "source": "Sequences such as \\n become actual newline characters in the baked value.",
          "source_sha256": "05e052b41b381846bb8bdae140d363657ba7adb4afba87378e06e56b1912a19a",
          "status": "current"
        },
        {
          "locator": "/proto_text_rules/@id=text-format.proto.escape-decoding/requirement",
          "source": "Prototype $Text values pass through StringEscaping::DecodeString before entering the text pack.",
          "source_sha256": "ee0d1580e166704aa0f39d76e578ff989842d537c6123b63df8ef841322e85b5",
          "status": "current"
        },
        {
          "locator": "/proto_text_rules/@id=text-format.proto.inheritance/name",
          "source": "Inherited text",
          "source_sha256": "f55db203c795aeadb2f3c2811f398494d6c7536f2cee2dea2a16d594f41d45d7",
          "status": "current"
        },
        {
          "locator": "/proto_text_rules/@id=text-format.proto.inheritance/rationale",
          "source": "A child inherits missing exact text keys while its own exact key assignment replaces the inherited value.",
          "source_sha256": "601fe867d3995733a5e7e217be8747298f556a20d7d03f3c3a4bcbddbd2bca45",
          "status": "current"
        },
        {
          "locator": "/proto_text_rules/@id=text-format.proto.inheritance/requirement",
          "source": "Parent $Text fields are merged recursively before the child fields.",
          "source_sha256": "a2cadf71d4af9f27126c1b8b6fc96b56d2dc7eab546678f5b443dddff3241f9b",
          "status": "current"
        },
        {
          "locator": "/proto_text_rules/@id=text-format.proto.intersections/name",
          "source": "Cross-type intersections",
          "source_sha256": "9538bb3a092de552cdad9c6fc3e1044353c96697737622a1b7d3882b34ec725b",
          "status": "current"
        },
        {
          "locator": "/proto_text_rules/@id=text-format.proto.intersections/rationale",
          "source": "Intersections are counted as errors and abort prototype text baking.",
          "source_sha256": "3997af335ddf70ef03c1906cf7dba0a186b038558d7cd7617a4acd8612c82a4b",
          "status": "current"
        },
        {
          "locator": "/proto_text_rules/@id=text-format.proto.intersections/requirement",
          "source": "Two prototype sources may not emit the same complete key into one generated pack and language.",
          "source_sha256": "648a8188b4c36725da10f5e48e82c02bef0b1c20728e23da9ac0021e5237f495",
          "status": "current"
        },
        {
          "locator": "/proto_text_rules/@id=text-format.proto.pack-routing/name",
          "source": "Generated pack routing",
          "source_sha256": "9a6744c4c312689c7b666772f925915ce851f148c3550989e8301f24a3e24926",
          "status": "current"
        },
        {
          "locator": "/proto_text_rules/@id=text-format.proto.pack-routing/rationale",
          "source": "These five names are the reusable Engine-generated prototype text-pack set.",
          "source_sha256": "ab27938d7c04164733d45335fc544a84cceb836b63858cd385cf1694ec0d4672",
          "status": "current"
        },
        {
          "locator": "/proto_text_rules/@id=text-format.proto.pack-routing/requirement",
          "source": "Item, Critter, Map, and Location prototypes route to Items, Critters, Maps, and Locations; other non-exported HasProtos entity or fixed types route to Protos.",
          "source_sha256": "1f1984ebaeb9e387216240e0b9eda20efb20f422c72e3202b22c7210c343307c",
          "status": "current"
        },
        {
          "locator": "/proto_text_rules/@id=text-format.proto.syntax/name",
          "source": "Prototype text key",
          "source_sha256": "8f62d1bb1b504dc86a56e5104e145a94ce711c32f23dc3898053b926e10e5093",
          "status": "current"
        },
        {
          "locator": "/proto_text_rules/@id=text-format.proto.syntax/rationale",
          "source": "The prototype id becomes Key1 and the optional trailing tokens become Key2 and Key3.",
          "source_sha256": "e084827d650ffb7870ac9d81140603473c887b5ce74715cb119893cb04a83d3a",
          "status": "current"
        },
        {
          "locator": "/proto_text_rules/@id=text-format.proto.syntax/requirement",
          "source": "Prototype text uses $Text [Language] [Key2] [Key3] = Value and accepts at most four key tokens including $Text.",
          "source_sha256": "0306b5d14f5e94092f0957e7b9221ded4cc5ee25712ef13378bd20e07b387d5c",
          "status": "current"
        },
        {
          "locator": "/proto_text_rules/@id=text-format.proto.unsupported-language/name",
          "source": "Unsupported prototype language",
          "source_sha256": "6603ec3bf248c1762d57155affd9013bb4fd80f7d2d8ece55ef90d16d9e46f9a",
          "status": "current"
        },
        {
          "locator": "/proto_text_rules/@id=text-format.proto.unsupported-language/rationale",
          "source": "Prototype-localized text follows the configured output-language set.",
          "source_sha256": "3456669e90bd6e6469c39f0aa16951b0084a6fbf626c8461e43b526011f6e952",
          "status": "current"
        },
        {
          "locator": "/proto_text_rules/@id=text-format.proto.unsupported-language/requirement",
          "source": "A $Text language absent from Baking.BakeLanguages is warned and omitted.",
          "source_sha256": "c11f2b74cb39b7a406d49fb548881d62c50355b914853ab37365d9c4c0fd4f61",
          "status": "current"
        },
        {
          "locator": "/rendering_rules/@id=text-format.rendering.inline-color/name",
          "source": "Inline color tags",
          "source_sha256": "327aab12e61b97d71092abc79f8376e9363482a003598223870582981f09d007",
          "status": "current"
        },
        {
          "locator": "/rendering_rules/@id=text-format.rendering.inline-color/rationale",
          "source": "Color tags are renderer syntax, independent from text-pack parsing and project lexem formatting.",
          "source_sha256": "c1fdf86cd4b2a8a2d0b4adcf1c672585c9f62587c826b18e3a1a0b628eea1e8f",
          "status": "current"
        },
        {
          "locator": "/rendering_rules/@id=text-format.rendering.inline-color/requirement",
          "source": "The client font renderer recognizes @color:HEX@ to push a six- or eight-hex-digit color and @color@ to restore the previous color.",
          "source_sha256": "7d34c8083ae85f370570120a46f93c5e77af0a17b03c92f813931889286f27f1",
          "status": "current"
        },
        {
          "locator": "/rendering_rules/@id=text-format.rendering.no-colorize/name",
          "source": "NoColorize",
          "source_sha256": "d83a2423cf5a57981d68e5cecc6a49f417d8e9c441d5a468735403d3d07683b9",
          "status": "current"
        },
        {
          "locator": "/rendering_rules/@id=text-format.rendering.no-colorize/rationale",
          "source": "The formatting pass always removes recognized tags, but writes per-glyph colors only when colorization is enabled.",
          "source_sha256": "263e5bc2cc71ee6e6d51057ef5fecae6d7726124e11b0c4773bbb49ff8c30b98",
          "status": "current"
        },
        {
          "locator": "/rendering_rules/@id=text-format.rendering.no-colorize/requirement",
          "source": "FontFlag.NoColorize strips valid inline color tags while rendering all glyphs with the base color.",
          "source_sha256": "b96e89bdea590e8d71686f6af87bddcd26bb9993b6638d3e4c6c9210b82b1c8f",
          "status": "current"
        },
        {
          "locator": "/runtime_methods/@id=text-format.runtime.change-language/behavior",
          "source": "Loads langName into the current client pack and updates the engine-owned current-language state without mutating the configured Client.Language setting.",
          "source_sha256": "67ea5e78e3b5084452126c0ca155774dd1153d66f0eb15bd4b0a3ba4ec5aac73",
          "status": "current"
        },
        {
          "locator": "/runtime_methods/@id=text-format.runtime.change-language/missing_behavior",
          "source": "The Engine does not validate the identifier, apply another fallback, or invoke a project GUI refresh callback.",
          "source_sha256": "a6e187e4ae5c531fa7894033116e8ec7279c3e206bf696897eabffc17fac55df",
          "status": "current"
        },
        {
          "locator": "/runtime_methods/@id=text-format.runtime.get-count/behavior",
          "source": "Returns the number of variants stored under the complete key.",
          "source_sha256": "3003287dc1387e4c24663f441f5fefafd8ccf254b4ab73052f85150394c2989e",
          "status": "current"
        },
        {
          "locator": "/runtime_methods/@id=text-format.runtime.get-count/missing_behavior",
          "source": "Returns zero when the key is absent.",
          "source_sha256": "28b3f381dc044a0eaabdcb945f72b5f98d65daf6a5ce0bba138b8fb5defd0750",
          "status": "current"
        },
        {
          "locator": "/runtime_methods/@id=text-format.runtime.get-current-text/behavior",
          "source": "Returns the first variant from the current client language.",
          "source_sha256": "911e0920196df3deb80c1e055c255d2e6e6bd4b6ea75e115c4e7025d8664c05e",
          "status": "current"
        },
        {
          "locator": "/runtime_methods/@id=text-format.runtime.get-current-text/missing_behavior",
          "source": "A missing key returns an empty string.",
          "source_sha256": "ff62b56c2cd974242c614b4579c9c1ec2e8a306601577182a4b463a62d48f247",
          "status": "current"
        },
        {
          "locator": "/runtime_methods/@id=text-format.runtime.get-indexed-text/behavior",
          "source": "Returns the zero-based variant selected by textIndex from the current client language.",
          "source_sha256": "647c6f2a539ff22c2fdf51472b07e0bc4e89fd14740103f58f0837300a1d9f88",
          "status": "current"
        },
        {
          "locator": "/runtime_methods/@id=text-format.runtime.get-indexed-text/missing_behavior",
          "source": "A missing key or out-of-range index returns an empty string; a negative index throws.",
          "source_sha256": "54eee424a2977efb7666049f37c687d97f7b4dabc4ed3b0856413ffe7383d01c",
          "status": "current"
        },
        {
          "locator": "/runtime_methods/@id=text-format.runtime.get-language-text/behavior",
          "source": "An empty langName or the current language uses the current pack; another langName loads or reuses a cached pack and returns its first variant.",
          "source_sha256": "d3c92c778d4e54ac93931c93700449813774b2f545646599df1177a96fe9e635",
          "status": "current"
        },
        {
          "locator": "/runtime_methods/@id=text-format.runtime.get-language-text/missing_behavior",
          "source": "An absent or unsupported non-empty language has no automatic fallback and therefore yields an empty string for the key.",
          "source_sha256": "b00677854a19946bff0e20f017fc8cd74f9c35a646e4bb8c5317cc6f055e8e0b",
          "status": "current"
        },
        {
          "locator": "/runtime_methods/@id=text-format.runtime.get-language/behavior",
          "source": "Returns the engine instance's current language as a strong LanguageName wrapper; the configured Client.Language value is only the startup default.",
          "source_sha256": "5e96cdcfe275dde5719a8b787e3226b8bae922e9b1fde94c5c53d34c66058c37",
          "status": "current"
        },
        {
          "locator": "/runtime_methods/@id=text-format.runtime.get-language/missing_behavior",
          "source": "Not applicable.",
          "source_sha256": "a3014a36534d5612e7e04f74fc455b30bd0101d370991d349923efd6cc69ebc0",
          "status": "current"
        },
        {
          "locator": "/runtime_methods/@id=text-format.runtime.is-present/behavior",
          "source": "Reports whether at least one variant exists under the complete key.",
          "source_sha256": "327d1896ea7b6b88a4b949ff73f2ca4c6ba854ed5c874227663b53468d65d630",
          "status": "current"
        },
        {
          "locator": "/runtime_methods/@id=text-format.runtime.is-present/missing_behavior",
          "source": "Returns false when the key is absent.",
          "source_sha256": "3734e4e75ad3686ed176db9deb245e3ca98264ed8d237f309bebcbedab719e19",
          "status": "current"
        },
        {
          "locator": "/runtime_methods/@id=text-format.runtime.server-boundary/behavior",
          "source": "The server loads one pack from the configured Client.Language startup value and exposes presence and count queries.",
          "source_sha256": "3454ae43ddcafaaab70d9b4bb5be1037595305b2b9962bef1a53d619e499f648",
          "status": "current"
        },
        {
          "locator": "/runtime_methods/@id=text-format.runtime.server-boundary/missing_behavior",
          "source": "There is no server script Game.GetText overload in the Engine API.",
          "source_sha256": "f1350da944cd659524deffe68cc4a32a2618d6dfaccce27632b88881c47563a9",
          "status": "current"
        },
        {
          "locator": "/scope/excluded",
          "source": [
            "project language priorities, translation ownership, terminology, and release-readiness policy",
            "project-specific lexems, argument substitution, random-choice syntax, dialog formatting, and chat wrappers",
            "concrete pack names beyond the five Engine-generated prototype packs",
            "font selection, layout, shaping, and general GUI authoring"
          ],
          "source_sha256": "b9ad4823d09d0268b4086bcca46bc5f03b7de00db2a5a92a1fe62d9df86dfcc4",
          "status": "current"
        },
        {
          "locator": "/scope/included",
          "source": [
            ".fotxt file naming, brace-field syntax, multiline values, structured keys, and duplicate variants",
            "BakeLanguages ordering, incremental rebakes, bake-time language normalization, and binary output names",
            "$Text prototype fields, inheritance, output-pack routing, escape decoding, and validation",
            "client and server script lookup surfaces, language switching, and inline renderer color tags"
          ],
          "source_sha256": "f5be3e628876976a93afae151be0797f3f6b5126ad4a6d140355d55321fb41e9",
          "status": "current"
        },
        {
          "locator": "/scope/support_note",
          "source": "The contract is generated for a pinned Engine revision. Projects own language policy, pack catalogs, translation workflow, semantic key conventions, and any game-specific lexem or argument formatter.",
          "source_sha256": "caf604dbdca9aab2e6a64df38d2adcd6826f039beeca4b7acc4a4861050d12f2",
          "status": "current"
        },
        {
          "locator": "/syntax_rules/@id=text-format.syntax.comment-boundary/name",
          "source": "No comment grammar",
          "source_sha256": "99018a0c473abf83803993377d4caa712330e5cb0d81bfe8f63248982ceea4f8",
          "status": "current"
        },
        {
          "locator": "/syntax_rules/@id=text-format.syntax.comment-boundary/rationale",
          "source": "LoadFromString has no comment-token branch and begins parsing at the first opening brace anywhere on the line.",
          "source_sha256": "2dd8ede7893cfc3e236cdc8b8f0a01e1f972ce569f40c71ac68b96ad60282305",
          "status": "current"
        },
        {
          "locator": "/syntax_rules/@id=text-format.syntax.comment-boundary/requirement",
          "source": "The parser skips a physical line only when it cannot find the first opening brace; comment conventions are project policy and comment text must not contain parseable brace fields.",
          "source_sha256": "f55e6760daefaf617588c779059c22f4d8a7b3c44687efddbf45e05928384b09",
          "status": "current"
        },
        {
          "locator": "/syntax_rules/@id=text-format.syntax.empty-fields/name",
          "source": "Required and optional fields",
          "source_sha256": "1c02596c03981cdfad877832022fb4b57313ca03cace56e24a571e1df3781fb6",
          "status": "current"
        },
        {
          "locator": "/syntax_rules/@id=text-format.syntax.empty-fields/rationale",
          "source": "The parser rejects only an empty collection or first key after all three fields were extracted.",
          "source_sha256": "ccab1d86252e6dd00f74d6a04c5bfc4b6ea89f6c96cf1ed19ec391b6ebf9c66c",
          "status": "current"
        },
        {
          "locator": "/syntax_rules/@id=text-format.syntax.empty-fields/requirement",
          "source": "The collection and Key1 must be non-empty; Key2 and Text may be empty.",
          "source_sha256": "716b06ae0de8320be76cf3a09a707642b3317c1f312c8914ca99352b7b8b4eac",
          "status": "current"
        },
        {
          "locator": "/syntax_rules/@id=text-format.syntax.entry/name",
          "source": "Raw entry shape",
          "source_sha256": "aaa4d93a79d32a1e0c334ce44888fa2ceb9ea41191e8a98ca7f5f7c7b2cafae9",
          "status": "current"
        },
        {
          "locator": "/syntax_rules/@id=text-format.syntax.entry/rationale",
          "source": "LoadFromString supplies the collection separately and constructs TextPackKey from the two authored key fields.",
          "source_sha256": "ff105c9be4a4e1164fa56b9191bb572a82c5789494cdc84de5b851d92f9cf56f",
          "status": "current"
        },
        {
          "locator": "/syntax_rules/@id=text-format.syntax.entry/requirement",
          "source": "A parsed .fotxt entry contains Key1, Key2, and Text in three brace-delimited fields; the collection is the text-pack filename segment.",
          "source_sha256": "023b543b6d6e2f5cbf0b6127bfc1ed8d23c48b75743ad23c16af26205fa3ed47",
          "status": "current"
        },
        {
          "locator": "/syntax_rules/@id=text-format.syntax.key-tuple/name",
          "source": "Structured key identity",
          "source_sha256": "679658140c90f45ceffad33b4ddc5323254c1c25fbcd8962bb769edd6b4b7ad8",
          "status": "current"
        },
        {
          "locator": "/syntax_rules/@id=text-format.syntax.key-tuple/rationale",
          "source": "Raw .fotxt entries leave Key3 empty, while prototype $Text fields may populate Key2 and Key3.",
          "source_sha256": "62d0dd0ccf6251f9c25b1fe238044aa484d0c6d6c8f43fbf17c9ba88cf322102",
          "status": "current"
        },
        {
          "locator": "/syntax_rules/@id=text-format.syntax.key-tuple/requirement",
          "source": "TextPackKey identity is Collection plus Key1, Key2, and Key3, each represented as a hashed string wrapper.",
          "source_sha256": "26f806bfb107e18efa8dff80cdcb4608e5a300993b1a5d0a1fbf7a487ffe77f0",
          "status": "current"
        },
        {
          "locator": "/syntax_rules/@id=text-format.syntax.multiline-text/name",
          "source": "Multiline value",
          "source_sha256": "3bddebd1616977bdd5145185ee92db41a1dc24e8c36c07823c40e93fae7ece50",
          "status": "current"
        },
        {
          "locator": "/syntax_rules/@id=text-format.syntax.multiline-text/rationale",
          "source": "The first two ExtractBraceToken calls disable multiline input and the third enables it.",
          "source_sha256": "dc59ac79ad402d5d7640f78bbe0099e0b037be4ac7328af354323d675fc59b51",
          "status": "current"
        },
        {
          "locator": "/syntax_rules/@id=text-format.syntax.multiline-text/requirement",
          "source": "Only the third field may continue across physical lines; joined lines retain newline characters until the first closing brace.",
          "source_sha256": "e0d48bf23479456dc3a9b972aa9be9b545e09b7c7a001f46f417a9807afcce4a",
          "status": "current"
        },
        {
          "locator": "/syntax_rules/@id=text-format.syntax.no-closing-brace-escape/name",
          "source": "Closing-brace boundary",
          "source_sha256": "76e889b356833098742da5144729a49c8c939d0711b830e2a2bdc7b18d9ced0c",
          "status": "current"
        },
        {
          "locator": "/syntax_rules/@id=text-format.syntax.no-closing-brace-escape/rationale",
          "source": "ExtractBraceToken searches directly for the next closing brace and does not decode escapes.",
          "source_sha256": "25be19df24f16d6529b44fc9a337b7449bcc484075608dbdae565706f437679b",
          "status": "current"
        },
        {
          "locator": "/syntax_rules/@id=text-format.syntax.no-closing-brace-escape/requirement",
          "source": "The first closing brace terminates each field; the raw format has no escape sequence for a literal closing brace inside Text.",
          "source_sha256": "8a5cc45505bad5f72f7aa63c73df80bca4051aa137fadca2877b8a55e5b2b2d7",
          "status": "current"
        },
        {
          "locator": "/syntax_rules/@id=text-format.syntax.variants/name",
          "source": "Duplicate-key variants",
          "source_sha256": "7646bf474a0731262faa5f11ee42c3abb5764c3ce8038b9db039134cec9cf721",
          "status": "current"
        },
        {
          "locator": "/syntax_rules/@id=text-format.syntax.variants/rationale",
          "source": "Variant count and indexed selection use one binary-search range; duplicate cardinality is not language-normalized and read paths never repair shared state.",
          "source_sha256": "81914a4a82550155ff6384ef21e90d4fd60147a9cc348cacb0eec743b43f1465",
          "status": "current"
        },
        {
          "locator": "/syntax_rules/@id=text-format.syntax.variants/requirement",
          "source": "Multiple entries may share the same complete TextPackKey and remain adjacent ordered variants in the sorted backing vector.",
          "source_sha256": "71af492d6b6565fc9f27bed9de6f72cadb05a6912e59ab97f07c185c1d11e5ae",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=text-format.validation.empty-languages/name",
          "source": "Empty BakeLanguages",
          "source_sha256": "943645405467d854f91a78bb3838c4ff2d921ef0c81f9caaf48570000bb10c14",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=text-format.validation.empty-languages/rationale",
          "source": "No deterministic base language can be selected.",
          "source_sha256": "cfbaf94563a92edc24e0f72733e87b1dc3a7bacd85ff9763d557f3a3b73ab1c3",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=text-format.validation.empty-languages/requirement",
          "source": "TextBaker, ProtoTextBaker, and TextPack normalization reject an empty Baking.BakeLanguages list.",
          "source_sha256": "aea2a3f93d77af6cbf78046840b864cf14b2115679972fa3d830ebb0a8751b43",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=text-format.validation.malformed-raw/name",
          "source": "Malformed raw text",
          "source_sha256": "7b88d3c46416774e6af7d2050120eea9afc0386c1b2d7f9ec4d2f78d093184f3",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=text-format.validation.malformed-raw/rationale",
          "source": "LoadFromString reports aggregate failure and TextBaker rejects the complete source file.",
          "source_sha256": "3abac713fb58fdb0daf361a3531bee29a3bc5eec5df620e028479a85b6e6a4ba",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=text-format.validation.malformed-raw/requirement",
          "source": "A raw source with a missing required field or unterminated value fails the text bake even if other entries parsed successfully.",
          "source_sha256": "e444705716433416d68d3dd7f06719b023353a2165ecba06e0eae6d790e8c98d",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=text-format.validation.proto-intersection/name",
          "source": "Prototype output intersection",
          "source_sha256": "c43a8adbae1a9475f2daef3a2f83f07ef60bcb2d4080f642b416b628166623da",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=text-format.validation.proto-intersection/rationale",
          "source": "The generated pack must not depend on iteration order across type catalogs.",
          "source_sha256": "421a9a1e392d4fc46c3c60cb3db1cb4f623ab682982a24a73ebda284b5544e0c",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=text-format.validation.proto-intersection/requirement",
          "source": "Duplicate complete keys produced by different prototype type sources in one output pack fail baking.",
          "source_sha256": "03ea67a5b90a13d0bdea9ff3cccd87e33e76b69605917ff1e6752ce13f04496f",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=text-format.validation.proto-token-count/name",
          "source": "Prototype key token count",
          "source_sha256": "a5663729c7a4627f86dd05452d34da427e7271dde400dbd8ede33c05990a8e3f",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=text-format.validation.proto-token-count/rationale",
          "source": "TextPackKey has no additional key field.",
          "source_sha256": "2d34cbe00cdf8801878b2f7b86cfaf04fa528cdc1cabda54a3b9da17b5eca247",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=text-format.validation.proto-token-count/requirement",
          "source": "A prototype $Text key with more than Language, Key2, and Key3 after $Text fails baking.",
          "source_sha256": "9c25ab8c89612a99eae2e67802eae817161437fb071c74eea8fae60fd560d3fb",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=text-format.validation.raw-unsupported-warning/name",
          "source": "Unsupported raw language warning",
          "source_sha256": "c4ecd1a355d750720bd2b3be44d22e3521604ed6ab08319f6f473bc9bb4f87e5",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=text-format.validation.raw-unsupported-warning/rationale",
          "source": "Projects can keep unrelated sources in a broader input tree without silently publishing them.",
          "source_sha256": "46e043270dd09d4047bee9880141ffa558895eace00d52d1138d373a6808257b",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=text-format.validation.raw-unsupported-warning/requirement",
          "source": "Unsupported raw language files produce a warning and no output for that language.",
          "source_sha256": "d76964659bc744dd6a42358fa1c868afd175b8866f8be399e54092f11f8889ff",
          "status": "current"
        }
      ]
    },
    "video": {
      "source_model": "Docs/generated/video.json",
      "entry_count": 106,
      "current_count": 106,
      "missing_count": 0,
      "complete": true,
      "entries": [
        {
          "locator": "/decoding_rules/@id=video.decoding.error-stop/name",
          "source": "Decode failure stops playback",
          "source_sha256": "96c9a3d1fe07694763d2de19fcfe611c294d75b0963f1bfe3241d0153f0c2d1b",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=video.decoding.error-stop/rationale",
          "source": "Frame errors log and call Stop; end-of-stream also stops the clip.",
          "source_sha256": "42fe04edae787b50ecd2e97d538ea8354fb064d562d290b1f664922b214b49a2",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=video.decoding.error-stop/requirement",
          "source": "Treat malformed frame data, color output failure, unsupported pixel format, and end-of-stream as stop conditions and inspect client logs.",
          "source_sha256": "1ca0422cbc79f0d57ebaa9a12f19602267203e9a09236b2e247a53d629b59e9a",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=video.decoding.frame-clock/name",
          "source": "Clock-derived frame selection",
          "source_sha256": "849dd5c2af37fcb52bb1714d0fe6c0c583da33435df40e73e5141ee59958d270",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=video.decoding.frame-clock/rationale",
          "source": "RenderFrame multiplies elapsed seconds by the Theora fps ratio and decodes the positive frame difference.",
          "source_sha256": "90b8b0f2028e7c59a9b592cf0e3ced38f59b429b8d45726c9dc48968392659ac",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=video.decoding.frame-clock/requirement",
          "source": "Author valid fps numerator and denominator metadata; frame selection derives the target frame from elapsed monotonic time and decoder cost.",
          "source_sha256": "dfdac48b978e98c80f600db6479c08ac0268485160d0db818935b6cedfe7f37e",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=video.decoding.headers/name",
          "source": "Theora header selection",
          "source_sha256": "d51228a85100af072e7c4306d2ee5df85d5c172a53aac1bbad468b334451dfb4",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=video.decoding.headers/rationale",
          "source": "Construction fails when packet seeking, setup data, or decoder allocation fails.",
          "source_sha256": "dd3162c96386f770743057e3eb49e6edb81939598cca73ea33a1e8926ddd8682",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=video.decoding.headers/requirement",
          "source": "Provide a stream whose headers are accepted by th_decode_headerin and whose setup can allocate a decoder context.",
          "source_sha256": "f68d56267f6aff47a120ea09a2c84ac4b5c6719331dacedd7d419c201140b4fb",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=video.decoding.no-container-audio/name",
          "source": "No container-audio decode",
          "source_sha256": "8705ca8e8447af7fcae839113a493407d209c1d1473843a6e2a511a65475ba90",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=video.decoding.no-container-audio/rationale",
          "source": "VideoClip links Theora packet decoding only, while fullscreen pairing starts AudioManager music from the path after a vertical bar.",
          "source_sha256": "c77253e54760b1cbbbfdb5726a38c1138170cf6a09fe35af3429588fc1bd2c09",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=video.decoding.no-container-audio/requirement",
          "source": "Do not rely on an audio stream embedded in the Ogg video; author audio as a separate client music resource when needed.",
          "source_sha256": "761f95aaa0001dd337687e1e1be67d8159ddef2e36a4fe18d4a437e0a4d7b12b",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=video.decoding.ogg-pages/name",
          "source": "Ogg page and packet ingestion",
          "source_sha256": "59bd07d1ef6d0f7ea3933b480f45fd446bf0a3cc7ea4f36c302383991077b914",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=video.decoding.ogg-pages/rationale",
          "source": "DecodePacket owns a fixed ten-stream state table and copies bounded portions from the in-memory resource.",
          "source_sha256": "c0d0b02d73764e80f3c0d9943d3d1bb462da4263291f63138a05d455e3853765",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=video.decoding.ogg-pages/requirement",
          "source": "Treat the input as Ogg pages read into the sync layer in 1024-byte portions and support at most ten simultaneously discovered logical streams.",
          "source_sha256": "4cb08c98792d7e8f850d60224c32649f6a32fd685c7fff213bf77a2e8306d9c0",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=video.decoding.pixel-formats/name",
          "source": "Supported chroma subsampling",
          "source_sha256": "3a281a1a7a7159d7a61cd68217164d985db9305a6d7175305c3e505a8fc6d345",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=video.decoding.pixel-formats/rationale",
          "source": "The CPU conversion chooses chroma divisors only for those three enum values.",
          "source_sha256": "e984861ecbe3682f201a7a7f374a52e2c0e0c49c2335eb49573e639ca7191835",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=video.decoding.pixel-formats/requirement",
          "source": "Use TH_PF_420, TH_PF_422, or TH_PF_444; any other Theora pixel format stops playback.",
          "source_sha256": "221b82e182643b7b70e90958afe285b4d69412fa7544b3dab6a9b57b0066ca70",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=video.decoding.rgba-output/name",
          "source": "CPU RGBA output",
          "source_sha256": "5bc58a8841180d6767efaa96afc15439019c9d991a4c54ab2d8e848eb4a64014",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=video.decoding.rgba-output/rationale",
          "source": "RenderFrame writes clamped RGB components and alpha 0xFF into RenderedTextureData.",
          "source_sha256": "aaf247c3dd01aedf1edd18595a64a522eb61f5c60d04b6f2bd37ac305d59d954",
          "status": "current"
        },
        {
          "locator": "/decoding_rules/@id=video.decoding.rgba-output/requirement",
          "source": "Expect each decoded frame to be converted from YCbCr to opaque RGBA on the CPU before texture upload.",
          "source_sha256": "9e05ca0f391de56129911e707e4270addac99079a2cbc5a45704abdfc44188a4",
          "status": "current"
        },
        {
          "locator": "/delivery_rules/@id=video.delivery.client-only/name",
          "source": "Client runtime ownership",
          "source_sha256": "93e1ba6c384970c7292e9829369c7435f7811badccba960a435c1a9b7c83b15b",
          "status": "current"
        },
        {
          "locator": "/delivery_rules/@id=video.delivery.client-only/rationale",
          "source": "Decoding, texture creation, drawing, and exported methods live in the client layer.",
          "source_sha256": "e0dbf6e55264e5005f2a62c994e149b46afcfef8f6a8ff07bb7891c0eb9cb734",
          "status": "current"
        },
        {
          "locator": "/delivery_rules/@id=video.delivery.client-only/requirement",
          "source": "Deliver video to client resources and invoke playback on the client or mapper runtime.",
          "source_sha256": "22e95c4dc6abb7ab8b31401b09b36d80d85109cac8e2b0b352300e5ec8fe24ee",
          "status": "current"
        },
        {
          "locator": "/delivery_rules/@id=video.delivery.exact-path/name",
          "source": "Exact resource path",
          "source_sha256": "bc86bf974ffbed0ba307c81a028c441ff254c2385a112c362be9e623d8783ab6",
          "status": "current"
        },
        {
          "locator": "/delivery_rules/@id=video.delivery.exact-path/rationale",
          "source": "Both fullscreen and script-owned paths call Resources.ReadFile with the supplied path.",
          "source_sha256": "b4fca4a8cdbcdc9d40c762f3442aae53cd5299c77f5e572cc5a8a97e71b0cbbd",
          "status": "current"
        },
        {
          "locator": "/delivery_rules/@id=video.delivery.exact-path/requirement",
          "source": "Pass the complete delivered video path, including its extension; video lookup has no default suffix or normalized stem index.",
          "source_sha256": "6bcf0a8b4ddd776de38a9df76d7a8ff702c165e34b235e9a5decd1115f71aa85",
          "status": "current"
        },
        {
          "locator": "/delivery_rules/@id=video.delivery.memory-budget/name",
          "source": "Whole-resource memory budget",
          "source_sha256": "92fc500f42cf3ac66783b95cd647ee26f8f786544fc4a2064ee51458e6e32352",
          "status": "current"
        },
        {
          "locator": "/delivery_rules/@id=video.delivery.memory-budget/rationale",
          "source": "ReadFile.GetData moves the complete resource into VideoClip.RawVideoData before packet decoding.",
          "source_sha256": "b5ef73844efcc21ebce508fb2a22aaec01c63be9ffb5b9d6b8d752c20eabcd75",
          "status": "current"
        },
        {
          "locator": "/delivery_rules/@id=video.delivery.memory-budget/requirement",
          "source": "Budget compressed file bytes, one CPU RGBA frame, and one GPU texture for each active playback; the stock path is not streaming from the resource store.",
          "source_sha256": "4c088ba8b8efa3ba4b7d7a6e59f18a3107858030189f0ea966b7bf523c0726c3",
          "status": "current"
        },
        {
          "locator": "/delivery_rules/@id=video.delivery.raw-copy/name",
          "source": "Raw-copy delivery",
          "source_sha256": "d5f46e3acc69fdf12991069f043eda10394f8bc9c31491de07daa020bf10a453",
          "status": "current"
        },
        {
          "locator": "/delivery_rules/@id=video.delivery.raw-copy/rationale",
          "source": "There is no video baker; playback consumes the delivered bytes.",
          "source_sha256": "9ac1b1a915f9c11d9a101e7107dea301b7182a06f56abb34ccf9123112d089e0",
          "status": "current"
        },
        {
          "locator": "/delivery_rules/@id=video.delivery.raw-copy/requirement",
          "source": "Keep ogv in Baking.RawCopyFileExtensions and include RawCopy in the client-only resource pack that owns video files.",
          "source_sha256": "4fbf485b136e117ba6ec580f5a574f4969e9514985ee1a5533e5274c5cfd35ed",
          "status": "current"
        },
        {
          "locator": "/description",
          "source": "Source-backed contract for FOnline Ogg/Theora video delivery, decoding, fullscreen playback, script-owned playback, rendering, and validation boundaries.",
          "source_sha256": "8aced90f7da434a0416490c6f6ebcf1a72273a1b344cf3ef29c3dc4853c90705",
          "status": "current"
        },
        {
          "locator": "/embedded_rules/@id=video.embedded.create/name",
          "source": "Script-owned playback creation",
          "source_sha256": "37f8facd108fb82e3002e7b065862e69181ad9d0b44ab53d36522879bb5e965b",
          "status": "current"
        },
        {
          "locator": "/embedded_rules/@id=video.embedded.create/rationale",
          "source": "The exported PassOwnership method loads the resource, constructs VideoClip, creates a texture, and stores both in VideoPlayback.",
          "source_sha256": "2da7b41e0e0cd4535a01d89307e3fea627f3a3ec37e35ed897b6192b7e87f02e",
          "status": "current"
        },
        {
          "locator": "/embedded_rules/@id=video.embedded.create/requirement",
          "source": "Use Game.CreateVideoPlayback(exactPath, looped) to create an independent ref-counted playback and texture.",
          "source_sha256": "2f9ccb9263e1dad05acac9809fbbc7692749955dc406f253ab9a96bb273723ad",
          "status": "current"
        },
        {
          "locator": "/embedded_rules/@id=video.embedded.missing-file/name",
          "source": "Creation failure throws",
          "source_sha256": "473e7725108b2cbb455ba31e504091fea06e33be086aa58aa93b4f7efd545b07",
          "status": "current"
        },
        {
          "locator": "/embedded_rules/@id=video.embedded.missing-file/rationale",
          "source": "Unlike fullscreen PlayVideo, CreateVideoPlayback converts a missing ReadFile result into ScriptException.",
          "source_sha256": "82c37e124b47ada708b7cc7708282aa7b0b76099d152b16d9c169f3c7b8ae961",
          "status": "current"
        },
        {
          "locator": "/embedded_rules/@id=video.embedded.missing-file/requirement",
          "source": "Catch or prevent a missing script-owned video resource; creation throws Video file not found.",
          "source_sha256": "69e3e2bfbe3a4f5d67dce76b27d33a6a77026a489c7f53b83f7030b050f57ed0",
          "status": "current"
        },
        {
          "locator": "/embedded_rules/@id=video.embedded.null-noop/name",
          "source": "Null and completed instances are no-ops",
          "source_sha256": "90815f26ee980d3e0c0c23237b8a66c0a89dc5443e3d9478871e9f7e42f0df7a",
          "status": "current"
        },
        {
          "locator": "/embedded_rules/@id=video.embedded.null-noop/rationale",
          "source": "DrawVideoPlayback returns early for both states after enforcing render scope.",
          "source_sha256": "08e0174ff17f50931ad89c79d8314c4a768ad2d840451e23739253ff4d24f41a",
          "status": "current"
        },
        {
          "locator": "/embedded_rules/@id=video.embedded.null-noop/requirement",
          "source": "Passing null or an instance whose playback resources were cleared performs no draw and does not throw.",
          "source_sha256": "9b0db28ab9c98fd22cc04d36369d17cafafa52f06444fa810fbff87e4c315b12",
          "status": "current"
        },
        {
          "locator": "/embedded_rules/@id=video.embedded.positive-size/name",
          "source": "Positive target size advances",
          "source_sha256": "4313a7d950fcd229f9982c56e762054ed0ae28884982bb431397ceb7aa8da82c",
          "status": "current"
        },
        {
          "locator": "/embedded_rules/@id=video.embedded.positive-size/rationale",
          "source": "RenderFrame is called only inside the positive-size branch.",
          "source_sha256": "139d05b54bb0d58cdf82b2024797cc4369b8d670fad8e522223468b2e4820a42",
          "status": "current"
        },
        {
          "locator": "/embedded_rules/@id=video.embedded.positive-size/requirement",
          "source": "Pass a positive width and height every frame; zero or negative size skips frame decode, texture upload, and drawing.",
          "source_sha256": "8d2f049410354249ac11a565601b5212ce60bc23e23dfec4e503641383557926",
          "status": "current"
        },
        {
          "locator": "/embedded_rules/@id=video.embedded.rectangle/name",
          "source": "Caller-owned rectangle and aspect",
          "source_sha256": "f773bdb8d8a3dd024e8e0e83305d9d5b16d785ef94f99b7f2a6da8c45fa6137e",
          "status": "current"
        },
        {
          "locator": "/embedded_rules/@id=video.embedded.rectangle/rationale",
          "source": "DrawVideoPlayback constructs irect32 directly from the script arguments.",
          "source_sha256": "9400bed006637577a629b564295051145796f676841cdcc2e28d494f68f2ebec",
          "status": "current"
        },
        {
          "locator": "/embedded_rules/@id=video.embedded.rectangle/requirement",
          "source": "Choose and maintain the target rectangle and aspect policy in project UI code; the Engine draws exactly the supplied position and size.",
          "source_sha256": "a9f385e512e9dbbe40dca50fb98bf54f396040bfad7259b49d2969ad26484f82",
          "status": "current"
        },
        {
          "locator": "/embedded_rules/@id=video.embedded.render-event/name",
          "source": "RenderIface-only drawing",
          "source_sha256": "40385c2ef99d935af217551b4372ee293b48f45bda1f561db1f549c61416b6dc",
          "status": "current"
        },
        {
          "locator": "/embedded_rules/@id=video.embedded.render-event/rationale",
          "source": "The method throws outside the client script draw scope.",
          "source_sha256": "adb324d222291ddc43726832ab72078a3e89e938827c6bc88a03ed8a5db79abd",
          "status": "current"
        },
        {
          "locator": "/embedded_rules/@id=video.embedded.render-event/requirement",
          "source": "Call Game.DrawVideoPlayback only from Game.OnRenderIface handling.",
          "source_sha256": "0b5c63cf2edb6f948e5972e04d101734481f0d0ae1e556b77a622acde4ef7b34",
          "status": "current"
        },
        {
          "locator": "/embedded_rules/@id=video.embedded.stopped/name",
          "source": "Stopped field lifecycle",
          "source_sha256": "19b01660b7895b8f74d92efc58e95469659fe06307b59a56073b08a9788f0672",
          "status": "current"
        },
        {
          "locator": "/embedded_rules/@id=video.embedded.stopped/rationale",
          "source": "The draw method clears resources and sets the exported field after the stop check.",
          "source_sha256": "9ea225b005c15a03dc16f6db7e3447bfba7ab9b250af5bdfb1bbb4e2a5b73e36",
          "status": "current"
        },
        {
          "locator": "/embedded_rules/@id=video.embedded.stopped/requirement",
          "source": "Poll VideoPlayback.Stopped only after continuing to draw the instance; the flag becomes true when DrawVideoPlayback observes that the clip stopped.",
          "source_sha256": "12b5bc3b8a11c7f8bc6438a59817d9efea8428ffa289c734d4c83ce3d94440a0",
          "status": "current"
        },
        {
          "locator": "/formats/@id=video.format.ogv/name",
          "source": "Ogg video resource",
          "source_sha256": "fe70492987734b5f14ff56eb318405997e765f3970e67da493171d2fb201354e",
          "status": "current"
        },
        {
          "locator": "/formats/@id=video.format.ogv/rationale",
          "source": "OGV is the stock raw-copy convention; the decoder reads Ogg pages and feeds Theora headers and packets rather than dispatching a generic media framework.",
          "source_sha256": "76f0ab40efb37c0701d5e5cdd6c5db469395b2cb3956f6a23d6a7af697f26cd3",
          "status": "current"
        },
        {
          "locator": "/formats/@id=video.format.ogv/requirement",
          "source": "Deliver an Ogg resource containing a Theora video stream through a client-visible RawCopy pack and pass its exact resource path to the video API.",
          "source_sha256": "f53fdd2443a524b541e331c5ae4111875c35aaadee073658f1e007a5d2b31876",
          "status": "current"
        },
        {
          "locator": "/formats/@id=video.format.theora/name",
          "source": "Theora elementary video in Ogg",
          "source_sha256": "27c42a31ab149bb71eb860b7d000be382507d193c98c720b720b9ca254b6876c",
          "status": "current"
        },
        {
          "locator": "/formats/@id=video.format.theora/rationale",
          "source": "The bundled path links libtheora directly and has no alternate codec dispatch.",
          "source_sha256": "a441c11e00d76ddb67389abd7589e9a2dccbdd18e474137dcde60f5a9d6a089d",
          "status": "current"
        },
        {
          "locator": "/formats/@id=video.format.theora/requirement",
          "source": "Use a decodable Theora stream with valid dimensions, frame-rate metadata, and one of the supported 4:2:0, 4:2:2, or 4:4:4 pixel formats.",
          "source_sha256": "c0f1cc69fd52d0c116ab80282129df0d68c912f7afa1bf624fb4b8000df78b04",
          "status": "current"
        },
        {
          "locator": "/fullscreen_rules/@id=video.fullscreen.draw-order/name",
          "source": "Late fullscreen draw",
          "source_sha256": "c918fc81a9a3e627e07270dd947a3485649a089907823a833e32c03176685a81",
          "status": "current"
        },
        {
          "locator": "/fullscreen_rules/@id=video.fullscreen.draw-order/rationale",
          "source": "MainLoop calls ProcessVideo after OnRenderIface, and DrawTexture without source/target regions fills the target.",
          "source_sha256": "b84f4ea579e2c221b6df0b4b07d97b211b93af8c2b9497349265b01c68888f9f",
          "status": "current"
        },
        {
          "locator": "/fullscreen_rules/@id=video.fullscreen.draw-order/requirement",
          "source": "Expect the built-in frame to draw after Game.OnRenderIface and stretch over the complete current render target without alpha blending.",
          "source_sha256": "0caad5660a09bb6df57f68bb2020c93dadee6ad42fc0a975087e5253a2aae2aa",
          "status": "current"
        },
        {
          "locator": "/fullscreen_rules/@id=video.fullscreen.enqueue/name",
          "source": "Queue while active",
          "source_sha256": "7287a2cf02d3cfca15b89b01314dd5aee102cf303b6a30351d127cdb5cf36ebb",
          "status": "current"
        },
        {
          "locator": "/fullscreen_rules/@id=video.fullscreen.enqueue/rationale",
          "source": "The enqueue branch is conditional on _video, and ProcessVideo starts queued entries sequentially.",
          "source_sha256": "2d6d5ddcbc134b08e0c3fa60dd92ec203d6741e820ff799c8e55c279d7e33d0a",
          "status": "current"
        },
        {
          "locator": "/fullscreen_rules/@id=video.fullscreen.enqueue/requirement",
          "source": "Set enqueue only to append behind an already active fullscreen clip; with no active clip, the request starts immediately and clears any stale queue.",
          "source_sha256": "45addf87efabc27b8cdd8100df717301ab0c588e30b1f10dd92b48eae5fa5645",
          "status": "current"
        },
        {
          "locator": "/fullscreen_rules/@id=video.fullscreen.interrupt/name",
          "source": "Input interruption",
          "source_sha256": "890953526c5415272cc7c8a66d6d6718de856157881c72935fb72cd3f80f00ee",
          "status": "current"
        },
        {
          "locator": "/fullscreen_rules/@id=video.fullscreen.interrupt/rationale",
          "source": "ProcessInputEvent stops the clip before normal input handling for the enumerated event classes.",
          "source_sha256": "fec4208e0cb28e71610c92bed84bc028c479d7cfe8923e28a524602ee7b0d94b",
          "status": "current"
        },
        {
          "locator": "/fullscreen_rules/@id=video.fullscreen.interrupt/requirement",
          "source": "When canInterrupt is true, key-down, mouse-down, and touch input events stop the active clip; design project skip policy around this broad input set.",
          "source_sha256": "6eb6995cbce471c9d495081d4ac0ce2b26791d37d4508321b71fa782c4b2c41b",
          "status": "current"
        },
        {
          "locator": "/fullscreen_rules/@id=video.fullscreen.missing-file/name",
          "source": "Missing fullscreen resource",
          "source_sha256": "9e7b0df0cea86750e6f917df3819ba46564433a3591f1026a360af8eaca1a192",
          "status": "current"
        },
        {
          "locator": "/fullscreen_rules/@id=video.fullscreen.missing-file/rationale",
          "source": "The void PlayVideo path returns when ReadFile fails and exposes no failure result.",
          "source_sha256": "697e5ecdc40123c75347173dcaaa9581ef332f263e210b7e81a020d463497ce8",
          "status": "current"
        },
        {
          "locator": "/fullscreen_rules/@id=video.fullscreen.missing-file/requirement",
          "source": "Validate fullscreen resource existence before transitions; a missing file silently leaves no active clip after current playback and queue were cleared.",
          "source_sha256": "655a5294b05d88ce050aaece135d095703ade5085100fc44f8d3a91cca4d304f",
          "status": "current"
        },
        {
          "locator": "/fullscreen_rules/@id=video.fullscreen.music-pair/name",
          "source": "Separate music pairing",
          "source_sha256": "84892da553da98482c8f4e69874c1b8fb9ef1994fd00cd3013391d3bb4f9be25",
          "status": "current"
        },
        {
          "locator": "/fullscreen_rules/@id=video.fullscreen.music-pair/rationale",
          "source": "PlayVideo splits the request, loads the first component, and uses only names[1] for AudioManager music.",
          "source_sha256": "e67914521428338a7d69b3e5ac0e6a43df4d082ea1afe010fa1d92f8191a6482",
          "status": "current"
        },
        {
          "locator": "/fullscreen_rules/@id=video.fullscreen.music-pair/requirement",
          "source": "Use video-path|music-path to stop current music and start a separate one-shot music resource alongside the video; additional separators are not a playlist.",
          "source_sha256": "fc8bd16a92506f4d7a1ae6901c9b7b25375582d854ae0532cd450a8b4c937520",
          "status": "current"
        },
        {
          "locator": "/fullscreen_rules/@id=video.fullscreen.music-stop/name",
          "source": "Completion stops music",
          "source_sha256": "56cab16bef2d8409b514e0fb5f286b696a7b4480eb1ef46f12e2d31892384ba6",
          "status": "current"
        },
        {
          "locator": "/fullscreen_rules/@id=video.fullscreen.music-stop/rationale",
          "source": "ProcessVideo unconditionally calls StopMusic when the active clip reports stopped.",
          "source_sha256": "c538b4df62f37c78c2a9e04338d0d7f152174074f3a63fbb34e1d2bed9c827d4",
          "status": "current"
        },
        {
          "locator": "/fullscreen_rules/@id=video.fullscreen.music-stop/requirement",
          "source": "Expect fullscreen clip completion or interruption to stop the client's current music group, including music not started by the video.",
          "source_sha256": "b70887d54077d1ec177addbbe354b1a7a9c3d2fa6d27dec631bdb344053654f6",
          "status": "current"
        },
        {
          "locator": "/fullscreen_rules/@id=video.fullscreen.play-api/name",
          "source": "Fullscreen playback entry point",
          "source_sha256": "74b5f5a3e0cd9c52d4d40c19f7a14ea1579022e706c20d8a68fb6ba78c426463",
          "status": "current"
        },
        {
          "locator": "/fullscreen_rules/@id=video.fullscreen.play-api/rationale",
          "source": "The exported client method delegates to ClientEngine.PlayVideo.",
          "source_sha256": "ab8a9a75fe26d947c0edb13d15ccbfff515540226e5303d394d28166ecbb8c30",
          "status": "current"
        },
        {
          "locator": "/fullscreen_rules/@id=video.fullscreen.play-api/requirement",
          "source": "Use Game.PlayVideo(videoName, canInterrupt, enqueue) for the built-in fullscreen path.",
          "source_sha256": "b72cfc43b059942dda12bae9c809058ade76316a1fbd242acb86ea8927b37e26",
          "status": "current"
        },
        {
          "locator": "/fullscreen_rules/@id=video.fullscreen.replace/name",
          "source": "Replacement clears current queue",
          "source_sha256": "90d04169b5f6c52306d90a9a0c95cafe42cf7125301ef18156d8c8ccb8cb1f84",
          "status": "current"
        },
        {
          "locator": "/fullscreen_rules/@id=video.fullscreen.replace/rationale",
          "source": "PlayVideo resets _video and clears _videoQueue before resource lookup.",
          "source_sha256": "a406f542ece800ff1a29e6059aa5fca17dea6fff58ba97b7570822facc485d4b",
          "status": "current"
        },
        {
          "locator": "/fullscreen_rules/@id=video.fullscreen.replace/requirement",
          "source": "A non-enqueued request replaces the active clip and clears every queued request before attempting to load the new path.",
          "source_sha256": "cc092306a34364a6963d0d84082917b080e72013c1a75b79e294e385bdc81359",
          "status": "current"
        },
        {
          "locator": "/fullscreen_rules/@id=video.fullscreen.status/name",
          "source": "Playing status includes queued work",
          "source_sha256": "52c8ea0348e47d0cce467be443d7d486a9bfbbbce64c0c30b0ff1dc342f3f693",
          "status": "current"
        },
        {
          "locator": "/fullscreen_rules/@id=video.fullscreen.status/rationale",
          "source": "ClientEngine reports true for an active playback or a non-empty queue.",
          "source_sha256": "7fa62ab2323af18b4c310642c9b94082da611abafaad7613409ce642dffde882",
          "status": "current"
        },
        {
          "locator": "/fullscreen_rules/@id=video.fullscreen.status/requirement",
          "source": "Interpret Game.IsVideoPlaying as active-or-queued state, not proof that a frame is currently visible.",
          "source_sha256": "40b35be6ee407e69d292ed8343f6df4521e254b3f24071431815f0e9e47313be",
          "status": "current"
        },
        {
          "locator": "/scope/excluded",
          "source": [
            "project cinematic catalogs, story triggers, subtitle systems, localization, skip policy, and save-state consequences",
            "container audio decoding, voice tracks, audio mixing, and synchronization beyond a separately started music resource",
            "hardware/platform media decoders, streaming from disk or network, adaptive bitrate, and DRM",
            "MP4, WebM, AVI, MPEG, animated images, and non-Theora Ogg video",
            "mastering, accessibility, licensing, attribution, and source provenance"
          ],
          "source_sha256": "58a62812118295b4cdf3b0687ef9827c86bb23cdbc441d28a38aae3b840b9afd",
          "status": "current"
        },
        {
          "locator": "/scope/included",
          "source": [
            "OGV raw-copy delivery and exact-path resource loading",
            "Ogg packetization and Theora header/frame decoding",
            "CPU YCbCr-to-RGBA conversion and texture upload",
            "fullscreen playback, queues, input interruption, and separate music pairing",
            "script-created rectangular VideoPlayback instances",
            "current diagnostics, limitations, and embedding-project validation"
          ],
          "source_sha256": "dcad75f49b65ed1f0c4e0947a413372b9c240e7be02a8b5141200c3d4be17470",
          "status": "current"
        },
        {
          "locator": "/scope/support_note",
          "source": "The current CPU-decoded Ogg/Theora path is revision-pinned while focused native fixtures, production cinematic evidence, and a versioned compatibility policy are missing.",
          "source_sha256": "f415018d6ed7b2fc5739b98e32dd3da42c3e35eb338157afabcd3e7fa79cb48f",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=video.validation.loop-risk/name",
          "source": "Looping requires explicit proof",
          "source_sha256": "d51dbf1e5d62093609ca26a357ae6c694bb2013b7b2a97d8d941ad85395d57a9",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=video.validation.loop-risk/rationale",
          "source": "SetLooped is exposed through creation, but the current source has no focused loop fixture.",
          "source_sha256": "cc483fb30d34e4d0f695ff90bf45153b805d3a35dd6049530c410d2b652ed14a",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=video.validation.loop-risk/requirement",
          "source": "Do not promise looping cinematics until a multi-cycle visible regression proves decoder rewind and frame continuity for the exact asset.",
          "source_sha256": "911e7f4827ee20e5c07954a0ce0eb9dde335c4a9a595ee41d7adf012a5eb5ec9",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=video.validation.no-native-fixture/name",
          "source": "Missing native video fixture",
          "source_sha256": "21f9d8aafef57a61b922579eb1219a295acb06d747dda0183bb00d4b2e2d8ca0",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=video.validation.no-native-fixture/rationale",
          "source": "The current native test inventory contains no focused video decoder/playback source.",
          "source_sha256": "fb2ee914435aed48f849d2fb2b80ec185a758c256e64df0b08de6f6385e3547d",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=video.validation.no-native-fixture/requirement",
          "source": "Treat the lack of Test_*Video* or Test_*Theora* as a coverage gap and keep visible regression evidence mandatory.",
          "source_sha256": "95051fd89a1c7d4d0f6cfc748394a5a5821c04bd0f202a15414dfc66652e2d25",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=video.validation.project-boundary/name",
          "source": "Embedding-project acceptance",
          "source_sha256": "cfb9e27000841fc2dbf0fcdf2a35ace292a2416648cbd31d9f4ca4267984a436",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=video.validation.project-boundary/rationale",
          "source": "The Engine supplies decoder and presentation primitives, not a game cinematic system.",
          "source_sha256": "a8a9b5a061444b9ec1f946c82a5e82557c6ef9ce3d9c0f07b66e97c865606fb6",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=video.validation.project-boundary/requirement",
          "source": "An embedding project owns cinematic triggers, recipients, skip/queue policy, subtitles, localization, aspect fit, audio strategy, save consequences, assets, provenance, budgets, and acceptance tests.",
          "source_sha256": "8d0c5c533812b5a79c4bf1467ccb7af0e36cc29ee7711e17610332e5162a7cb9",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=video.validation.raw-copy/name",
          "source": "Delivered-byte validation",
          "source_sha256": "7f9c600d538f349d73bf632a294c546764b7aed38964e240e91c5f1ced825a06",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=video.validation.raw-copy/rationale",
          "source": "RawCopy is the only delivery transform and runtime paths are exact.",
          "source_sha256": "0829e49aa809fe3f2856092d856e3e74bd73438359f2826b036cca46386965fc",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=video.validation.raw-copy/requirement",
          "source": "Bake and inspect the exact client resource path and bytes before runtime playback.",
          "source_sha256": "0e4e74bd5c9e95f154337c8f11f76b45fbdcd0fc398031e8f64e29a831fd59eb",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=video.validation.visible-client/name",
          "source": "Visible-client requirement",
          "source_sha256": "5d557f001abc6c00c6095e99e8c1ffea01c91713fd754d0664cc9dd83d6bdbe6",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=video.validation.visible-client/rationale",
          "source": "No headless or source-only check proves texture upload and presentation.",
          "source_sha256": "928b9888540acbd3cbc190d4f224ffae35c2abef2491a712bbeece8853446487",
          "status": "current"
        },
        {
          "locator": "/validation_rules/@id=video.validation.visible-client/requirement",
          "source": "Validate first frame, motion, end, skip, queue, resize, and texture cleanup in a visible client on every claimed platform.",
          "source_sha256": "b8cf3daaddd3f63fc304075a84672dcd43e2ab42d305f41f7e34dd65ea58ef77",
          "status": "current"
        }
      ]
    }
  }
}
