{
  "note": "GENERATED BY SUGARMAGIC - DO NOT EDIT",
  "schemaVersion": 2,
  "gameProjectIdentity": {
    "id": "minis",
    "schema": "GameProject",
    "version": 1
  },
  "gameId": "minis",
  "gameProjectMajorVersion": 1,
  "installedPluginIds": [
    "sugaragent",
    "sugardeploy",
    "sugarlang",
    "sugarprofile"
  ],
  "pluginConfigurations": [
    {
      "identity": {
        "id": "67263223-819d-4c79-81c3-9d713030b6df",
        "schema": "PluginConfiguration",
        "version": 1
      },
      "pluginId": "sugaragent",
      "enabled": true,
      "config": {
        "loreSourceKind": "local",
        "loreBackend": "on-disk",
        "loreLocalPath": "/Users/nikki/projects/minis/lore",
        "loreRepositoryUrl": "",
        "loreRepositoryRef": "main",
        "openAiVectorStoreId": "",
        "anthropicModel": "",
        "anthropicSummaryModel": "",
        "anthropicRegenModel": "",
        "maxLoreResults": 4,
        "maxLoreCharsPerItem": 600,
        "loreRelevanceFloor": 0.3,
        "memoryEnabled": true,
        "memoryDigestMaxChars": 800,
        "questAwareNpcsEnabled": true,
        "debugLogging": false,
        "tone": "",
        "moderationEnabled": false,
        "blocklist": ""
      }
    },
    {
      "identity": {
        "id": "03f8f39d-9ec8-4e41-83b2-4961806bb701",
        "schema": "PluginConfiguration",
        "version": 1
      },
      "pluginId": "sugardeploy",
      "enabled": true,
      "config": {
        "publishSettings": {
          "mini": {
            "liveDomain": "minis.playablelanguage.com",
            "hosting": {
              "frontendDeploymentTargetId": "netlify",
              "netlify": {
                "siteId": "0b1296fc-5f1d-4a96-9814-e6e548688f82",
                "siteName": "",
                "productionContext": "production"
              }
            }
          }
        },
        "settings": {
          "backendDeploymentTargetId": "google-cloud-run",
          "workingDirectory": "/Users/nikki/projects/minis",
          "githubRepo": "nikkileaps/minis",
          "targetOverrides": {
            "google-cloud-run": {
              "region": "us-central1",
              "promptEnforcement": true,
              "counters": {
                "sessionHeaderName": "x-minis-session",
                "deviceHeaderName": "x-sugarmagic-device",
                "sessionTurnLimit": 10,
                "deviceTurnLimit": null,
                "accountDailyTurnLimit": null,
                "requireSessionHeader": true
              },
              "gatewayAuthMode": "supabase-jwt-optional"
            },
            "local": {
              "gatewayHostPortBase": 8788
            }
          }
        },
        "versionedProjectIdentifiers": {
          "v1": "8k1pn"
        },
        "deployHistory": [
          {
            "runId": 34267329348,
            "runUrl": "https://github.com/nikkileaps/minis/actions/runs/34267329348",
            "ref": "main",
            "headSha": "7f37e0bebe181ec9e24cca6efd4c76ad7627ae19",
            "dispatchedAt": "2026-09-08T19:09:47.184Z",
            "status": "queued",
            "conclusion": null
          },
          {
            "runId": 34266035506,
            "runUrl": "https://github.com/nikkileaps/minis/actions/runs/34266035506",
            "ref": "main",
            "headSha": "47e806adce8605345249b1bb0a9a0928bd9cc4e4",
            "dispatchedAt": "2026-09-08T18:56:41.351Z",
            "status": "queued",
            "conclusion": null
          },
          {
            "runId": 34186001813,
            "runUrl": "https://github.com/nikkileaps/minis/actions/runs/34186001813",
            "ref": "main",
            "headSha": "d1f548dabfba95f8d702fe5148b2d753c5488b8e",
            "dispatchedAt": "2026-09-08T04:09:46.964Z",
            "status": "queued",
            "conclusion": null
          },
          {
            "runId": 34181490780,
            "runUrl": "https://github.com/nikkileaps/minis/actions/runs/34181490780",
            "ref": "main",
            "headSha": "5c448b6819b0e9327530565a038aaf7a73124106",
            "dispatchedAt": "2026-09-08T02:51:21.985Z",
            "status": "queued",
            "conclusion": null
          }
        ]
      }
    },
    {
      "identity": {
        "id": "5e5b7248-a03b-4130-b6cd-c938c8f3e0b2",
        "schema": "PluginConfiguration",
        "version": 1
      },
      "pluginId": "sugarlang",
      "enabled": true,
      "config": {
        "targetLanguage": "es",
        "fileBackedAssetPaths": [
          "assets/sugarlang/scene-contexts.json",
          "assets/sugarlang/variants.json"
        ],
        "debugBandOverride": "",
        "targetLanguages": [
          "es",
          "it"
        ]
      }
    },
    {
      "identity": {
        "id": "b977ec07-07a0-4ed4-b2c1-219fb520a4a0",
        "schema": "PluginConfiguration",
        "version": 1
      },
      "pluginId": "sugarprofile",
      "enabled": true,
      "config": {
        "enableLogin": true,
        "supabaseUrl": "https://fhhcmtbtozlxaboqhrla.supabase.co",
        "supabaseAnonKey": "sb_publishable_XgdRpHfF_nDBdYLc4x1mTg_0CPfYcVZ",
        "allowAnonymous": false,
        "anyoneCanPlayInPreview": true,
        "sessionCookieDomain": ".playablelanguage.com",
        "platformPlayable": "minis",
        "platformCatalogueUrl": "https://www.playablelanguage.com/catalogue.json"
      }
    }
  ],
  "regions": [
    {
      "identity": {
        "id": "sh-ep01-221b",
        "schema": "RegionDocument",
        "version": 1
      },
      "displayName": "221B Baker Street, sitting room",
      "placement": {
        "gridPosition": {
          "x": 0,
          "y": 0
        },
        "placementPolicy": "world-grid"
      },
      "placedAssets": [
        {
          "instanceId": "placed-asset:bs-floor",
          "assetDefinitionId": "minis:asset:floor-planks-oak",
          "displayName": "floor (honey-oak planks, 6.45 x 5.2: x -3.85..2.6, z -2.45..2.75; 0.25 m past the fireplace wall's open end at x -3.6, 0.13 past the window wall's at z -2.32)",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              -0.625,
              0,
              0.15
            ],
            "rotation": [
              0,
              0,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-wall-fireplace",
          "assetDefinitionId": "minis:asset:wall-door-221b",
          "displayName": "fireplace-and-door wall (z=2.4, 6.0 m: world x -3.6..2.4; door at x -2.42..-1.47)",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              -0.6,
              0,
              2.4
            ],
            "rotation": [
              0,
              0,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-wall-window",
          "assetDefinitionId": "minis:asset:wall-windowed-olive",
          "displayName": "window wall (x=2.4, 4.9 m incl. the 0.18 corner fill: world z -2.32..2.58; sash z -0.25..1.05, centre 0.40)",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              2.4,
              0,
              0.13
            ],
            "rotation": [
              0,
              1.5707963267948966,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-curtains",
          "assetDefinitionId": "minis:asset:curtain-pair-red",
          "displayName": "red curtains flanking the sash (pair centred on the sash centre z 0.40)",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              2.4,
              0,
              0.4
            ],
            "rotation": [
              0,
              1.5707963267948966,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-fireplace",
          "assetDefinitionId": "minis:asset:town-fireplace-01",
          "displayName": "fireplace (POLYGON Town Fireplace_01, cream surround, 1.705 wide, 0.67 m deep; sunk 0.1 m into the wall body so its rear plane is at z 2.5 and its front at z 1.831; x -0.2025..1.5025, 0.9 m from the corner past the bookcase's depth and the corner plant)",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              0.65,
              0,
              2.4484
            ],
            "rotation": [
              0,
              3.141592653589793,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-fire",
          "assetDefinitionId": "minis:asset:fire-01",
          "displayName": "the fire: fire-01 stock prop (three flame tongues over embers, Fire Flicker deform) on the firebox floor (town-fireplace-01 firebox local x +-0.377, y 0.15..0.9, z 0.122..0.553; embers' base at local (0, 0.15, 0.30) under the placement's yaw pi; the hearth light sits in its upper half)",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              0.65,
              0.15,
              2.1484
            ],
            "rotation": [
              0,
              3.141592653589793,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-mantel-candle-1",
          "assetDefinitionId": "minis:asset:candlestick-01",
          "displayName": "mantel candlestick 1 (POLYGON FV Candle_05; base ring at the shelf top; the corner-side pair, front)",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              1.4,
              1.3258,
              2.12
            ],
            "rotation": [
              0,
              0,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-mantel-candle-2",
          "assetDefinitionId": "minis:asset:candlestick-01",
          "displayName": "mantel candlestick 2 (POLYGON FV Candle_05; the corner-side pair, set back)",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              1.21,
              1.3258,
              2.28
            ],
            "rotation": [
              0,
              0,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-mantel-bust",
          "assetDefinitionId": "minis:asset:mantel-bust",
          "displayName": "plaster bust on its plinth (0.3 wide, 0.44 tall) at fireplace x +0.40, base on the shelf top, face to the room",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              1.05,
              1.2995,
              2.17
            ],
            "rotation": [
              0,
              0,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-mantel-clock",
          "assetDefinitionId": "minis:asset:mantel-clock",
          "displayName": "bracket clock (0.3 wide, 0.46 tall; body 0.19 in front of its origin) at fireplace x +0.07, base on the shelf top, dial to the room at z 2.08",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              0.72,
              1.2995,
              2.34
            ],
            "rotation": [
              0,
              0,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-mantel-books-stack",
          "assetDefinitionId": "minis:asset:town-book-group-05",
          "displayName": "book stack lying on the mantel (0.37 x 0.35) at fireplace x -0.29",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              0.36,
              1.2995,
              2.15
            ],
            "rotation": [
              0,
              0.15,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-mantel-plant",
          "assetDefinitionId": "minis:asset:town-pot-plant-05",
          "displayName": "small plant on the mantel (POLYGON Town PotPlant_05 at half scale: 0.21 x 0.17, 0.27 tall) at fireplace x -0.60, set back at z 2.32",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              0.05,
              1.2995,
              2.32
            ],
            "rotation": [
              0,
              3.141592653589793,
              0
            ],
            "scale": [
              0.5,
              0.5,
              0.5
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-mantel-candle-3",
          "assetDefinitionId": "minis:asset:candlestick-01",
          "displayName": "mantel candlestick 3 (POLYGON FV Candle_05; the door-side single, front, base ring 0.02 inside the shelf's end)",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              -0.09,
              1.3258,
              2.1
            ],
            "rotation": [
              0,
              0,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-map",
          "assetDefinitionId": "minis:asset:framed-map",
          "displayName": "framed map of London over the mantel (bottom at 1.2 behind the 1.3 shelf, top at the 2.1 wall cap)",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              0.65,
              1.65,
              2.4
            ],
            "rotation": [
              0,
              0,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-picture-1",
          "assetDefinitionId": "minis:asset:picture-frame",
          "displayName": "silhouette, fireplace wall near the corner (lower), over the corner plant",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              1.95,
              1.42,
              2.4
            ],
            "rotation": [
              0,
              0,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-picture-2",
          "assetDefinitionId": "minis:asset:picture-frame",
          "displayName": "silhouette, fireplace wall near the corner (upper)",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              1.95,
              1.85,
              2.4
            ],
            "rotation": [
              0,
              0,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-picture-3",
          "assetDefinitionId": "minis:asset:picture-frame",
          "displayName": "silhouette between the fireplace and the door, over the breakfast table (lower)",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              -0.9,
              1.45,
              2.4
            ],
            "rotation": [
              0,
              0,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-picture-4",
          "assetDefinitionId": "minis:asset:picture-frame",
          "displayName": "silhouette between the fireplace and the door, over the breakfast table (upper)",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              -0.9,
              1.85,
              2.4
            ],
            "rotation": [
              0,
              0,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-picture-6",
          "assetDefinitionId": "minis:asset:picture-frame",
          "displayName": "silhouette over the violin at the window wall's open end",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              2.4,
              1.4,
              -1.45
            ],
            "rotation": [
              0,
              1.5707963267948966,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-picture-7",
          "assetDefinitionId": "minis:asset:picture-frame",
          "displayName": "silhouette over the desk's lamp end (the reference's pair above the desk), inner",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              2.4,
              1.8,
              -1.2
            ],
            "rotation": [
              0,
              1.5707963267948966,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-picture-8",
          "assetDefinitionId": "minis:asset:picture-frame",
          "displayName": "silhouette over the desk's lamp end, outer, 0.04 m clear of the curtain",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              2.4,
              1.8,
              -0.85
            ],
            "rotation": [
              0,
              1.5707963267948966,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-bookcase",
          "assetDefinitionId": "minis:asset:bookcase-ivy",
          "displayName": "bookcase with ivy in the corner of the window wall (body z 1.6..2.4 flush to the corner, front at x 2.025, the vine trailing on the window side z 1.48..1.6)",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              2.4,
              0,
              2
            ],
            "rotation": [
              0,
              1.5707963267948966,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-corner-plant",
          "assetDefinitionId": "minis:asset:town-pot-plant-03",
          "displayName": "potted plant (POLYGON Town PotPlant_03, 0.7 m, true scale) in the corner pocket on the fireplace wall between the bookcase's front (x 2.025) and the fireplace's corner edge (x 1.5025): box x 1.55..2.01, z 1.91..2.37",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              1.78,
              0,
              2.14
            ],
            "rotation": [
              0,
              0,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-breakfast-table",
          "assetDefinitionId": "minis:asset:breakfast-table",
          "displayName": "breakfast table (0.8 square) against the fireplace wall between the umbrella stand and the door: x -1.32..-0.52, z 1.6..2.4; the silver coffee-pot laid; the episode's staging, not in the reference",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              -0.92,
              0,
              2
            ],
            "rotation": [
              0,
              0,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-umbrella-stand",
          "assetDefinitionId": "minis:asset:umbrella-stand",
          "displayName": "umbrella stand against the fireplace's door-side edge: box x -0.48..-0.19, 0.01 m off the surround",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              -0.34,
              0,
              2.22
            ],
            "rotation": [
              0,
              0,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-coat-stand",
          "assetDefinitionId": "minis:asset:coat-stand",
          "displayName": "coat stand in the pocket past the door, its pole 0.04 m inside the red chair's back edge (as the reference tucks it), the long coat toward the door (+x), the deerstalker facing the room; box x -3.42..-2.65, 0.15 m past the door's far trim and 0.18 m short of the wall's open end at x -3.6",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              -3.1,
              0,
              2
            ],
            "rotation": [
              0,
              0,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-desk",
          "assetDefinitionId": "minis:asset:writing-desk-221b",
          "displayName": "writing desk (1.4 x 0.6) back to the window wall, under the sash's outer half and past it: z -1.05..0.35, the sash spanning -0.25..1.05",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              2.1,
              0,
              -0.35
            ],
            "rotation": [
              0,
              -1.5707963267948966,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-desk-lamp",
          "assetDefinitionId": "minis:asset:desk-lamp-green",
          "displayName": "green-shaded lamp at the desk's -z (open) end",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              2.25,
              0.76,
              -0.8
            ],
            "rotation": [
              0,
              -1.5707963267948966,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-desk-books",
          "assetDefinitionId": "minis:asset:town-book-group-02",
          "displayName": "three books standing on the desk's front edge at its chair end (the mantel could not hold a seventh piece at stock size)",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              1.97,
              0.76,
              0.12
            ],
            "rotation": [
              0,
              0.1,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-windsor-chair",
          "assetDefinitionId": "minis:asset:town-dining-chair-01",
          "displayName": "desk chair (POLYGON Town DiningChair_01, honey wood) beside the desk's chair end under the sash's inner half, side to the window wall, back toward the bookcase, facing the desk along the wall (-z): box x 1.80..2.36, z 0.38..1.03",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              2.08,
              0,
              0.7
            ],
            "rotation": [
              0,
              3.141592653589793,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-violin",
          "assetDefinitionId": "minis:asset:violin-leaning",
          "displayName": "violin leaning against the window wall in the corner pocket past the desk's lamp end (0.10 m past the desk), face to the room, its top 0.045 m off the wall face; box x 2.05..2.36, z -1.55..-1.16",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              2.07,
              0,
              -1.35
            ],
            "rotation": [
              0,
              -1.5707963267948966,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-corner-fern",
          "assetDefinitionId": "minis:asset:town-pot-plant-04",
          "displayName": "potted fern (POLYGON Town PotPlant_04, 0.66 m, true scale) beside the violin toward the open end, 0.33 m off the wall: box x 1.68..2.07, z -2.06..-1.64",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              1.88,
              0,
              -1.85
            ],
            "rotation": [
              0,
              0.4,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-rug",
          "assetDefinitionId": "minis:asset:rug-rect-red",
          "displayName": "crimson patterned rug 4.6 x 3.2 (x -3.7..0.9, z -2.3..0.9): from under the red chair's front and the side table to under the green chair, the floor's open edge to the hearth rug's front",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              -1.4,
              0,
              -0.7
            ],
            "rotation": [
              0,
              0,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-hearth-rug",
          "assetDefinitionId": "minis:asset:hearth-rug",
          "displayName": "hearth rug before the fire (beat 1, the spawn): x 0..1.3, z 0.9..1.7, 0.13 m off the surround's front",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              0.65,
              0,
              1.3
            ],
            "rotation": [
              0,
              0,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-walking-stick",
          "assetDefinitionId": "minis:asset:walking-stick",
          "displayName": "Mortimer's stick lying on the hearth rug",
          "parentFolderId": null,
          "inspectable": {
            "behaviorId": "inspectable:sh-ep01:stick",
            "view": {
              "kind": "examine",
              "title": "Walking stick",
              "body": "A heavy wooden stick with a round head. Under the head is a silver band. The band says: To James Mortimer, from his friends at Charing Cross Hospital, eighteen eighty-four. The iron tip is worn down from a lot of walking."
            }
          },
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              0.7,
              0.03,
              1.3
            ],
            "rotation": [
              0,
              0.5,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-tea-table",
          "assetDefinitionId": "minis:asset:fv-table-04",
          "displayName": "round tea table (POLYGON FV Table_04, 1.15 m across, top at 0.482) at the rug's centre: box x -1.98..-0.82, z -1.28..-0.12",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              -1.4,
              0,
              -0.7
            ],
            "rotation": [
              0,
              0,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-tea-things",
          "assetDefinitionId": "minis:asset:tea-things-221b",
          "displayName": "tea things, magnifying glass and books on the table",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              -1.4,
              0.482,
              -0.7
            ],
            "rotation": [
              0,
              0.3,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-manuscript",
          "assetDefinitionId": "minis:asset:manuscript-baskerville",
          "displayName": "the Baskerville manuscript Mortimer lays on the tea table, beside the magnifying glass on the side toward the red armchair",
          "parentFolderId": null,
          "inspectable": {
            "behaviorId": "inspectable:sh-ep01:manuscript",
            "view": {
              "kind": "examine",
              "title": "The old manuscript",
              "body": "Old pages, written by hand long ago. They tell the story of the Baskerville family. Wicked Hugo Baskerville went after a young girl who ran from him across the moor. When his friends found him, a huge black hound was at his throat."
            }
          },
          "condition": {
            "questDefinitionId": "quest:sh-ep01:beats",
            "questStageId": "stage:sh-ep01:sitting-room",
            "questNodeId": "node:sh-ep01:play-legend",
            "storyPointSide": "after",
            "worldFlagEquals": null
          },
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              -1.5931,
              0.482,
              -0.9857
            ],
            "rotation": [
              0,
              0.45,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-newspaper",
          "assetDefinitionId": "minis:asset:prop-newspaper-open",
          "displayName": "the open newspaper Mortimer lays on the tea table, lying flat (turned face up and pressed to 0.27 in its depth), on the table's side toward the fireplace",
          "parentFolderId": null,
          "inspectable": {
            "behaviorId": "inspectable:sh-ep01:newspaper",
            "view": {
              "kind": "examine",
              "title": "The newspaper",
              "body": "A page from a Devon newspaper. Sir Charles Baskerville was found dead at the end of the yew alley at his house. There was no mark on him. The doctors said it was his heart."
            }
          },
          "condition": {
            "questDefinitionId": "quest:sh-ep01:beats",
            "questStageId": "stage:sh-ep01:sitting-room",
            "questNodeId": "node:sh-ep01:play-death",
            "storyPointSide": "after",
            "worldFlagEquals": null
          },
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              -0.9918,
              0.5115,
              -0.8891
            ],
            "rotation": [
              -1.5984942609358037,
              0.08929038631118287,
              1.8720338076077663
            ],
            "scale": [
              0.9,
              0.9,
              0.27
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-armchair-red",
          "assetDefinitionId": "minis:asset:fv-arm-chair-01",
          "displayName": "red armchair (POLYGON FV Arm_Chair_01, 1.19 x 1.07, tufted red over a wood base; beat 3) in front of the door's far 0.4 m and the coat-stand pocket, angled toward the tea table; back corner 0.03 m off the door wall; collides by nine stepped blocker volumes over its real footprint, not its bounding square",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "colliderOverride": {
            "shape": "none",
            "localBounds": null
          },
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              -3.05,
              0,
              -1.6
            ],
            "rotation": [
              0,
              1.07,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-side-table",
          "assetDefinitionId": "minis:asset:side-table-round",
          "displayName": "side table (0.56 across) beside the red chair's far side at its front corner, 0.09 m off the chair's edge, on the rug at the floor's open corner: box x -3.73..-3.17, z 0.51..1.05",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              -3.45,
              0,
              0.78
            ],
            "rotation": [
              0,
              0,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-side-table-plant",
          "assetDefinitionId": "minis:asset:town-pot-plant-05",
          "displayName": "plant on the side table (POLYGON Town PotPlant_05, true scale; the table top is at 0.6)",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              -3.53,
              0.6,
              0.71
            ],
            "rotation": [
              0,
              0,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-side-table-books",
          "assetDefinitionId": "minis:asset:town-book-group-04",
          "displayName": "books on the side table",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              -3.35,
              0.6,
              0.88
            ],
            "rotation": [
              0,
              0.3,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-armchair-green",
          "assetDefinitionId": "minis:asset:town-couch-03",
          "displayName": "green club chair (POLYGON Town Couch_03, 1.01 x 0.88) on the rug's near corner in front of the desk's open end, facing the tea table and the fire: box x -0.67..0.67, z -2.15..-0.85, 0.16 m from the tea table",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              0,
              0,
              -1.5
            ],
            "rotation": [
              0,
              -0.6,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-tartan-throw",
          "assetDefinitionId": "minis:asset:tartan-throw",
          "displayName": "tartan throw over the green chair's back and its near (camera-side) arm, in the chair's frame at the chair's own transform",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              0,
              0,
              -1.5
            ],
            "rotation": [
              0,
              -0.6,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-asset:bs-book-stack",
          "assetDefinitionId": "minis:asset:book-stack",
          "displayName": "books on a stool at the green chair's -x side, on the rug's near edge",
          "parentFolderId": null,
          "inspectable": null,
          "condition": null,
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              -0.85,
              0,
              -1.95
            ],
            "rotation": [
              0,
              0.2,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        }
      ],
      "placedLights": [
        {
          "instanceId": "placed-light:bs-hearth",
          "kind": "point",
          "displayName": "hearth fire (flame; inside town-fireplace-01's firebox at local (0, 0.5, 0.3) under the placement's yaw pi: in the flame cluster's upper half, 0.06 m behind the opening plane at z 2.088)",
          "parentFolderId": null,
          "enabled": true,
          "color": 16747056,
          "intensity": 2.1,
          "radius": 3.1,
          "spot": null,
          "area": null,
          "modulation": {
            "kind": "flame",
            "speed": 1,
            "amount": 0.35,
            "colorWobble": 0.3,
            "seed": 0.13
          },
          "transform": {
            "position": [
              0.65,
              0.5,
              2.1484
            ],
            "rotation": [
              0,
              0,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-light:bs-mantel-candle-1",
          "kind": "point",
          "displayName": "mantel candle 1 (fv-candle-05 at fireplace x +0.75 on the shelf, z 2.12; flame tip = base 1.3258 + 0.40)",
          "parentFolderId": null,
          "enabled": true,
          "color": 16754768,
          "intensity": 0.2,
          "radius": 0.7,
          "spot": null,
          "area": null,
          "modulation": {
            "kind": "candle",
            "speed": 1,
            "amount": 0.5,
            "colorWobble": 0.2,
            "seed": 0.2
          },
          "transform": {
            "position": [
              1.4,
              1.7108,
              2.12
            ],
            "rotation": [
              0,
              0,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-light:bs-mantel-candle-2",
          "kind": "point",
          "displayName": "mantel candle 2 (fv-candle-05 at fireplace x +0.56 on the shelf, z 2.28; flame tip = base 1.3258 + 0.40)",
          "parentFolderId": null,
          "enabled": true,
          "color": 16754768,
          "intensity": 0.2,
          "radius": 0.7,
          "spot": null,
          "area": null,
          "modulation": {
            "kind": "candle",
            "speed": 1,
            "amount": 0.5,
            "colorWobble": 0.2,
            "seed": 0.4
          },
          "transform": {
            "position": [
              1.21,
              1.7108,
              2.28
            ],
            "rotation": [
              0,
              0,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-light:bs-mantel-candle-3",
          "kind": "point",
          "displayName": "mantel candle 3 (fv-candle-05 at fireplace x -0.74 on the shelf, z 2.10; flame tip = base 1.3258 + 0.40)",
          "parentFolderId": null,
          "enabled": true,
          "color": 16754768,
          "intensity": 0.2,
          "radius": 0.7,
          "spot": null,
          "area": null,
          "modulation": {
            "kind": "candle",
            "speed": 1,
            "amount": 0.5,
            "colorWobble": 0.2,
            "seed": 0.6
          },
          "transform": {
            "position": [
              -0.09,
              1.7108,
              2.1
            ],
            "rotation": [
              0,
              0,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-light:bs-desk-lamp",
          "kind": "point",
          "displayName": "green-shaded desk lamp (steady; at the shade mouth's lit ring: lamp base (2.25, 0.76, -0.80) + local (0.1, 0.265) under yaw -90 deg)",
          "parentFolderId": null,
          "enabled": true,
          "color": 15259792,
          "intensity": 0.8,
          "radius": 1.5,
          "spot": null,
          "area": null,
          "modulation": {
            "kind": "steady",
            "speed": 1,
            "amount": 0,
            "colorWobble": 0,
            "seed": 0
          },
          "transform": {
            "position": [
              2.25,
              1,
              -0.7
            ],
            "rotation": [
              0,
              0,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-light:bs-window-skyfill",
          "kind": "point",
          "displayName": "dusk sky fill half a metre inside the sash at its centre z 0.40 (cool, low, wide; a cheat)",
          "parentFolderId": null,
          "enabled": true,
          "color": 10466536,
          "intensity": 0.5,
          "radius": 4,
          "spot": null,
          "area": null,
          "modulation": {
            "kind": "steady",
            "speed": 1,
            "amount": 0,
            "colorWobble": 0,
            "seed": 0
          },
          "transform": {
            "position": [
              1.9,
              1.6,
              0.4
            ],
            "rotation": [
              0,
              0,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        },
        {
          "instanceId": "placed-light:bs-door-firelight",
          "kind": "point",
          "displayName": "firelight reaching the door corner (a cheat: no fixture; a low amber point over the beat-door lane between the red chair's front and Mortimer, so Mortimer, the red chair and the coat stand sit in the same firelight as Holmes)",
          "parentFolderId": null,
          "enabled": true,
          "color": 16752704,
          "intensity": 0.7,
          "radius": 2.4,
          "spot": null,
          "area": null,
          "modulation": {
            "kind": "flame",
            "speed": 1,
            "amount": 0.2,
            "colorWobble": 0.15,
            "seed": 0.71
          },
          "transform": {
            "position": [
              -2.2,
              1.4,
              1.3
            ],
            "rotation": [
              0,
              0,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          }
        }
      ],
      "folders": [],
      "environmentBinding": {
        "defaultEnvironmentId": "minis:environment:baker-street-evening"
      },
      "areas": [
        {
          "areaId": "area:beat-stick",
          "displayName": "Beat 1: the stick (the hearth, where Mortimer's stick lies)",
          "lorePageId": null,
          "parentAreaId": null,
          "kind": "zone",
          "bounds": {
            "kind": "box",
            "center": [
              0.2,
              0.9,
              1
            ],
            "size": [
              0.4,
              1.8,
              0.4
            ]
          }
        },
        {
          "areaId": "area:beat-door",
          "displayName": "Beat 2: Mortimer (as near the door as the breakfast table allows)",
          "lorePageId": null,
          "parentAreaId": null,
          "kind": "zone",
          "bounds": {
            "kind": "box",
            "center": [
              -1.85,
              0.9,
              0.65
            ],
            "size": [
              1.3,
              1.8,
              1.2
            ]
          }
        },
        {
          "areaId": "area:beat-window-221b",
          "displayName": "Beat 5: Sir Henry is coming (in front of the desk and the channel past its lamp end)",
          "lorePageId": null,
          "parentAreaId": null,
          "kind": "zone",
          "bounds": {
            "kind": "box",
            "center": [
              1.2,
              0.9,
              -0.7
            ],
            "size": [
              1.2,
              1.8,
              3
            ]
          }
        }
      ],
      "behaviors": [],
      "npcPresences": [
        {
          "presenceId": "npc-presence:holmes",
          "npcDefinitionId": "minis:npc:holmes",
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              1.4,
              0,
              1.4
            ],
            "rotation": [
              0,
              -2.9,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          },
          "condition": null,
          "placementLabel": "in front of the mantel's right end with his pipe, turned to the room and the hearth rug; clear of the fireplace collider, whose front face is at z 1.83"
        },
        {
          "presenceId": "npc-presence:mortimer",
          "npcDefinitionId": "minis:npc:mortimer",
          "shaderOverrides": [],
          "shaderParameterOverrides": [],
          "transform": {
            "position": [
              -1.75,
              0,
              2.1
            ],
            "rotation": [
              0,
              -2.9,
              0
            ],
            "scale": [
              1,
              1,
              1
            ]
          },
          "condition": {
            "questDefinitionId": "quest:sh-ep01:beats",
            "questStageId": "stage:sh-ep01:sitting-room",
            "questNodeId": "node:sh-ep01:arrive-door",
            "storyPointSide": "after",
            "worldFlagEquals": null
          },
          "placementLabel": "just inside the 221B door (the opening is x -2.42..-1.47 at z 2.4), facing the room; appears once the player answers the door (arrive-door)"
        }
      ],
      "itemPresences": [],
      "playerPresence": {
        "presenceId": "3f1c7a52-9b0e-4d7a-8c21-221b0ba4e701",
        "transform": {
          "position": [
            0.5,
            0,
            0.5
          ],
          "rotation": [
            0,
            0,
            0
          ],
          "scale": [
            1,
            1,
            1
          ]
        }
      },
      "landscape": {
        "enabled": false,
        "size": 100,
        "subdivisions": 160,
        "surfaceSlots": [
          {
            "channelId": "base",
            "displayName": "Base",
            "slotName": "Base",
            "surface": {
              "kind": "inline",
              "surface": {
                "layers": [
                  {
                    "layerId": "dd53b356-f613-4d88-ab5b-22e7850bc3c2",
                    "displayName": "Base",
                    "enabled": true,
                    "opacity": 1,
                    "mask": {
                      "kind": "always"
                    },
                    "kind": "appearance",
                    "blendMode": "base",
                    "content": {
                      "kind": "color",
                      "color": 13223101
                    }
                  }
                ],
                "context": "universal"
              }
            },
            "tilingScale": null
          }
        ],
        "deform": null,
        "effect": null,
        "paintPayload": null
      },
      "audio": {
        "emitters": []
      },
      "markers": [],
      "navMesh": null,
      "lorePageId": null,
      "layoutSketch": null,
      "volumes": [
        {
          "volumeId": "area:beat-stick",
          "displayName": "Beat 1: the stick (the hearth, where Mortimer's stick lies)",
          "parentVolumeId": null,
          "enabled": true,
          "bounds": {
            "kind": "box",
            "center": [
              0.2,
              0.9,
              1
            ],
            "size": [
              0.4,
              1.8,
              0.4
            ]
          },
          "roles": [
            "label"
          ],
          "labelKind": "zone",
          "lorePageId": null,
          "blockDirection": null,
          "condition": null,
          "onEnterActions": [],
          "onExitActions": [],
          "navCost": null,
          "color": null
        },
        {
          "volumeId": "area:beat-door",
          "displayName": "Beat 2: Mortimer (as near the door as the breakfast table allows)",
          "parentVolumeId": null,
          "enabled": true,
          "bounds": {
            "kind": "box",
            "center": [
              -1.85,
              0.9,
              0.65
            ],
            "size": [
              1.3,
              1.8,
              1.2
            ]
          },
          "roles": [
            "label"
          ],
          "labelKind": "zone",
          "lorePageId": null,
          "blockDirection": null,
          "condition": null,
          "onEnterActions": [],
          "onExitActions": [],
          "navCost": null,
          "color": null
        },
        {
          "volumeId": "area:beat-window-221b",
          "displayName": "Beat 5: Sir Henry is coming (in front of the desk and the channel past its lamp end)",
          "parentVolumeId": null,
          "enabled": true,
          "bounds": {
            "kind": "box",
            "center": [
              1.2,
              0.9,
              -0.7
            ],
            "size": [
              1.2,
              1.8,
              3
            ]
          },
          "roles": [
            "label"
          ],
          "labelKind": "zone",
          "lorePageId": null,
          "blockDirection": null,
          "condition": null,
          "onEnterActions": [],
          "onExitActions": [],
          "navCost": null,
          "color": null
        },
        {
          "volumeId": "volume:bs-red-chair-step-1",
          "displayName": "red armchair footprint 1/9 (a 3x3 grid of fv-arm-chair-01's baked local bounds under the placement yaw; the chair itself carries no collider)",
          "parentVolumeId": null,
          "enabled": true,
          "bounds": {
            "kind": "box",
            "center": [
              -2.6443,
              0.5,
              2.1114
            ],
            "size": [
              0.5247,
              1,
              0.5114
            ]
          },
          "roles": [
            "blocker"
          ],
          "labelKind": null,
          "lorePageId": null,
          "blockDirection": "in",
          "condition": null,
          "onEnterActions": [],
          "onExitActions": [],
          "navCost": null,
          "color": "#a6e3a1"
        },
        {
          "volumeId": "volume:bs-red-chair-step-2",
          "displayName": "red armchair footprint 2/9 (a 3x3 grid of fv-arm-chair-01's baked local bounds under the placement yaw; the chair itself carries no collider)",
          "parentVolumeId": null,
          "enabled": true,
          "bounds": {
            "kind": "box",
            "center": [
              -2.4598,
              0.5,
              1.8047
            ],
            "size": [
              0.5247,
              1,
              0.5114
            ]
          },
          "roles": [
            "blocker"
          ],
          "labelKind": null,
          "lorePageId": null,
          "blockDirection": "in",
          "condition": null,
          "onEnterActions": [],
          "onExitActions": [],
          "navCost": null,
          "color": "#a6e3a1"
        },
        {
          "volumeId": "volume:bs-red-chair-step-3",
          "displayName": "red armchair footprint 3/9 (a 3x3 grid of fv-arm-chair-01's baked local bounds under the placement yaw; the chair itself carries no collider)",
          "parentVolumeId": null,
          "enabled": true,
          "bounds": {
            "kind": "box",
            "center": [
              -2.2753,
              0.5,
              1.4979
            ],
            "size": [
              0.5247,
              1,
              0.5114
            ]
          },
          "roles": [
            "blocker"
          ],
          "labelKind": null,
          "lorePageId": null,
          "blockDirection": "in",
          "condition": null,
          "onEnterActions": [],
          "onExitActions": [],
          "navCost": null,
          "color": "#a6e3a1"
        },
        {
          "volumeId": "volume:bs-red-chair-step-4",
          "displayName": "red armchair footprint 4/9 (a 3x3 grid of fv-arm-chair-01's baked local bounds under the placement yaw; the chair itself carries no collider)",
          "parentVolumeId": null,
          "enabled": true,
          "bounds": {
            "kind": "box",
            "center": [
              -2.9845,
              0.5,
              1.9067
            ],
            "size": [
              0.5247,
              1,
              0.5114
            ]
          },
          "roles": [
            "blocker"
          ],
          "labelKind": null,
          "lorePageId": null,
          "blockDirection": "in",
          "condition": null,
          "onEnterActions": [],
          "onExitActions": [],
          "navCost": null,
          "color": "#a6e3a1"
        },
        {
          "volumeId": "volume:bs-red-chair-step-5",
          "displayName": "red armchair footprint 5/9 (a 3x3 grid of fv-arm-chair-01's baked local bounds under the placement yaw; the chair itself carries no collider)",
          "parentVolumeId": null,
          "enabled": true,
          "bounds": {
            "kind": "box",
            "center": [
              -2.8,
              0.5,
              1.6
            ],
            "size": [
              0.5247,
              1,
              0.5114
            ]
          },
          "roles": [
            "blocker"
          ],
          "labelKind": null,
          "lorePageId": null,
          "blockDirection": "in",
          "condition": null,
          "onEnterActions": [],
          "onExitActions": [],
          "navCost": null,
          "color": "#a6e3a1"
        },
        {
          "volumeId": "volume:bs-red-chair-step-6",
          "displayName": "red armchair footprint 6/9 (a 3x3 grid of fv-arm-chair-01's baked local bounds under the placement yaw; the chair itself carries no collider)",
          "parentVolumeId": null,
          "enabled": true,
          "bounds": {
            "kind": "box",
            "center": [
              -2.6155,
              0.5,
              1.2933
            ],
            "size": [
              0.5247,
              1,
              0.5114
            ]
          },
          "roles": [
            "blocker"
          ],
          "labelKind": null,
          "lorePageId": null,
          "blockDirection": "in",
          "condition": null,
          "onEnterActions": [],
          "onExitActions": [],
          "navCost": null,
          "color": "#a6e3a1"
        },
        {
          "volumeId": "volume:bs-red-chair-step-7",
          "displayName": "red armchair footprint 7/9 (a 3x3 grid of fv-arm-chair-01's baked local bounds under the placement yaw; the chair itself carries no collider)",
          "parentVolumeId": null,
          "enabled": true,
          "bounds": {
            "kind": "box",
            "center": [
              -3.3247,
              0.5,
              1.7021
            ],
            "size": [
              0.5247,
              1,
              0.5114
            ]
          },
          "roles": [
            "blocker"
          ],
          "labelKind": null,
          "lorePageId": null,
          "blockDirection": "in",
          "condition": null,
          "onEnterActions": [],
          "onExitActions": [],
          "navCost": null,
          "color": "#a6e3a1"
        },
        {
          "volumeId": "volume:bs-red-chair-step-8",
          "displayName": "red armchair footprint 8/9 (a 3x3 grid of fv-arm-chair-01's baked local bounds under the placement yaw; the chair itself carries no collider)",
          "parentVolumeId": null,
          "enabled": true,
          "bounds": {
            "kind": "box",
            "center": [
              -3.1402,
              0.5,
              1.3953
            ],
            "size": [
              0.5247,
              1,
              0.5114
            ]
          },
          "roles": [
            "blocker"
          ],
          "labelKind": null,
          "lorePageId": null,
          "blockDirection": "in",
          "condition": null,
          "onEnterActions": [],
          "onExitActions": [],
          "navCost": null,
          "color": "#a6e3a1"
        },
        {
          "volumeId": "volume:bs-red-chair-step-9",
          "displayName": "red armchair footprint 9/9 (a 3x3 grid of fv-arm-chair-01's baked local bounds under the placement yaw; the chair itself carries no collider)",
          "parentVolumeId": null,
          "enabled": true,
          "bounds": {
            "kind": "box",
            "center": [
              -2.9557,
              0.5,
              1.0886
            ],
            "size": [
              0.5247,
              1,
              0.5114
            ]
          },
          "roles": [
            "blocker"
          ],
          "labelKind": null,
          "lorePageId": null,
          "blockDirection": "in",
          "condition": null,
          "onEnterActions": [],
          "onExitActions": [],
          "navCost": null,
          "color": "#a6e3a1"
        },
        {
          "volumeId": "volume:bs-boundary-north",
          "displayName": "diorama boundary north: beyond the fireplace wall; keeps the player (and the drivers' path planner) on the floor",
          "parentVolumeId": null,
          "enabled": true,
          "bounds": {
            "kind": "box",
            "center": [
              -0.625,
              0.5,
              2.95
            ],
            "size": [
              7,
              1,
              0.4
            ]
          },
          "roles": [
            "blocker"
          ],
          "labelKind": null,
          "lorePageId": null,
          "blockDirection": null,
          "condition": null,
          "onEnterActions": [],
          "onExitActions": [],
          "navCost": null,
          "color": null
        },
        {
          "volumeId": "volume:bs-boundary-south",
          "displayName": "diorama boundary south: the open front edge of the floor; keeps the player (and the drivers' path planner) on the floor",
          "parentVolumeId": null,
          "enabled": true,
          "bounds": {
            "kind": "box",
            "center": [
              -0.625,
              0.5,
              -2.65
            ],
            "size": [
              7,
              1,
              0.4
            ]
          },
          "roles": [
            "blocker"
          ],
          "labelKind": null,
          "lorePageId": null,
          "blockDirection": null,
          "condition": null,
          "onEnterActions": [],
          "onExitActions": [],
          "navCost": null,
          "color": null
        },
        {
          "volumeId": "volume:bs-boundary-east",
          "displayName": "diorama boundary east: beyond the window wall; keeps the player (and the drivers' path planner) on the floor",
          "parentVolumeId": null,
          "enabled": true,
          "bounds": {
            "kind": "box",
            "center": [
              2.8,
              0.5,
              0.15
            ],
            "size": [
              0.4,
              1,
              5.6
            ]
          },
          "roles": [
            "blocker"
          ],
          "labelKind": null,
          "lorePageId": null,
          "blockDirection": null,
          "condition": null,
          "onEnterActions": [],
          "onExitActions": [],
          "navCost": null,
          "color": null
        },
        {
          "volumeId": "volume:bs-boundary-west",
          "displayName": "diorama boundary west: the open left edge of the floor; keeps the player (and the drivers' path planner) on the floor",
          "parentVolumeId": null,
          "enabled": true,
          "bounds": {
            "kind": "box",
            "center": [
              -4.05,
              0.5,
              0.15
            ],
            "size": [
              0.4,
              1,
              5.6
            ]
          },
          "roles": [
            "blocker"
          ],
          "labelKind": null,
          "lorePageId": null,
          "blockDirection": null,
          "condition": null,
          "onEnterActions": [],
          "onExitActions": [],
          "navCost": null,
          "color": null
        }
      ],
      "actorMarker": {
        "actorMarkerId": "actor-marker:221b-sitting-room",
        "displayName": "221B Conversation",
        "standPosition": [
          1.35,
          0,
          1.3
        ],
        "cameraPosition": [
          1.35,
          1.5,
          -2.45
        ]
      }
    }
  ],
  "seasons": [
    {
      "seasonId": "season:sherlock",
      "urlSegment": "sherlock",
      "displayName": "Sherlock Holmes",
      "description": "The Hound of the Baskervilles retold in Wordlark Hollow as eight minis, one diorama per set piece of the novel; the player is Dr Watson.",
      "notes": "Season brief: docs/sherlock/SEASON.md. Canon from Project Gutenberg #2852, original text only; the beast is the legend's hound, a hound-person Stapleton keeps and makes monstrous, and the season never settles whether he is only that; no dog appears.",
      "episodes": [
        {
          "episodeId": "episode:sh-ep01",
          "urlSegment": "episode-1",
          "displayName": "Episode 1: The Curse of the Baskervilles",
          "description": "The sitting room at 221B, a morning in 1889: Watson with the visitor's stick, Holmes at breakfast, then Dr Mortimer with the legend and the death.",
          "notes": "Episode brief: docs/sherlock/episodes/01-the-curse-of-the-baskervilles.md. A morning and an evening compressed into one morning in one room, a stated liberty.",
          "unlockCondition": "always",
          "transitionConfig": null,
          "menu": {
            "title": {
              "kind": "image",
              "textureDefinitionId": "minis:texture:title-sherlock-holmes",
              "alt": "Sherlock Holmes"
            },
            "backdrop": {
              "bookTextureDefinitionId": "minis:texture:menu-book",
              "glowTextureDefinitionId": "minis:texture:menu-glow"
            },
            "hero": {
              "targetX": -0.225,
              "targetY": 0.6,
              "targetZ": -0.125,
              "yaw": 3.9269908169872414,
              "pitch": 56,
              "distance": 25
            }
          },
          "thumbnailTextureDefinitionId": null,
          "endForm": "card",
          "farewell": "La visita terminó — Holmes sends you out for a pound of the strongest shag at Bradley's, and asks for silence until evening. Thank you for visiting Baker Street!",
          "scenes": [
            {
              "sceneId": "scene:sh-ep01:sitting-room",
              "displayName": "221B Baker Street, sitting room",
              "description": "The look-and-tell quest of the sitting room (quest:sh-ep01:beats) and free talk with Holmes and Mortimer.",
              "notes": "Never leaves the room; Sir Henry belongs to episode 2.",
              "worldId": "world:sh-ep01-221b",
              "start": {
                "regionId": "sh-ep01-221b",
                "markerId": null
              },
              "anchors": [],
              "travelBound": [
                "sh-ep01-221b"
              ],
              "overlays": {
                "sh-ep01-221b": {
                  "itemPresences": [],
                  "npcPresences": [],
                  "playerPresence": null,
                  "placedAssets": [],
                  "placedLights": [],
                  "folders": [],
                  "suppressedRegionIds": [],
                  "assetAppearanceOverrides": {}
                }
              },
              "questDefinitions": [
                {
                  "definitionId": "quest:sh-ep01:beats",
                  "displayName": "Episode 1: The Curse of the Baskervilles",
                  "description": "Watson looks and tells: he examines the stick, the manuscript and the newspaper and reports each to Holmes; Mortimer comes to the door and tells the legend and the death; at the window Holmes invites Watson to meet Sir Henry at Waterloo.",
                  "startStageId": "stage:sh-ep01:sitting-room",
                  "stageDefinitions": [
                    {
                      "stageId": "stage:sh-ep01:sitting-room",
                      "displayName": "The sitting room",
                      "nextStageId": null,
                      "timeOfDay": null,
                      "nodeDefinitions": [
                        {
                          "nodeId": "node:sh-ep01:arrive-stick",
                          "displayName": "Stand on the hearth rug",
                          "description": "The player walks into area:beat-stick.",
                          "nodeBehavior": "objective",
                          "objectiveSubtype": "location",
                          "targetAreaId": "area:beat-stick",
                          "count": 1,
                          "optional": false,
                          "autoStart": false,
                          "prerequisiteNodeIds": [],
                          "failTargetNodeIds": [],
                          "onEnterActions": [],
                          "onCompleteActions": [],
                          "showInHud": false,
                          "countsTowardProgress": false,
                          "autoLaunch": false,
                          "graphPosition": {
                            "x": 80,
                            "y": 80
                          }
                        },
                        {
                          "nodeId": "node:sh-ep01:play-open",
                          "displayName": "Play: The morning",
                          "description": "Starts dialogue dlg:sh-ep01:open.",
                          "nodeBehavior": "narrative",
                          "narrativeSubtype": "dialogue",
                          "count": 1,
                          "optional": false,
                          "dialogueDefinitionId": "dlg:sh-ep01:open",
                          "autoStart": false,
                          "prerequisiteNodeIds": [
                            "node:sh-ep01:arrive-stick"
                          ],
                          "failTargetNodeIds": [],
                          "onEnterActions": [],
                          "onCompleteActions": [],
                          "showInHud": false,
                          "countsTowardProgress": false,
                          "autoLaunch": false,
                          "graphPosition": {
                            "x": 380,
                            "y": 80
                          }
                        },
                        {
                          "nodeId": "node:sh-ep01:look-stick",
                          "displayName": "Examine the stick",
                          "description": "Completes when the player opens inspectable:sh-ep01:stick.",
                          "nodeBehavior": "objective",
                          "objectiveSubtype": "inspect",
                          "targetId": "inspectable:sh-ep01:stick",
                          "count": 1,
                          "optional": false,
                          "autoStart": false,
                          "prerequisiteNodeIds": [
                            "node:sh-ep01:play-open"
                          ],
                          "failTargetNodeIds": [],
                          "onEnterActions": [],
                          "onCompleteActions": [],
                          "showInHud": true,
                          "countsTowardProgress": false,
                          "autoLaunch": false,
                          "graphPosition": {
                            "x": 80,
                            "y": 200
                          }
                        },
                        {
                          "nodeId": "node:sh-ep01:tell-holmes-stick",
                          "displayName": "Tell Holmes what you make of the stick",
                          "description": "Completes when the player opens a conversation with them.",
                          "nodeBehavior": "objective",
                          "objectiveSubtype": "talk",
                          "targetId": "minis:npc:holmes",
                          "count": 1,
                          "optional": false,
                          "dialogueDefinitionId": "node:sh-ep01:tell-holmes-stick:dialogue",
                          "completeOn": "dialogueEnd",
                          "autoStart": false,
                          "prerequisiteNodeIds": [
                            "node:sh-ep01:look-stick"
                          ],
                          "failTargetNodeIds": [],
                          "onEnterActions": [],
                          "onCompleteActions": [
                            {
                              "type": "playCue",
                              "cueDefinitionId": "minis:sound-cue:knock-221b"
                            }
                          ],
                          "showInHud": true,
                          "countsTowardProgress": true,
                          "autoLaunch": false,
                          "graphPosition": {
                            "x": 380,
                            "y": 200
                          }
                        },
                        {
                          "nodeId": "node:sh-ep01:arrive-door",
                          "displayName": "Answer the door",
                          "description": "The player walks into area:beat-door.",
                          "nodeBehavior": "objective",
                          "objectiveSubtype": "location",
                          "targetAreaId": "area:beat-door",
                          "count": 1,
                          "optional": false,
                          "autoStart": false,
                          "prerequisiteNodeIds": [
                            "node:sh-ep01:tell-holmes-stick"
                          ],
                          "failTargetNodeIds": [],
                          "onEnterActions": [],
                          "onCompleteActions": [],
                          "showInHud": true,
                          "countsTowardProgress": false,
                          "autoLaunch": false,
                          "graphPosition": {
                            "x": 80,
                            "y": 320
                          }
                        },
                        {
                          "nodeId": "node:sh-ep01:talk-mortimer",
                          "displayName": "Talk to Mortimer",
                          "description": "Completes when the player opens a conversation with them.",
                          "nodeBehavior": "objective",
                          "objectiveSubtype": "talk",
                          "targetId": "minis:npc:mortimer",
                          "count": 1,
                          "optional": false,
                          "dialogueDefinitionId": "node:sh-ep01:talk-mortimer:dialogue",
                          "completeOn": "dialogueEnd",
                          "autoStart": false,
                          "prerequisiteNodeIds": [
                            "node:sh-ep01:arrive-door"
                          ],
                          "failTargetNodeIds": [],
                          "onEnterActions": [],
                          "onCompleteActions": [],
                          "showInHud": true,
                          "countsTowardProgress": false,
                          "autoLaunch": false,
                          "graphPosition": {
                            "x": 380,
                            "y": 320
                          }
                        },
                        {
                          "nodeId": "node:sh-ep01:play-legend",
                          "displayName": "Play: The legend",
                          "description": "Starts dialogue dlg:sh-ep01:legend.",
                          "nodeBehavior": "narrative",
                          "narrativeSubtype": "dialogue",
                          "count": 1,
                          "optional": false,
                          "dialogueDefinitionId": "dlg:sh-ep01:legend",
                          "autoStart": false,
                          "prerequisiteNodeIds": [
                            "node:sh-ep01:talk-mortimer"
                          ],
                          "failTargetNodeIds": [],
                          "onEnterActions": [],
                          "onCompleteActions": [],
                          "showInHud": false,
                          "countsTowardProgress": false,
                          "autoLaunch": false,
                          "graphPosition": {
                            "x": 80,
                            "y": 440
                          }
                        },
                        {
                          "nodeId": "node:sh-ep01:play-death",
                          "displayName": "Play: The death",
                          "description": "Starts dialogue dlg:sh-ep01:death.",
                          "nodeBehavior": "narrative",
                          "narrativeSubtype": "dialogue",
                          "count": 1,
                          "optional": false,
                          "dialogueDefinitionId": "dlg:sh-ep01:death",
                          "autoStart": false,
                          "prerequisiteNodeIds": [
                            "node:sh-ep01:play-legend"
                          ],
                          "failTargetNodeIds": [],
                          "onEnterActions": [],
                          "onCompleteActions": [],
                          "showInHud": false,
                          "countsTowardProgress": false,
                          "autoLaunch": false,
                          "graphPosition": {
                            "x": 380,
                            "y": 440
                          }
                        },
                        {
                          "nodeId": "node:sh-ep01:look-manuscript",
                          "displayName": "Examine the manuscript",
                          "description": "Completes when the player opens inspectable:sh-ep01:manuscript.",
                          "nodeBehavior": "objective",
                          "objectiveSubtype": "inspect",
                          "targetId": "inspectable:sh-ep01:manuscript",
                          "count": 1,
                          "optional": false,
                          "autoStart": false,
                          "prerequisiteNodeIds": [
                            "node:sh-ep01:play-death"
                          ],
                          "failTargetNodeIds": [],
                          "onEnterActions": [],
                          "onCompleteActions": [],
                          "showInHud": true,
                          "countsTowardProgress": false,
                          "autoLaunch": false,
                          "graphPosition": {
                            "x": 80,
                            "y": 560
                          }
                        },
                        {
                          "nodeId": "node:sh-ep01:tell-holmes-manuscript",
                          "displayName": "Tell Holmes about the manuscript",
                          "description": "Completes when the player opens a conversation with them.",
                          "nodeBehavior": "objective",
                          "objectiveSubtype": "talk",
                          "targetId": "minis:npc:holmes",
                          "count": 1,
                          "optional": false,
                          "dialogueDefinitionId": "node:sh-ep01:tell-holmes-manuscript:dialogue",
                          "completeOn": "dialogueEnd",
                          "autoStart": false,
                          "prerequisiteNodeIds": [
                            "node:sh-ep01:look-manuscript"
                          ],
                          "failTargetNodeIds": [],
                          "onEnterActions": [],
                          "onCompleteActions": [],
                          "showInHud": true,
                          "countsTowardProgress": true,
                          "autoLaunch": false,
                          "graphPosition": {
                            "x": 380,
                            "y": 560
                          }
                        },
                        {
                          "nodeId": "node:sh-ep01:look-newspaper",
                          "displayName": "Examine the newspaper",
                          "description": "Completes when the player opens inspectable:sh-ep01:newspaper.",
                          "nodeBehavior": "objective",
                          "objectiveSubtype": "inspect",
                          "targetId": "inspectable:sh-ep01:newspaper",
                          "count": 1,
                          "optional": false,
                          "autoStart": false,
                          "prerequisiteNodeIds": [
                            "node:sh-ep01:tell-holmes-manuscript"
                          ],
                          "failTargetNodeIds": [],
                          "onEnterActions": [],
                          "onCompleteActions": [],
                          "showInHud": true,
                          "countsTowardProgress": false,
                          "autoLaunch": false,
                          "graphPosition": {
                            "x": 80,
                            "y": 680
                          }
                        },
                        {
                          "nodeId": "node:sh-ep01:tell-holmes-newspaper",
                          "displayName": "Tell Holmes about the newspaper",
                          "description": "Completes when the player opens a conversation with them.",
                          "nodeBehavior": "objective",
                          "objectiveSubtype": "talk",
                          "targetId": "minis:npc:holmes",
                          "count": 1,
                          "optional": false,
                          "dialogueDefinitionId": "node:sh-ep01:tell-holmes-newspaper:dialogue",
                          "completeOn": "dialogueEnd",
                          "autoStart": false,
                          "prerequisiteNodeIds": [
                            "node:sh-ep01:look-newspaper"
                          ],
                          "failTargetNodeIds": [],
                          "onEnterActions": [],
                          "onCompleteActions": [],
                          "showInHud": true,
                          "countsTowardProgress": true,
                          "autoLaunch": false,
                          "graphPosition": {
                            "x": 380,
                            "y": 680
                          }
                        },
                        {
                          "nodeId": "node:sh-ep01:arrive-window",
                          "displayName": "Look out of the window",
                          "description": "The player walks into area:beat-window-221b.",
                          "nodeBehavior": "objective",
                          "objectiveSubtype": "location",
                          "targetAreaId": "area:beat-window-221b",
                          "count": 1,
                          "optional": false,
                          "autoStart": false,
                          "prerequisiteNodeIds": [
                            "node:sh-ep01:tell-holmes-newspaper"
                          ],
                          "failTargetNodeIds": [],
                          "onEnterActions": [],
                          "onCompleteActions": [],
                          "showInHud": true,
                          "countsTowardProgress": false,
                          "autoLaunch": false,
                          "graphPosition": {
                            "x": 80,
                            "y": 800
                          }
                        },
                        {
                          "nodeId": "node:sh-ep01:invite-watson",
                          "displayName": "Answer Holmes",
                          "description": "Completes when the player opens a conversation with them.",
                          "nodeBehavior": "objective",
                          "objectiveSubtype": "talk",
                          "targetId": "minis:npc:holmes",
                          "count": 1,
                          "optional": false,
                          "dialogueDefinitionId": "node:sh-ep01:invite-watson:dialogue",
                          "completeOn": "dialogueEnd",
                          "autoStart": false,
                          "prerequisiteNodeIds": [
                            "node:sh-ep01:arrive-window"
                          ],
                          "failTargetNodeIds": [],
                          "onEnterActions": [],
                          "onCompleteActions": [],
                          "showInHud": true,
                          "countsTowardProgress": false,
                          "autoLaunch": false,
                          "graphPosition": {
                            "x": 380,
                            "y": 800
                          }
                        },
                        {
                          "nodeId": "node:sh-ep01:play-close",
                          "displayName": "Play: The close",
                          "description": "Starts dialogue dlg:sh-ep01:close.",
                          "nodeBehavior": "narrative",
                          "narrativeSubtype": "dialogue",
                          "count": 1,
                          "optional": false,
                          "dialogueDefinitionId": "dlg:sh-ep01:close",
                          "autoStart": false,
                          "prerequisiteNodeIds": [
                            "node:sh-ep01:invite-watson"
                          ],
                          "failTargetNodeIds": [],
                          "onEnterActions": [],
                          "onCompleteActions": [],
                          "showInHud": false,
                          "countsTowardProgress": false,
                          "autoLaunch": false,
                          "graphPosition": {
                            "x": 80,
                            "y": 920
                          }
                        }
                      ],
                      "groups": [],
                      "entryNodeIds": [
                        "node:sh-ep01:arrive-stick"
                      ]
                    }
                  ],
                  "rewardDefinitions": [],
                  "progressDisplay": {
                    "style": "icons",
                    "icon": "magnifying-glass"
                  }
                }
              ],
              "environmentOverride": null,
              "audioOverride": null,
              "callouts": [
                {
                  "calloutId": "knock",
                  "anchor": {
                    "x": -1.945,
                    "y": 1.45,
                    "z": 2.4
                  },
                  "text": "knock knock",
                  "visibleWhen": {
                    "questDefinitionId": "quest:sh-ep01:beats",
                    "questStageId": "stage:sh-ep01:sitting-room",
                    "questNodeId": "node:sh-ep01:arrive-door",
                    "storyPointSide": "while",
                    "worldFlagEquals": null
                  }
                },
                {
                  "calloutId": "wheels",
                  "anchor": {
                    "x": 2.35,
                    "y": 1.45,
                    "z": 0.4
                  },
                  "text": "wheels on cobbles",
                  "visibleWhen": {
                    "questDefinitionId": "quest:sh-ep01:beats",
                    "questStageId": "stage:sh-ep01:sitting-room",
                    "questNodeId": "node:sh-ep01:arrive-window",
                    "storyPointSide": "while",
                    "worldFlagEquals": null
                  }
                }
              ],
              "transitionConfig": null
            }
          ]
        }
      ],
      "playerDefinitionId": "minis:player:season:sherlock",
      "crossPromotion": {
        "cliffhanger": "Holmes has only just picked up the stick.",
        "line": "Dracula — coming in October.",
        "headline": "Dracula is coming in October",
        "body": "A castle, a guest who should have turned back, and a host who speaks beautifully.",
        "button": {
          "id": "cross-promo-dracula",
          "label": "See Dracula →",
          "href": "https://www.playablelanguage.com/playables"
        }
      }
    }
  ],
  "episodeEndRouting": "next-episode",
  "activeRegionId": "sh-ep01-221b",
  "activeEnvironmentId": null,
  "contentLibrary": {
    "identity": {
      "id": "minis:content-library",
      "schema": "ContentLibrary",
      "version": 6
    },
    "assetDefinitions": [
      {
        "definitionId": "minis:asset:fv-arm-chair-01",
        "definitionKind": "asset",
        "displayName": "fv-arm-chair-01",
        "assetKind": "model",
        "surfaceSlots": [],
        "deform": null,
        "effect": null,
        "source": {
          "relativeAssetPath": "assets/polygon/fv-arm-chair-01.glb",
          "fileName": "fv-arm-chair-01.glb",
          "mimeType": null
        },
        "collider": {
          "shape": "auto-box",
          "localBounds": {
            "min": [
              -0.5955480337142944,
              -1.0235207348330277E-8,
              -0.5368994474411011
            ],
            "max": [
              0.5955480337142944,
              1.0768077373504639,
              0.5368993282318115
            ]
          }
        }
      },
      {
        "definitionId": "minis:asset:town-dining-chair-01",
        "definitionKind": "asset",
        "displayName": "town-dining-chair-01",
        "assetKind": "model",
        "surfaceSlots": [],
        "deform": null,
        "effect": null,
        "source": {
          "relativeAssetPath": "assets/polygon/town-dining-chair-01.glb",
          "fileName": "town-dining-chair-01.glb",
          "mimeType": null
        },
        "collider": {
          "shape": "auto-box",
          "localBounds": {
            "min": [
              -0.2768121361732483,
              1.7343872116271086E-8,
              -0.3301050662994385
            ],
            "max": [
              0.2768109142780304,
              1.134307861328125,
              0.31740474700927734
            ]
          }
        }
      },
      {
        "definitionId": "minis:asset:side-table-round",
        "definitionKind": "asset",
        "displayName": "side-table-round",
        "assetKind": "model",
        "surfaceSlots": [],
        "deform": null,
        "effect": null,
        "source": {
          "relativeAssetPath": "assets/blockout/side-table-round.glb",
          "fileName": "side-table-round.glb",
          "mimeType": null
        },
        "collider": {
          "shape": "auto-box",
          "localBounds": {
            "min": [
              -0.28,
              0,
              -0.26629582456264306
            ],
            "max": [
              0.28,
              0.6,
              0.26629582456264306
            ]
          }
        }
      },
      {
        "definitionId": "minis:asset:picture-frame",
        "definitionKind": "asset",
        "displayName": "picture-frame",
        "assetKind": "model",
        "surfaceSlots": [],
        "deform": null,
        "effect": null,
        "source": {
          "relativeAssetPath": "assets/blockout/picture-frame.glb",
          "fileName": "picture-frame.glb",
          "mimeType": null
        },
        "collider": {
          "shape": "none",
          "localBounds": null
        }
      },
      {
        "definitionId": "minis:asset:wall-windowed-olive",
        "definitionKind": "asset",
        "displayName": "wall-windowed-olive",
        "assetKind": "model",
        "surfaceSlots": [],
        "deform": null,
        "effect": null,
        "source": {
          "relativeAssetPath": "assets/blockout/wall-windowed-olive.glb",
          "fileName": "wall-windowed-olive.glb",
          "mimeType": null
        },
        "collider": {
          "shape": "auto-box",
          "localBounds": {
            "min": [
              -2.45,
              0,
              -0.07
            ],
            "max": [
              2.45,
              2.1,
              0.18
            ]
          }
        }
      },
      {
        "definitionId": "minis:asset:wall-door-221b",
        "definitionKind": "asset",
        "displayName": "wall-door-221b",
        "assetKind": "model",
        "surfaceSlots": [],
        "deform": null,
        "effect": null,
        "source": {
          "relativeAssetPath": "assets/blockout/wall-door-221b.glb",
          "fileName": "wall-door-221b.glb",
          "mimeType": null
        },
        "collider": {
          "shape": "auto-box",
          "localBounds": {
            "min": [
              -3,
              0,
              -0.06
            ],
            "max": [
              3,
              2.1,
              0.18
            ]
          }
        }
      },
      {
        "definitionId": "minis:asset:curtain-pair-red",
        "definitionKind": "asset",
        "displayName": "curtain-pair-red",
        "assetKind": "model",
        "surfaceSlots": [],
        "deform": null,
        "effect": null,
        "source": {
          "relativeAssetPath": "assets/blockout/curtain-pair-red.glb",
          "fileName": "curtain-pair-red.glb",
          "mimeType": null
        },
        "collider": {
          "shape": "auto-box",
          "localBounds": {
            "min": [
              -1.06,
              0.3999999999999999,
              -0.19
            ],
            "max": [
              1.06,
              2.02,
              -0.04000000000000001
            ]
          }
        }
      },
      {
        "definitionId": "minis:asset:framed-map",
        "definitionKind": "asset",
        "displayName": "framed-map",
        "assetKind": "model",
        "surfaceSlots": [],
        "deform": null,
        "effect": null,
        "source": {
          "relativeAssetPath": "assets/blockout/framed-map.glb",
          "fileName": "framed-map.glb",
          "mimeType": null
        },
        "collider": {
          "shape": "auto-box",
          "localBounds": {
            "min": [
              -0.7,
              -0.45,
              -0.068
            ],
            "max": [
              0.7,
              0.45,
              0
            ]
          }
        }
      },
      {
        "definitionId": "minis:asset:rug-rect-red",
        "definitionKind": "asset",
        "displayName": "rug-rect-red",
        "assetKind": "model",
        "surfaceSlots": [],
        "deform": null,
        "effect": null,
        "source": {
          "relativeAssetPath": "assets/blockout/rug-rect-red.glb",
          "fileName": "rug-rect-red.glb",
          "mimeType": null
        },
        "collider": {
          "shape": "none",
          "localBounds": null
        }
      },
      {
        "definitionId": "minis:asset:hearth-rug",
        "definitionKind": "asset",
        "displayName": "hearth-rug",
        "assetKind": "model",
        "surfaceSlots": [],
        "deform": null,
        "effect": null,
        "source": {
          "relativeAssetPath": "assets/blockout/hearth-rug.glb",
          "fileName": "hearth-rug.glb",
          "mimeType": null
        },
        "collider": {
          "shape": "none",
          "localBounds": null
        }
      },
      {
        "definitionId": "minis:asset:walking-stick",
        "definitionKind": "asset",
        "displayName": "walking-stick",
        "assetKind": "model",
        "surfaceSlots": [],
        "deform": null,
        "effect": null,
        "source": {
          "relativeAssetPath": "assets/blockout/walking-stick.glb",
          "fileName": "walking-stick.glb",
          "mimeType": null
        },
        "collider": {
          "shape": "none",
          "localBounds": null
        }
      },
      {
        "definitionId": "minis:asset:tea-things-221b",
        "definitionKind": "asset",
        "displayName": "tea-things-221b",
        "assetKind": "model",
        "surfaceSlots": [],
        "deform": null,
        "effect": null,
        "source": {
          "relativeAssetPath": "assets/blockout/tea-things-221b.glb",
          "fileName": "tea-things-221b.glb",
          "mimeType": null
        },
        "collider": {
          "shape": "auto-box",
          "localBounds": {
            "min": [
              -0.405,
              0,
              -0.28
            ],
            "max": [
              0.22999999999999998,
              0.15,
              0.35
            ]
          }
        }
      },
      {
        "definitionId": "minis:asset:manuscript-baskerville",
        "definitionKind": "asset",
        "displayName": "manuscript-baskerville",
        "assetKind": "model",
        "surfaceSlots": [],
        "deform": null,
        "effect": null,
        "source": {
          "relativeAssetPath": "assets/blockout/manuscript-baskerville.glb",
          "fileName": "manuscript-baskerville.glb",
          "mimeType": null
        },
        "collider": {
          "shape": "none",
          "localBounds": null
        }
      },
      {
        "definitionId": "minis:asset:breakfast-table",
        "definitionKind": "asset",
        "displayName": "breakfast-table",
        "assetKind": "model",
        "surfaceSlots": [],
        "deform": null,
        "effect": null,
        "source": {
          "relativeAssetPath": "assets/blockout/breakfast-table.glb",
          "fileName": "breakfast-table.glb",
          "mimeType": null
        },
        "collider": {
          "shape": "auto-box",
          "localBounds": {
            "min": [
              -0.4,
              0,
              -0.4
            ],
            "max": [
              0.4,
              0.89,
              0.4
            ]
          }
        }
      },
      {
        "definitionId": "minis:asset:writing-desk-221b",
        "definitionKind": "asset",
        "displayName": "writing-desk-221b",
        "assetKind": "model",
        "surfaceSlots": [],
        "deform": null,
        "effect": null,
        "source": {
          "relativeAssetPath": "assets/blockout/writing-desk-221b.glb",
          "fileName": "writing-desk-221b.glb",
          "mimeType": null
        },
        "collider": {
          "shape": "auto-box",
          "localBounds": {
            "min": [
              -0.7,
              0,
              -0.3
            ],
            "max": [
              0.7,
              0.83,
              0.3
            ]
          }
        }
      },
      {
        "definitionId": "minis:asset:desk-lamp-green",
        "definitionKind": "asset",
        "displayName": "desk-lamp-green",
        "assetKind": "model",
        "surfaceSlots": [],
        "deform": null,
        "effect": null,
        "source": {
          "relativeAssetPath": "assets/blockout/desk-lamp-green.glb",
          "fileName": "desk-lamp-green.glb",
          "mimeType": null
        },
        "collider": {
          "shape": "auto-box",
          "localBounds": {
            "min": [
              -0.07,
              0,
              -0.15216904260722458
            ],
            "max": [
              0.26,
              0.36,
              0.15216904260722458
            ]
          }
        }
      },
      {
        "definitionId": "minis:asset:bookcase-ivy",
        "definitionKind": "asset",
        "displayName": "bookcase-ivy",
        "assetKind": "model",
        "surfaceSlots": [],
        "deform": null,
        "effect": null,
        "source": {
          "relativeAssetPath": "assets/blockout/bookcase-ivy.glb",
          "fileName": "bookcase-ivy.glb",
          "mimeType": null
        },
        "collider": {
          "shape": "auto-box",
          "localBounds": {
            "min": [
              -0.4,
              0,
              -0.375
            ],
            "max": [
              0.51,
              2.05,
              0.03498558243636474
            ]
          }
        }
      },
      {
        "definitionId": "minis:asset:coat-stand",
        "definitionKind": "asset",
        "displayName": "coat-stand",
        "assetKind": "model",
        "surfaceSlots": [],
        "deform": null,
        "effect": null,
        "source": {
          "relativeAssetPath": "assets/blockout/coat-stand.glb",
          "fileName": "coat-stand.glb",
          "mimeType": null
        },
        "collider": {
          "shape": "auto-box",
          "localBounds": {
            "min": [
              -0.32,
              0,
              -0.42000000000000004
            ],
            "max": [
              0.44999999999999996,
              1.8,
              0.33
            ]
          }
        }
      },
      {
        "definitionId": "minis:asset:umbrella-stand",
        "definitionKind": "asset",
        "displayName": "umbrella-stand",
        "assetKind": "model",
        "surfaceSlots": [],
        "deform": null,
        "effect": null,
        "source": {
          "relativeAssetPath": "assets/blockout/umbrella-stand.glb",
          "fileName": "umbrella-stand.glb",
          "mimeType": null
        },
        "collider": {
          "shape": "auto-box",
          "localBounds": {
            "min": [
              -0.14,
              0,
              -0.125
            ],
            "max": [
              0.15500000000000003,
              1.0199999999999998,
              0.125
            ]
          }
        }
      },
      {
        "definitionId": "minis:asset:violin-leaning",
        "definitionKind": "asset",
        "displayName": "violin-leaning",
        "assetKind": "model",
        "surfaceSlots": [],
        "deform": null,
        "effect": null,
        "source": {
          "relativeAssetPath": "assets/blockout/violin-leaning.glb",
          "fileName": "violin-leaning.glb",
          "mimeType": null
        },
        "collider": {
          "shape": "auto-box",
          "localBounds": {
            "min": [
              -0.195,
              0,
              -0.285141
            ],
            "max": [
              0.195,
              1.0074,
              0.020755999999999997
            ]
          }
        }
      },
      {
        "definitionId": "minis:asset:mantel-clock",
        "definitionKind": "asset",
        "displayName": "mantel-clock",
        "assetKind": "model",
        "surfaceSlots": [],
        "deform": null,
        "effect": null,
        "source": {
          "relativeAssetPath": "assets/blockout/mantel-clock.glb",
          "fileName": "mantel-clock.glb",
          "mimeType": null
        },
        "collider": {
          "shape": "auto-box",
          "localBounds": {
            "min": [
              -0.15,
              0,
              -0.27
            ],
            "max": [
              0.15,
              0.4775,
              -0.11
            ]
          }
        }
      },
      {
        "definitionId": "minis:asset:mantel-bust",
        "definitionKind": "asset",
        "displayName": "mantel-bust",
        "assetKind": "model",
        "surfaceSlots": [],
        "deform": null,
        "effect": null,
        "source": {
          "relativeAssetPath": "assets/blockout/mantel-bust.glb",
          "fileName": "mantel-bust.glb",
          "mimeType": null
        },
        "collider": {
          "shape": "auto-box",
          "localBounds": {
            "min": [
              -0.15,
              0,
              -0.105
            ],
            "max": [
              0.15,
              0.44000000000000006,
              0.08
            ]
          }
        }
      },
      {
        "definitionId": "minis:asset:tartan-throw",
        "definitionKind": "asset",
        "displayName": "tartan-throw",
        "assetKind": "model",
        "surfaceSlots": [],
        "deform": null,
        "effect": null,
        "source": {
          "relativeAssetPath": "assets/blockout/tartan-throw.glb",
          "fileName": "tartan-throw.glb",
          "mimeType": null
        },
        "collider": {
          "shape": "none",
          "localBounds": null
        }
      },
      {
        "definitionId": "minis:asset:floor-planks-oak",
        "definitionKind": "asset",
        "displayName": "floor-planks-oak",
        "assetKind": "model",
        "surfaceSlots": [],
        "deform": null,
        "effect": null,
        "source": {
          "relativeAssetPath": "assets/blockout/floor-planks-oak.glb",
          "fileName": "floor-planks-oak.glb",
          "mimeType": null
        },
        "collider": {
          "shape": "none",
          "localBounds": null
        }
      },
      {
        "definitionId": "minis:asset:book-stack",
        "definitionKind": "asset",
        "displayName": "book-stack",
        "assetKind": "model",
        "surfaceSlots": [],
        "deform": null,
        "effect": null,
        "source": {
          "relativeAssetPath": "assets/blockout/book-stack.glb",
          "fileName": "book-stack.glb",
          "mimeType": null
        },
        "collider": {
          "shape": "auto-box",
          "localBounds": {
            "min": [
              -0.15,
              0,
              -0.15
            ],
            "max": [
              0.15,
              0.42500000000000004,
              0.15
            ]
          }
        }
      },
      {
        "definitionId": "minis:asset:town-couch-03",
        "definitionKind": "asset",
        "displayName": "town-couch-03",
        "assetKind": "model",
        "surfaceSlots": [],
        "deform": null,
        "effect": null,
        "source": {
          "relativeAssetPath": "assets/polygon/town-couch-03.glb",
          "fileName": "town-couch-03.glb",
          "mimeType": null
        },
        "collider": {
          "shape": "auto-box",
          "localBounds": {
            "min": [
              -0.5058753490447998,
              -1.7145044495237016E-8,
              -0.43813320994377136
            ],
            "max": [
              0.5058753490447998,
              1.1282323598861694,
              0.4381331205368042
            ]
          }
        }
      },
      {
        "definitionId": "minis:asset:town-fireplace-01",
        "definitionKind": "asset",
        "displayName": "town-fireplace-01",
        "assetKind": "model",
        "surfaceSlots": [],
        "deform": null,
        "effect": null,
        "source": {
          "relativeAssetPath": "assets/polygon/town-fireplace-01.glb",
          "fileName": "town-fireplace-01.glb",
          "mimeType": null
        },
        "collider": {
          "shape": "auto-box",
          "localBounds": {
            "min": [
              -0.8525238037109375,
              2.875938376334375E-9,
              -0.051622409373521805
            ],
            "max": [
              0.8525243997573853,
              1.2994866371154785,
              0.6168394684791565
            ]
          }
        }
      },
      {
        "definitionId": "minis:asset:town-book-group-02",
        "definitionKind": "asset",
        "displayName": "town-book-group-02",
        "assetKind": "model",
        "surfaceSlots": [],
        "deform": null,
        "effect": null,
        "source": {
          "relativeAssetPath": "assets/polygon/town-book-group-02.glb",
          "fileName": "town-book-group-02.glb",
          "mimeType": null
        },
        "collider": {
          "shape": "auto-box",
          "localBounds": {
            "min": [
              -0.14923827350139618,
              -1.1579139425066387E-8,
              -0.15337038040161133
            ],
            "max": [
              0.14923827350139618,
              0.3509295582771301,
              0.15337035059928894
            ]
          }
        }
      },
      {
        "definitionId": "minis:asset:town-book-group-04",
        "definitionKind": "asset",
        "displayName": "town-book-group-04",
        "assetKind": "model",
        "surfaceSlots": [],
        "deform": null,
        "effect": null,
        "source": {
          "relativeAssetPath": "assets/polygon/town-book-group-04.glb",
          "fileName": "town-book-group-04.glb",
          "mimeType": null
        },
        "collider": {
          "shape": "auto-box",
          "localBounds": {
            "min": [
              -0.1613513082265854,
              -1.1199253968641187E-8,
              -0.15479493141174316
            ],
            "max": [
              0.1613513082265854,
              0.12999391555786133,
              0.15479491651058197
            ]
          }
        }
      },
      {
        "definitionId": "minis:asset:town-book-group-05",
        "definitionKind": "asset",
        "displayName": "town-book-group-05",
        "assetKind": "model",
        "surfaceSlots": [],
        "deform": null,
        "effect": null,
        "source": {
          "relativeAssetPath": "assets/polygon/town-book-group-05.glb",
          "fileName": "town-book-group-05.glb",
          "mimeType": null
        },
        "collider": {
          "shape": "auto-box",
          "localBounds": {
            "min": [
              -0.18452270328998566,
              -1.2495676493529118E-8,
              -0.17576539516448975
            ],
            "max": [
              0.18452270328998566,
              0.22676149010658264,
              0.17576538026332855
            ]
          }
        }
      },
      {
        "definitionId": "minis:asset:town-pot-plant-03",
        "definitionKind": "asset",
        "displayName": "town-pot-plant-03",
        "assetKind": "model",
        "surfaceSlots": [],
        "deform": null,
        "effect": null,
        "source": {
          "relativeAssetPath": "assets/polygon/town-pot-plant-03.glb",
          "fileName": "town-pot-plant-03.glb",
          "mimeType": null
        },
        "collider": {
          "shape": "auto-box",
          "localBounds": {
            "min": [
              -0.23005370795726776,
              -3.854244923218175E-9,
              -0.23485597968101501
            ],
            "max": [
              0.2300530970096588,
              0.6981045603752136,
              0.23485590517520905
            ]
          }
        }
      },
      {
        "definitionId": "minis:asset:town-pot-plant-04",
        "definitionKind": "asset",
        "displayName": "town-pot-plant-04",
        "assetKind": "model",
        "surfaceSlots": [],
        "deform": null,
        "effect": null,
        "source": {
          "relativeAssetPath": "assets/polygon/town-pot-plant-04.glb",
          "fileName": "town-pot-plant-04.glb",
          "mimeType": null
        },
        "collider": {
          "shape": "auto-box",
          "localBounds": {
            "min": [
              -0.1442718505859375,
              -6.7753647137180906E-9,
              -0.16950441896915436
            ],
            "max": [
              0.14103515446186066,
              0.6572589874267578,
              0.16304560005664825
            ]
          }
        }
      },
      {
        "definitionId": "minis:asset:town-pot-plant-05",
        "definitionKind": "asset",
        "displayName": "town-pot-plant-05",
        "assetKind": "model",
        "surfaceSlots": [],
        "deform": null,
        "effect": null,
        "source": {
          "relativeAssetPath": "assets/polygon/town-pot-plant-05.glb",
          "fileName": "town-pot-plant-05.glb",
          "mimeType": null
        },
        "collider": {
          "shape": "auto-box",
          "localBounds": {
            "min": [
              -0.17989684641361237,
              -5.802334168691914E-9,
              -0.15805788338184357
            ],
            "max": [
              0.2523852586746216,
              0.5431699752807617,
              0.18262265622615814
            ]
          }
        }
      },
      {
        "definitionId": "minis:asset:prop-newspaper-open",
        "definitionKind": "asset",
        "displayName": "prop-newspaper-open",
        "assetKind": "model",
        "surfaceSlots": [],
        "deform": null,
        "effect": null,
        "source": {
          "relativeAssetPath": "assets/blockout/prop-newspaper-open.glb",
          "fileName": "prop-newspaper-open.glb",
          "mimeType": null
        },
        "collider": {
          "shape": "none",
          "localBounds": null
        }
      },
      {
        "definitionId": "minis:asset:fv-table-04",
        "definitionKind": "asset",
        "assetKind": "model",
        "source": {
          "relativeAssetPath": "assets/polygon/fv-table-04.glb",
          "fileName": "fv-table-04.glb",
          "mimeType": null
        },
        "displayName": "fv-table-04",
        "surfaceSlots": [],
        "deform": null,
        "effect": null,
        "collider": {
          "shape": "auto-box",
          "localBounds": {
            "min": [
              -0.5758387446403503,
              -2.8027937304386796E-8,
              -0.5758388042449951
            ],
            "max": [
              0.5758387446403503,
              0.48222970962524414,
              0.5758386850357056
            ]
          }
        }
      },
      {
        "definitionId": "minis:asset:candlestick-01",
        "definitionKind": "asset",
        "assetKind": "model",
        "source": {
          "relativeAssetPath": "assets/assethub/candlestick-01.glb",
          "fileName": "candlestick-01.glb",
          "mimeType": null
        },
        "displayName": "candlestick-01",
        "surfaceSlots": [],
        "deform": null,
        "effect": null,
        "collider": {
          "shape": "auto-box",
          "localBounds": {
            "min": [
              -0.03999999910593033,
              0,
              -0.034641019999980927
            ],
            "max": [
              0.03999999910593033,
              0.4099999964237213,
              0.03464101627469063
            ]
          }
        }
      },
      {
        "definitionId": "minis:asset:fire-01",
        "definitionKind": "asset",
        "assetKind": "model",
        "source": {
          "relativeAssetPath": "assets/assethub/fire-01.glb",
          "fileName": "fire-01.glb",
          "mimeType": null
        },
        "displayName": "fire-01",
        "surfaceSlots": [
          {
            "slotName": "blockout-up",
            "slotIndex": 0,
            "surface": {
              "kind": "inline",
              "surface": {
                "layers": [
                  {
                    "layerId": "fire-01:blockout-up:glow",
                    "displayName": "embers glow",
                    "enabled": true,
                    "opacity": 1,
                    "mask": {
                      "kind": "always"
                    },
                    "kind": "appearance",
                    "blendMode": "base",
                    "content": {
                      "kind": "shader",
                      "shaderDefinitionId": "minis:shader:fire-glow",
                      "parameterValues": {
                        "baseColor": [
                          0.9372549019607843,
                          0.5450980392156862,
                          0.2980392156862745
                        ],
                        "glowColor": [
                          1,
                          0.35294117647058826,
                          0.06274509803921569
                        ],
                        "glowIntensity": 0.5
                      },
                      "textureBindings": {}
                    }
                  }
                ],
                "context": "universal"
              }
            }
          },
          {
            "slotName": "blockout-down",
            "slotIndex": 1,
            "surface": {
              "kind": "inline",
              "surface": {
                "layers": [
                  {
                    "layerId": "fire-01:blockout-down:glow",
                    "displayName": "embers glow",
                    "enabled": true,
                    "opacity": 1,
                    "mask": {
                      "kind": "always"
                    },
                    "kind": "appearance",
                    "blendMode": "base",
                    "content": {
                      "kind": "shader",
                      "shaderDefinitionId": "minis:shader:fire-glow",
                      "parameterValues": {
                        "baseColor": [
                          0.615686274509804,
                          0.34901960784313724,
                          0.1843137254901961
                        ],
                        "glowColor": [
                          1,
                          0.35294117647058826,
                          0.06274509803921569
                        ],
                        "glowIntensity": 0.5
                      },
                      "textureBindings": {}
                    }
                  }
                ],
                "context": "universal"
              }
            }
          },
          {
            "slotName": "blockout-sideX",
            "slotIndex": 2,
            "surface": {
              "kind": "inline",
              "surface": {
                "layers": [
                  {
                    "layerId": "fire-01:blockout-sideX:glow",
                    "displayName": "embers glow",
                    "enabled": true,
                    "opacity": 1,
                    "mask": {
                      "kind": "always"
                    },
                    "kind": "appearance",
                    "blendMode": "base",
                    "content": {
                      "kind": "shader",
                      "shaderDefinitionId": "minis:shader:fire-glow",
                      "parameterValues": {
                        "baseColor": [
                          0.7529411764705882,
                          0.43529411764705883,
                          0.23137254901960785
                        ],
                        "glowColor": [
                          1,
                          0.35294117647058826,
                          0.06274509803921569
                        ],
                        "glowIntensity": 0.5
                      },
                      "textureBindings": {}
                    }
                  }
                ],
                "context": "universal"
              }
            }
          },
          {
            "slotName": "blockout-sideZ",
            "slotIndex": 3,
            "surface": {
              "kind": "inline",
              "surface": {
                "layers": [
                  {
                    "layerId": "fire-01:blockout-sideZ:glow",
                    "displayName": "embers glow",
                    "enabled": true,
                    "opacity": 1,
                    "mask": {
                      "kind": "always"
                    },
                    "kind": "appearance",
                    "blendMode": "base",
                    "content": {
                      "kind": "shader",
                      "shaderDefinitionId": "minis:shader:fire-glow",
                      "parameterValues": {
                        "baseColor": [
                          0.8509803921568627,
                          0.49411764705882355,
                          0.26666666666666666
                        ],
                        "glowColor": [
                          1,
                          0.35294117647058826,
                          0.06274509803921569
                        ],
                        "glowIntensity": 0.5
                      },
                      "textureBindings": {}
                    }
                  }
                ],
                "context": "universal"
              }
            }
          },
          {
            "slotName": "blockout-facet",
            "slotIndex": 4,
            "surface": {
              "kind": "inline",
              "surface": {
                "layers": [
                  {
                    "layerId": "fire-01:blockout-facet:glow",
                    "displayName": "outer glow",
                    "enabled": true,
                    "opacity": 1,
                    "mask": {
                      "kind": "always"
                    },
                    "kind": "appearance",
                    "blendMode": "base",
                    "content": {
                      "kind": "shader",
                      "shaderDefinitionId": "minis:shader:fire-glow",
                      "parameterValues": {
                        "baseColor": [
                          0.8627450980392157,
                          0.6470588235294118,
                          0.33725490196078434
                        ],
                        "glowColor": [
                          1,
                          0.35294117647058826,
                          0.06274509803921569
                        ],
                        "glowIntensity": 0.8
                      },
                      "textureBindings": {}
                    }
                  }
                ],
                "context": "universal"
              }
            }
          },
          {
            "slotName": "blockout-down.001",
            "slotIndex": 5,
            "surface": {
              "kind": "inline",
              "surface": {
                "layers": [
                  {
                    "layerId": "fire-01:blockout-down.001:glow",
                    "displayName": "outer glow",
                    "enabled": true,
                    "opacity": 1,
                    "mask": {
                      "kind": "always"
                    },
                    "kind": "appearance",
                    "blendMode": "base",
                    "content": {
                      "kind": "shader",
                      "shaderDefinitionId": "minis:shader:fire-glow",
                      "parameterValues": {
                        "baseColor": [
                          0.6549019607843137,
                          0.48627450980392156,
                          0.24705882352941178
                        ],
                        "glowColor": [
                          1,
                          0.35294117647058826,
                          0.06274509803921569
                        ],
                        "glowIntensity": 0.8
                      },
                      "textureBindings": {}
                    }
                  }
                ],
                "context": "universal"
              }
            }
          },
          {
            "slotName": "blockout-facet.001",
            "slotIndex": 6,
            "surface": {
              "kind": "inline",
              "surface": {
                "layers": [
                  {
                    "layerId": "fire-01:blockout-facet.001:glow",
                    "displayName": "mid glow",
                    "enabled": true,
                    "opacity": 1,
                    "mask": {
                      "kind": "always"
                    },
                    "kind": "appearance",
                    "blendMode": "base",
                    "content": {
                      "kind": "shader",
                      "shaderDefinitionId": "minis:shader:fire-glow",
                      "parameterValues": {
                        "baseColor": [
                          0.8627450980392157,
                          0.788235294117647,
                          0.49411764705882355
                        ],
                        "glowColor": [
                          1,
                          0.6274509803921569,
                          0.18823529411764706
                        ],
                        "glowIntensity": 1.4
                      },
                      "textureBindings": {}
                    }
                  }
                ],
                "context": "universal"
              }
            }
          },
          {
            "slotName": "blockout-down.002",
            "slotIndex": 7,
            "surface": {
              "kind": "inline",
              "surface": {
                "layers": [
                  {
                    "layerId": "fire-01:blockout-down.002:glow",
                    "displayName": "mid glow",
                    "enabled": true,
                    "opacity": 1,
                    "mask": {
                      "kind": "always"
                    },
                    "kind": "appearance",
                    "blendMode": "base",
                    "content": {
                      "kind": "shader",
                      "shaderDefinitionId": "minis:shader:fire-glow",
                      "parameterValues": {
                        "baseColor": [
                          0.6549019607843137,
                          0.596078431372549,
                          0.3686274509803922
                        ],
                        "glowColor": [
                          1,
                          0.6274509803921569,
                          0.18823529411764706
                        ],
                        "glowIntensity": 1.4
                      },
                      "textureBindings": {}
                    }
                  }
                ],
                "context": "universal"
              }
            }
          },
          {
            "slotName": "blockout-facet.002",
            "slotIndex": 8,
            "surface": {
              "kind": "inline",
              "surface": {
                "layers": [
                  {
                    "layerId": "fire-01:blockout-facet.002:glow",
                    "displayName": "core glow",
                    "enabled": true,
                    "opacity": 1,
                    "mask": {
                      "kind": "always"
                    },
                    "kind": "appearance",
                    "blendMode": "base",
                    "content": {
                      "kind": "shader",
                      "shaderDefinitionId": "minis:shader:fire-glow",
                      "parameterValues": {
                        "baseColor": [
                          0.8627450980392157,
                          0.8588235294117647,
                          0.7137254901960784
                        ],
                        "glowColor": [
                          1,
                          0.9568627450980393,
                          0.8392156862745098
                        ],
                        "glowIntensity": 3
                      },
                      "textureBindings": {}
                    }
                  }
                ],
                "context": "universal"
              }
            }
          },
          {
            "slotName": "blockout-down.003",
            "slotIndex": 9,
            "surface": {
              "kind": "inline",
              "surface": {
                "layers": [
                  {
                    "layerId": "fire-01:blockout-down.003:glow",
                    "displayName": "core glow",
                    "enabled": true,
                    "opacity": 1,
                    "mask": {
                      "kind": "always"
                    },
                    "kind": "appearance",
                    "blendMode": "base",
                    "content": {
                      "kind": "shader",
                      "shaderDefinitionId": "minis:shader:fire-glow",
                      "parameterValues": {
                        "baseColor": [
                          0.6549019607843137,
                          0.6509803921568628,
                          0.5372549019607843
                        ],
                        "glowColor": [
                          1,
                          0.9568627450980393,
                          0.8392156862745098
                        ],
                        "glowIntensity": 3
                      },
                      "textureBindings": {}
                    }
                  }
                ],
                "context": "universal"
              }
            }
          }
        ],
        "deform": {
          "kind": "shader",
          "shaderDefinitionId": "minis:shader:fire-flicker",
          "parameterValues": {},
          "textureBindings": {}
        },
        "effect": null,
        "collider": {
          "shape": "none",
          "localBounds": null
        }
      }
    ],
    "audioClipDefinitions": [
      {
        "definitionId": "minis:audio-clip:hand-knocking",
        "definitionKind": "audio-clip",
        "displayName": "hand knocking (Nikki's foley, 1.0 s)",
        "source": {
          "relativeAssetPath": "assets/audio/hand-knocking.mp3",
          "fileName": "hand-knocking.mp3",
          "mimeType": "audio/mpeg"
        },
        "durationSeconds": 1.032
      }
    ],
    "characterModelDefinitions": [
      {
        "definitionId": "minis:character-model:cast-watson",
        "definitionKind": "character-model",
        "displayName": "cast-watson (rigged)",
        "source": {
          "relativeAssetPath": "assets/character-models/cast-watson-rigged.glb",
          "fileName": "cast-watson-rigged.glb",
          "mimeType": "model/gltf-binary"
        },
        "rigId": "sugarmagic-humanoid-v1"
      },
      {
        "definitionId": "minis:character-model:cast-holmes",
        "definitionKind": "character-model",
        "displayName": "cast-holmes (rigged)",
        "source": {
          "relativeAssetPath": "assets/character-models/cast-holmes-rigged.glb",
          "fileName": "cast-holmes-rigged.glb",
          "mimeType": "model/gltf-binary"
        },
        "rigId": "sugarmagic-humanoid-v1"
      },
      {
        "definitionId": "minis:character-model:cast-mortimer",
        "definitionKind": "character-model",
        "displayName": "cast-mortimer (rigged)",
        "source": {
          "relativeAssetPath": "assets/character-models/cast-mortimer-rigged.glb",
          "fileName": "cast-mortimer-rigged.glb",
          "mimeType": "model/gltf-binary"
        },
        "rigId": "sugarmagic-humanoid-v1"
      }
    ],
    "characterAnimationDefinitions": [
      {
        "definitionId": "minis:character-animation:cast-watson-idle",
        "definitionKind": "character-animation",
        "displayName": "cast-watson idle (Generated_Idle)",
        "source": {
          "relativeAssetPath": "assets/animations/cast-watson-idle.glb",
          "fileName": "cast-watson-idle.glb",
          "mimeType": "model/gltf-binary"
        },
        "clipNames": [
          "Generated_Idle"
        ]
      },
      {
        "definitionId": "minis:character-animation:cast-watson-walk",
        "definitionKind": "character-animation",
        "displayName": "cast-watson walk (Generated_Walk)",
        "source": {
          "relativeAssetPath": "assets/animations/cast-watson-walk.glb",
          "fileName": "cast-watson-walk.glb",
          "mimeType": "model/gltf-binary"
        },
        "clipNames": [
          "Generated_Walk"
        ]
      },
      {
        "definitionId": "minis:character-animation:cast-watson-run",
        "definitionKind": "character-animation",
        "displayName": "cast-watson run (Generated_Run)",
        "source": {
          "relativeAssetPath": "assets/animations/cast-watson-run.glb",
          "fileName": "cast-watson-run.glb",
          "mimeType": "model/gltf-binary"
        },
        "clipNames": [
          "Generated_Run"
        ]
      },
      {
        "definitionId": "minis:character-animation:cast-holmes-idle",
        "definitionKind": "character-animation",
        "displayName": "cast-holmes idle (Generated_Idle)",
        "source": {
          "relativeAssetPath": "assets/animations/cast-holmes-idle.glb",
          "fileName": "cast-holmes-idle.glb",
          "mimeType": "model/gltf-binary"
        },
        "clipNames": [
          "Generated_Idle"
        ]
      },
      {
        "definitionId": "minis:character-animation:cast-holmes-walk",
        "definitionKind": "character-animation",
        "displayName": "cast-holmes walk (Generated_Walk)",
        "source": {
          "relativeAssetPath": "assets/animations/cast-holmes-walk.glb",
          "fileName": "cast-holmes-walk.glb",
          "mimeType": "model/gltf-binary"
        },
        "clipNames": [
          "Generated_Walk"
        ]
      },
      {
        "definitionId": "minis:character-animation:cast-holmes-run",
        "definitionKind": "character-animation",
        "displayName": "cast-holmes run (Generated_Run)",
        "source": {
          "relativeAssetPath": "assets/animations/cast-holmes-run.glb",
          "fileName": "cast-holmes-run.glb",
          "mimeType": "model/gltf-binary"
        },
        "clipNames": [
          "Generated_Run"
        ]
      },
      {
        "definitionId": "minis:character-animation:cast-mortimer-idle",
        "definitionKind": "character-animation",
        "displayName": "cast-mortimer idle (Generated_Idle)",
        "source": {
          "relativeAssetPath": "assets/animations/cast-mortimer-idle.glb",
          "fileName": "cast-mortimer-idle.glb",
          "mimeType": "model/gltf-binary"
        },
        "clipNames": [
          "Generated_Idle"
        ]
      },
      {
        "definitionId": "minis:character-animation:cast-mortimer-walk",
        "definitionKind": "character-animation",
        "displayName": "cast-mortimer walk (Generated_Walk)",
        "source": {
          "relativeAssetPath": "assets/animations/cast-mortimer-walk.glb",
          "fileName": "cast-mortimer-walk.glb",
          "mimeType": "model/gltf-binary"
        },
        "clipNames": [
          "Generated_Walk"
        ]
      },
      {
        "definitionId": "minis:character-animation:cast-mortimer-run",
        "definitionKind": "character-animation",
        "displayName": "cast-mortimer run (Generated_Run)",
        "source": {
          "relativeAssetPath": "assets/animations/cast-mortimer-run.glb",
          "fileName": "cast-mortimer-run.glb",
          "mimeType": "model/gltf-binary"
        },
        "clipNames": [
          "Generated_Run"
        ]
      }
    ],
    "animationLibraryDefinitions": [],
    "materialDefinitions": [],
    "soundCueDefinitions": [
      {
        "definitionId": "minis:sound-cue:knock-221b",
        "definitionKind": "sound-cue",
        "displayName": "knock at the 221B door",
        "category": "sfx",
        "clips": [
          {
            "audioClipDefinitionId": "minis:audio-clip:hand-knocking",
            "weight": 1,
            "sprite": null
          }
        ],
        "playback": {
          "mode": "single",
          "volume": 1,
          "pitch": 1,
          "randomVolume": null,
          "randomPitch": null,
          "fadeInMs": 0,
          "fadeOutMs": 0,
          "maxInstances": 8,
          "retrigger": "overlap",
          "randomIntervalSeconds": null
        },
        "spatial": {
          "enabled": false,
          "refDistance": 1,
          "maxDistance": 40,
          "rolloffFactor": 1
        }
      }
    ],
    "textureDefinitions": [
      {
        "definitionId": "minis:texture:title-sherlock-holmes",
        "definitionKind": "texture",
        "displayName": "Sherlock Holmes title",
        "source": {
          "relativeAssetPath": "assets/menu/title-sherlock-holmes.webp",
          "fileName": "title-sherlock-holmes.webp",
          "mimeType": "image/webp"
        },
        "colorSpace": "srgb",
        "packing": "rgba"
      },
      {
        "definitionId": "minis:texture:menu-book",
        "definitionKind": "texture",
        "displayName": "Menu book",
        "source": {
          "relativeAssetPath": "assets/menu/book.webp",
          "fileName": "book.webp",
          "mimeType": "image/webp"
        },
        "colorSpace": "srgb",
        "packing": "rgba"
      },
      {
        "definitionId": "minis:texture:menu-glow",
        "definitionKind": "texture",
        "displayName": "Menu glow",
        "source": {
          "relativeAssetPath": "assets/menu/glow.webp",
          "fileName": "glow.webp",
          "mimeType": "image/webp"
        },
        "colorSpace": "srgb",
        "packing": "rgba"
      }
    ],
    "maskTextureDefinitions": [],
    "surfaceDefinitions": [],
    "grassTypeDefinitions": [],
    "flowerTypeDefinitions": [],
    "rockTypeDefinitions": [],
    "environmentDefinitions": [
      {
        "definitionId": "minis:environment:baker-street-evening",
        "definitionKind": "environment",
        "displayName": "Baker Street Evening",
        "postProcessShaders": [
          {
            "shaderDefinitionId": "minis:shader:fog-tint",
            "order": 0,
            "enabled": false,
            "parameterOverrides": [
              {
                "parameterId": "color",
                "value": [
                  0.16470588235294117,
                  0.16470588235294117,
                  0.16470588235294117
                ]
              },
              {
                "parameterId": "density",
                "value": 0.008
              },
              {
                "parameterId": "heightFalloff",
                "value": 1
              }
            ]
          },
          {
            "shaderDefinitionId": "minis:shader:cloud-shadows",
            "order": 1,
            "enabled": false,
            "parameterOverrides": [
              {
                "parameterId": "scale",
                "value": 0.04
              },
              {
                "parameterId": "speedX",
                "value": 1
              },
              {
                "parameterId": "speedZ",
                "value": 0.3
              },
              {
                "parameterId": "coverage",
                "value": 0.4
              },
              {
                "parameterId": "softness",
                "value": 0.15
              },
              {
                "parameterId": "darkness",
                "value": 0.35
              },
              {
                "parameterId": "shadowColor",
                "value": [
                  0,
                  0,
                  0
                ]
              }
            ]
          },
          {
            "shaderDefinitionId": "minis:shader:bloom",
            "order": 2,
            "enabled": true,
            "parameterOverrides": [
              {
                "parameterId": "strength",
                "value": 0.6
              },
              {
                "parameterId": "radius",
                "value": 0.5
              },
              {
                "parameterId": "threshold",
                "value": 2
              }
            ]
          },
          {
            "shaderDefinitionId": "minis:shader:vignette",
            "order": 3,
            "enabled": true,
            "parameterOverrides": [
              {
                "parameterId": "color",
                "value": [
                  0.05,
                  0.07,
                  0.04
                ]
              },
              {
                "parameterId": "intensity",
                "value": 0.45
              },
              {
                "parameterId": "softness",
                "value": 0.3
              },
              {
                "parameterId": "radius",
                "value": 0.7
              }
            ]
          }
        ],
        "lighting": {
          "preset": "default",
          "sun": {
            "azimuthDeg": 128,
            "elevationDeg": 18,
            "color": 16759669,
            "intensity": 1.1,
            "shadows": {
              "enabled": true,
              "quality": "high",
              "distance": 40,
              "strength": 0.95,
              "softness": 0.45,
              "bias": -0.0001,
              "normalBias": 0.02
            }
          },
          "rim": {
            "azimuthDeg": -55,
            "elevationDeg": 25,
            "color": 11584734,
            "intensity": 0.45
          },
          "ambient": {
            "mode": "flat",
            "color": 16765600,
            "intensity": 0.34
          }
        },
        "atmosphere": {
          "fog": {
            "enabled": false,
            "density": 0.008,
            "color": 2763306,
            "heightFalloff": 1
          },
          "cloudShadows": {
            "enabled": false,
            "scale": 0.04,
            "speedX": 1,
            "speedZ": 0.3,
            "coverage": 0.4,
            "softness": 0.15,
            "darkness": 0.35,
            "shadowColor": [
              0,
              0,
              0
            ]
          },
          "ssao": {
            "enabled": true,
            "kernelRadius": 8,
            "minDistance": 0.005,
            "maxDistance": 0.1
          },
          "sky": {
            "enabled": true,
            "mode": "gradient",
            "gradientAnchor": "screen",
            "topColor": 3357994,
            "bottomColor": 2897188,
            "gradientMidEnabled": true,
            "gradientMidColor": 4868654,
            "gradientMidPosition": 0.4,
            "horizonBlend": 0.5,
            "gradientExponent": 1,
            "saturation": 1,
            "nebulaDensity": 0.7,
            "nebulaSpeed": 1,
            "riftEnabled": true,
            "riftIntensity": 1,
            "riftPulseSpeed": 1,
            "riftSwirlStrength": 1.5,
            "cloudsEnabled": false,
            "cloudCoverage": 0.48,
            "cloudSoftness": 0.22,
            "cloudOpacity": 0.55,
            "cloudScale": 2.2,
            "cloudSpeed": 0.25,
            "cloudDirectionDegrees": 18,
            "cloudColor": 16773856,
            "undercastEnabled": false,
            "undercastColor": 16771276,
            "undercastShadowColor": 13209512,
            "undercastCoverage": 0.62,
            "undercastScale": 1.6,
            "undercastOpacity": 0.95,
            "glowEnabled": true,
            "glowColor": 16774104,
            "glowCenterX": 0.5,
            "glowCenterY": 0.42,
            "glowRadius": 0.3,
            "glowSoftness": 0.34,
            "glowOpacity": 0.1
          }
        },
        "backdrop": {
          "cityscapeEnabled": false,
          "bufferZoneEnabled": false
        }
      }
    ],
    "shaderDefinitions": [
      {
        "shaderDefinitionId": "minis:shader:fire-glow",
        "definitionKind": "shader",
        "displayName": "Fire Glow",
        "targetKind": "mesh-surface",
        "revision": 2,
        "nodes": [
          {
            "nodeId": "base-color",
            "nodeType": "input.parameter",
            "position": {
              "x": 48,
              "y": 48
            },
            "settings": {
              "parameterId": "baseColor"
            }
          },
          {
            "nodeId": "glow-color",
            "nodeType": "input.parameter",
            "position": {
              "x": 48,
              "y": 160
            },
            "settings": {
              "parameterId": "glowColor"
            }
          },
          {
            "nodeId": "glow-intensity",
            "nodeType": "input.parameter",
            "position": {
              "x": 48,
              "y": 272
            },
            "settings": {
              "parameterId": "glowIntensity"
            }
          },
          {
            "nodeId": "glow",
            "nodeType": "color.multiply",
            "position": {
              "x": 300,
              "y": 216
            },
            "settings": {}
          },
          {
            "nodeId": "surface",
            "nodeType": "output.surface",
            "position": {
              "x": 560,
              "y": 48
            },
            "settings": {}
          },
          {
            "nodeId": "emissive",
            "nodeType": "output.emissive",
            "position": {
              "x": 560,
              "y": 216
            },
            "settings": {}
          }
        ],
        "edges": [
          {
            "edgeId": "e:base-color>surface.color",
            "sourceNodeId": "base-color",
            "sourcePortId": "value",
            "targetNodeId": "surface",
            "targetPortId": "color"
          },
          {
            "edgeId": "e:glow-color>glow.a",
            "sourceNodeId": "glow-color",
            "sourcePortId": "value",
            "targetNodeId": "glow",
            "targetPortId": "a"
          },
          {
            "edgeId": "e:glow-intensity>glow.b",
            "sourceNodeId": "glow-intensity",
            "sourcePortId": "value",
            "targetNodeId": "glow",
            "targetPortId": "b"
          },
          {
            "edgeId": "e:glow>emissive.color",
            "sourceNodeId": "glow",
            "sourcePortId": "value",
            "targetNodeId": "emissive",
            "targetPortId": "color"
          }
        ],
        "parameters": [
          {
            "parameterId": "baseColor",
            "displayName": "Base Color",
            "dataType": "color",
            "defaultValue": [
              1,
              1,
              1
            ]
          },
          {
            "parameterId": "glowColor",
            "displayName": "Glow Color",
            "dataType": "color",
            "defaultValue": [
              1,
              1,
              1
            ]
          },
          {
            "parameterId": "glowIntensity",
            "displayName": "Glow Intensity",
            "dataType": "float",
            "defaultValue": 1
          }
        ],
        "metadata": {
          "parameterRanges": {
            "glowIntensity": {
              "min": 0,
              "max": 6,
              "step": 0.1
            }
          }
        },
        "groups": []
      },
      {
        "shaderDefinitionId": "minis:shader:vignette",
        "definitionKind": "shader",
        "displayName": "Vignette",
        "targetKind": "post-process",
        "revision": 1,
        "nodes": [
          {
            "nodeId": "scene-color",
            "nodeType": "input.scene-color",
            "position": {
              "x": 48,
              "y": 176
            },
            "settings": {}
          },
          {
            "nodeId": "screen-uv",
            "nodeType": "input.screen-uv",
            "position": {
              "x": 48,
              "y": 48
            },
            "settings": {}
          },
          {
            "nodeId": "color",
            "nodeType": "input.parameter",
            "position": {
              "x": 912,
              "y": 384
            },
            "settings": {
              "parameterId": "color"
            }
          },
          {
            "nodeId": "intensity",
            "nodeType": "input.parameter",
            "position": {
              "x": 1216,
              "y": 304
            },
            "settings": {
              "parameterId": "intensity"
            }
          },
          {
            "nodeId": "softness",
            "nodeType": "input.parameter",
            "position": {
              "x": 448,
              "y": 304
            },
            "settings": {
              "parameterId": "softness"
            }
          },
          {
            "nodeId": "radius",
            "nodeType": "input.parameter",
            "position": {
              "x": 448,
              "y": 432
            },
            "settings": {
              "parameterId": "radius"
            }
          },
          {
            "nodeId": "center-half",
            "nodeType": "input.constant-float",
            "position": {
              "x": 48,
              "y": 304
            },
            "settings": {
              "value": 0.5
            }
          },
          {
            "nodeId": "center",
            "nodeType": "math.combine-vector",
            "position": {
              "x": 240,
              "y": 304
            },
            "settings": {}
          },
          {
            "nodeId": "distance",
            "nodeType": "math.distance",
            "position": {
              "x": 448,
              "y": 128
            },
            "settings": {}
          },
          {
            "nodeId": "radius-minus-softness",
            "nodeType": "math.subtract",
            "position": {
              "x": 672,
              "y": 304
            },
            "settings": {}
          },
          {
            "nodeId": "mask",
            "nodeType": "math.smoothstep",
            "position": {
              "x": 912,
              "y": 128
            },
            "settings": {}
          },
          {
            "nodeId": "intensity-mask",
            "nodeType": "math.multiply",
            "position": {
              "x": 1216,
              "y": 128
            },
            "settings": {}
          },
          {
            "nodeId": "mix",
            "nodeType": "math.lerp",
            "position": {
              "x": 1456,
              "y": 176
            },
            "settings": {}
          },
          {
            "nodeId": "output",
            "nodeType": "output.post-process",
            "position": {
              "x": 1696,
              "y": 176
            },
            "settings": {}
          }
        ],
        "edges": [
          {
            "edgeId": "edge-half-center-x",
            "sourceNodeId": "center-half",
            "sourcePortId": "value",
            "targetNodeId": "center",
            "targetPortId": "x"
          },
          {
            "edgeId": "edge-half-center-y",
            "sourceNodeId": "center-half",
            "sourcePortId": "value",
            "targetNodeId": "center",
            "targetPortId": "y"
          },
          {
            "edgeId": "edge-uv-distance-a",
            "sourceNodeId": "screen-uv",
            "sourcePortId": "value",
            "targetNodeId": "distance",
            "targetPortId": "a"
          },
          {
            "edgeId": "edge-center-distance-b",
            "sourceNodeId": "center",
            "sourcePortId": "vec2",
            "targetNodeId": "distance",
            "targetPortId": "b"
          },
          {
            "edgeId": "edge-radius-minus-softness-a",
            "sourceNodeId": "radius",
            "sourcePortId": "value",
            "targetNodeId": "radius-minus-softness",
            "targetPortId": "a"
          },
          {
            "edgeId": "edge-radius-minus-softness-b",
            "sourceNodeId": "softness",
            "sourcePortId": "value",
            "targetNodeId": "radius-minus-softness",
            "targetPortId": "b"
          },
          {
            "edgeId": "edge-radius-minus-softness-mask-edge0",
            "sourceNodeId": "radius-minus-softness",
            "sourcePortId": "value",
            "targetNodeId": "mask",
            "targetPortId": "edge0"
          },
          {
            "edgeId": "edge-radius-mask-edge1",
            "sourceNodeId": "radius",
            "sourcePortId": "value",
            "targetNodeId": "mask",
            "targetPortId": "edge1"
          },
          {
            "edgeId": "edge-distance-mask-x",
            "sourceNodeId": "distance",
            "sourcePortId": "value",
            "targetNodeId": "mask",
            "targetPortId": "x"
          },
          {
            "edgeId": "edge-mask-intensity-mask-a",
            "sourceNodeId": "mask",
            "sourcePortId": "value",
            "targetNodeId": "intensity-mask",
            "targetPortId": "a"
          },
          {
            "edgeId": "edge-intensity-intensity-mask-b",
            "sourceNodeId": "intensity",
            "sourcePortId": "value",
            "targetNodeId": "intensity-mask",
            "targetPortId": "b"
          },
          {
            "edgeId": "edge-scene-mix-a",
            "sourceNodeId": "scene-color",
            "sourcePortId": "value",
            "targetNodeId": "mix",
            "targetPortId": "a"
          },
          {
            "edgeId": "edge-color-mix-b",
            "sourceNodeId": "color",
            "sourcePortId": "value",
            "targetNodeId": "mix",
            "targetPortId": "b"
          },
          {
            "edgeId": "edge-mask-mix-alpha",
            "sourceNodeId": "intensity-mask",
            "sourcePortId": "value",
            "targetNodeId": "mix",
            "targetPortId": "alpha"
          },
          {
            "edgeId": "edge-mix-output",
            "sourceNodeId": "mix",
            "sourcePortId": "value",
            "targetNodeId": "output",
            "targetPortId": "color"
          }
        ],
        "parameters": [
          {
            "parameterId": "color",
            "displayName": "Color",
            "dataType": "color",
            "defaultValue": [
              0,
              0,
              0
            ]
          },
          {
            "parameterId": "intensity",
            "displayName": "Intensity",
            "dataType": "float",
            "defaultValue": 0.35
          },
          {
            "parameterId": "softness",
            "displayName": "Softness",
            "dataType": "float",
            "defaultValue": 0.18
          },
          {
            "parameterId": "radius",
            "displayName": "Radius",
            "dataType": "float",
            "defaultValue": 0.78
          }
        ],
        "metadata": {
          "builtIn": true,
          "builtInKey": "vignette"
        }
      },
      {
        "shaderDefinitionId": "minis:shader:fog-tint",
        "definitionKind": "shader",
        "displayName": "Fog Tint",
        "targetKind": "post-process",
        "revision": 3,
        "nodes": [
          {
            "nodeId": "scene-color",
            "nodeType": "input.scene-color",
            "position": {
              "x": 48,
              "y": 176
            },
            "settings": {}
          },
          {
            "nodeId": "scene-depth",
            "nodeType": "input.scene-depth",
            "position": {
              "x": 48,
              "y": 48
            },
            "settings": {}
          },
          {
            "nodeId": "world-position",
            "nodeType": "input.world-position",
            "position": {
              "x": 48,
              "y": 560
            },
            "settings": {}
          },
          {
            "nodeId": "color",
            "nodeType": "input.parameter",
            "position": {
              "x": 912,
              "y": 304
            },
            "settings": {
              "parameterId": "color"
            }
          },
          {
            "nodeId": "density",
            "nodeType": "input.parameter",
            "position": {
              "x": 288,
              "y": 304
            },
            "settings": {
              "parameterId": "density"
            }
          },
          {
            "nodeId": "heightFalloff",
            "nodeType": "input.parameter",
            "position": {
              "x": 288,
              "y": 688
            },
            "settings": {
              "parameterId": "heightFalloff"
            }
          },
          {
            "nodeId": "one",
            "nodeType": "input.constant-float",
            "position": {
              "x": 912,
              "y": 432
            },
            "settings": {
              "value": 1
            }
          },
          {
            "nodeId": "negative-one",
            "nodeType": "input.constant-float",
            "position": {
              "x": 288,
              "y": 432
            },
            "settings": {
              "value": -1
            }
          },
          {
            "nodeId": "zero",
            "nodeType": "input.constant-float",
            "position": {
              "x": 288,
              "y": 560
            },
            "settings": {
              "value": 0
            }
          },
          {
            "nodeId": "depth-times-density",
            "nodeType": "math.multiply",
            "position": {
              "x": 528,
              "y": 48
            },
            "settings": {}
          },
          {
            "nodeId": "negate-depth",
            "nodeType": "math.multiply",
            "position": {
              "x": 720,
              "y": 48
            },
            "settings": {}
          },
          {
            "nodeId": "exp",
            "nodeType": "math.exp",
            "position": {
              "x": 912,
              "y": 176
            },
            "settings": {}
          },
          {
            "nodeId": "one-minus-exp",
            "nodeType": "math.subtract",
            "position": {
              "x": 1120,
              "y": 176
            },
            "settings": {}
          },
          {
            "nodeId": "world-y",
            "nodeType": "math.split-vector",
            "position": {
              "x": 288,
              "y": 560
            },
            "settings": {}
          },
          {
            "nodeId": "world-y-clamped",
            "nodeType": "math.max",
            "position": {
              "x": 528,
              "y": 560
            },
            "settings": {}
          },
          {
            "nodeId": "height-times-falloff",
            "nodeType": "math.multiply",
            "position": {
              "x": 720,
              "y": 560
            },
            "settings": {}
          },
          {
            "nodeId": "negate-height",
            "nodeType": "math.multiply",
            "position": {
              "x": 912,
              "y": 560
            },
            "settings": {}
          },
          {
            "nodeId": "height-atten",
            "nodeType": "math.exp",
            "position": {
              "x": 1120,
              "y": 560
            },
            "settings": {}
          },
          {
            "nodeId": "combined-mask",
            "nodeType": "math.multiply",
            "position": {
              "x": 1320,
              "y": 368
            },
            "settings": {}
          },
          {
            "nodeId": "sky-near",
            "nodeType": "input.constant-float",
            "position": {
              "x": 288,
              "y": 816
            },
            "settings": {
              "value": 940
            }
          },
          {
            "nodeId": "sky-far",
            "nodeType": "input.constant-float",
            "position": {
              "x": 288,
              "y": 896
            },
            "settings": {
              "value": 992
            }
          },
          {
            "nodeId": "sky-fade",
            "nodeType": "math.smoothstep",
            "position": {
              "x": 720,
              "y": 856
            },
            "settings": {}
          },
          {
            "nodeId": "sky-gate",
            "nodeType": "math.subtract",
            "position": {
              "x": 1120,
              "y": 856
            },
            "settings": {}
          },
          {
            "nodeId": "masked-by-sky",
            "nodeType": "math.multiply",
            "position": {
              "x": 1420,
              "y": 560
            },
            "settings": {}
          },
          {
            "nodeId": "mix",
            "nodeType": "math.lerp",
            "position": {
              "x": 1560,
              "y": 176
            },
            "settings": {}
          },
          {
            "nodeId": "output",
            "nodeType": "output.post-process",
            "position": {
              "x": 1780,
              "y": 176
            },
            "settings": {}
          }
        ],
        "edges": [
          {
            "edgeId": "edge-depth-density",
            "sourceNodeId": "scene-depth",
            "sourcePortId": "value",
            "targetNodeId": "depth-times-density",
            "targetPortId": "a"
          },
          {
            "edgeId": "edge-density-density",
            "sourceNodeId": "density",
            "sourcePortId": "value",
            "targetNodeId": "depth-times-density",
            "targetPortId": "b"
          },
          {
            "edgeId": "edge-depth-negate",
            "sourceNodeId": "depth-times-density",
            "sourcePortId": "value",
            "targetNodeId": "negate-depth",
            "targetPortId": "a"
          },
          {
            "edgeId": "edge-negative-one-negate",
            "sourceNodeId": "negative-one",
            "sourcePortId": "value",
            "targetNodeId": "negate-depth",
            "targetPortId": "b"
          },
          {
            "edgeId": "edge-negate-exp",
            "sourceNodeId": "negate-depth",
            "sourcePortId": "value",
            "targetNodeId": "exp",
            "targetPortId": "input"
          },
          {
            "edgeId": "edge-one-subtract",
            "sourceNodeId": "one",
            "sourcePortId": "value",
            "targetNodeId": "one-minus-exp",
            "targetPortId": "a"
          },
          {
            "edgeId": "edge-exp-subtract",
            "sourceNodeId": "exp",
            "sourcePortId": "value",
            "targetNodeId": "one-minus-exp",
            "targetPortId": "b"
          },
          {
            "edgeId": "edge-worldpos-split",
            "sourceNodeId": "world-position",
            "sourcePortId": "value",
            "targetNodeId": "world-y",
            "targetPortId": "input"
          },
          {
            "edgeId": "edge-worldy-max-a",
            "sourceNodeId": "world-y",
            "sourcePortId": "y",
            "targetNodeId": "world-y-clamped",
            "targetPortId": "a"
          },
          {
            "edgeId": "edge-zero-max-b",
            "sourceNodeId": "zero",
            "sourcePortId": "value",
            "targetNodeId": "world-y-clamped",
            "targetPortId": "b"
          },
          {
            "edgeId": "edge-height-times-falloff-a",
            "sourceNodeId": "world-y-clamped",
            "sourcePortId": "value",
            "targetNodeId": "height-times-falloff",
            "targetPortId": "a"
          },
          {
            "edgeId": "edge-height-times-falloff-b",
            "sourceNodeId": "heightFalloff",
            "sourcePortId": "value",
            "targetNodeId": "height-times-falloff",
            "targetPortId": "b"
          },
          {
            "edgeId": "edge-negate-height-a",
            "sourceNodeId": "height-times-falloff",
            "sourcePortId": "value",
            "targetNodeId": "negate-height",
            "targetPortId": "a"
          },
          {
            "edgeId": "edge-negate-height-b",
            "sourceNodeId": "negative-one",
            "sourcePortId": "value",
            "targetNodeId": "negate-height",
            "targetPortId": "b"
          },
          {
            "edgeId": "edge-height-exp",
            "sourceNodeId": "negate-height",
            "sourcePortId": "value",
            "targetNodeId": "height-atten",
            "targetPortId": "input"
          },
          {
            "edgeId": "edge-combine-a",
            "sourceNodeId": "one-minus-exp",
            "sourcePortId": "value",
            "targetNodeId": "combined-mask",
            "targetPortId": "a"
          },
          {
            "edgeId": "edge-combine-b",
            "sourceNodeId": "height-atten",
            "sourcePortId": "value",
            "targetNodeId": "combined-mask",
            "targetPortId": "b"
          },
          {
            "edgeId": "edge-sky-near-edge0",
            "sourceNodeId": "sky-near",
            "sourcePortId": "value",
            "targetNodeId": "sky-fade",
            "targetPortId": "edge0"
          },
          {
            "edgeId": "edge-sky-far-edge1",
            "sourceNodeId": "sky-far",
            "sourcePortId": "value",
            "targetNodeId": "sky-fade",
            "targetPortId": "edge1"
          },
          {
            "edgeId": "edge-depth-sky-fade-x",
            "sourceNodeId": "scene-depth",
            "sourcePortId": "value",
            "targetNodeId": "sky-fade",
            "targetPortId": "x"
          },
          {
            "edgeId": "edge-one-sky-gate-a",
            "sourceNodeId": "one",
            "sourcePortId": "value",
            "targetNodeId": "sky-gate",
            "targetPortId": "a"
          },
          {
            "edgeId": "edge-sky-fade-sky-gate-b",
            "sourceNodeId": "sky-fade",
            "sourcePortId": "value",
            "targetNodeId": "sky-gate",
            "targetPortId": "b"
          },
          {
            "edgeId": "edge-masked-by-sky-a",
            "sourceNodeId": "combined-mask",
            "sourcePortId": "value",
            "targetNodeId": "masked-by-sky",
            "targetPortId": "a"
          },
          {
            "edgeId": "edge-masked-by-sky-b",
            "sourceNodeId": "sky-gate",
            "sourcePortId": "value",
            "targetNodeId": "masked-by-sky",
            "targetPortId": "b"
          },
          {
            "edgeId": "edge-scene-mix",
            "sourceNodeId": "scene-color",
            "sourcePortId": "value",
            "targetNodeId": "mix",
            "targetPortId": "a"
          },
          {
            "edgeId": "edge-color-mix",
            "sourceNodeId": "color",
            "sourcePortId": "value",
            "targetNodeId": "mix",
            "targetPortId": "b"
          },
          {
            "edgeId": "edge-mask-mix",
            "sourceNodeId": "masked-by-sky",
            "sourcePortId": "value",
            "targetNodeId": "mix",
            "targetPortId": "alpha"
          },
          {
            "edgeId": "edge-mix-output",
            "sourceNodeId": "mix",
            "sourcePortId": "value",
            "targetNodeId": "output",
            "targetPortId": "color"
          }
        ],
        "parameters": [
          {
            "parameterId": "color",
            "displayName": "Color",
            "dataType": "color",
            "defaultValue": [
              0.75,
              0.82,
              0.92
            ]
          },
          {
            "parameterId": "density",
            "displayName": "Density",
            "dataType": "float",
            "defaultValue": 0.008
          },
          {
            "parameterId": "heightFalloff",
            "displayName": "Height Falloff",
            "dataType": "float",
            "defaultValue": 0
          }
        ],
        "metadata": {
          "builtIn": true,
          "builtInKey": "fog-tint"
        }
      },
      {
        "shaderDefinitionId": "minis:shader:bloom",
        "definitionKind": "shader",
        "displayName": "Bloom",
        "targetKind": "post-process",
        "revision": 1,
        "nodes": [
          {
            "nodeId": "scene-color",
            "nodeType": "input.scene-color",
            "position": {
              "x": 48,
              "y": 176
            },
            "settings": {}
          },
          {
            "nodeId": "strength",
            "nodeType": "input.parameter",
            "position": {
              "x": 48,
              "y": 48
            },
            "settings": {
              "parameterId": "strength"
            }
          },
          {
            "nodeId": "radius",
            "nodeType": "input.parameter",
            "position": {
              "x": 48,
              "y": 176
            },
            "settings": {
              "parameterId": "radius"
            }
          },
          {
            "nodeId": "threshold",
            "nodeType": "input.parameter",
            "position": {
              "x": 48,
              "y": 304
            },
            "settings": {
              "parameterId": "threshold"
            }
          },
          {
            "nodeId": "bloom",
            "nodeType": "effect.bloom-pass",
            "position": {
              "x": 352,
              "y": 176
            },
            "settings": {}
          },
          {
            "nodeId": "composite",
            "nodeType": "color.add",
            "position": {
              "x": 640,
              "y": 176
            },
            "settings": {}
          },
          {
            "nodeId": "output",
            "nodeType": "output.post-process",
            "position": {
              "x": 912,
              "y": 176
            },
            "settings": {}
          }
        ],
        "edges": [
          {
            "edgeId": "edge-scene-bloom",
            "sourceNodeId": "scene-color",
            "sourcePortId": "value",
            "targetNodeId": "bloom",
            "targetPortId": "input"
          },
          {
            "edgeId": "edge-strength-bloom",
            "sourceNodeId": "strength",
            "sourcePortId": "value",
            "targetNodeId": "bloom",
            "targetPortId": "strength"
          },
          {
            "edgeId": "edge-radius-bloom",
            "sourceNodeId": "radius",
            "sourcePortId": "value",
            "targetNodeId": "bloom",
            "targetPortId": "radius"
          },
          {
            "edgeId": "edge-threshold-bloom",
            "sourceNodeId": "threshold",
            "sourcePortId": "value",
            "targetNodeId": "bloom",
            "targetPortId": "threshold"
          },
          {
            "edgeId": "edge-scene-composite",
            "sourceNodeId": "scene-color",
            "sourcePortId": "value",
            "targetNodeId": "composite",
            "targetPortId": "a"
          },
          {
            "edgeId": "edge-bloom-composite",
            "sourceNodeId": "bloom",
            "sourcePortId": "value",
            "targetNodeId": "composite",
            "targetPortId": "b"
          },
          {
            "edgeId": "edge-composite-output",
            "sourceNodeId": "composite",
            "sourcePortId": "value",
            "targetNodeId": "output",
            "targetPortId": "color"
          }
        ],
        "parameters": [
          {
            "parameterId": "strength",
            "displayName": "Strength",
            "dataType": "float",
            "defaultValue": 0.4
          },
          {
            "parameterId": "radius",
            "displayName": "Radius",
            "dataType": "float",
            "defaultValue": 0.4
          },
          {
            "parameterId": "threshold",
            "displayName": "Threshold",
            "dataType": "float",
            "defaultValue": 0.9
          }
        ],
        "metadata": {
          "builtIn": true,
          "builtInKey": "bloom"
        }
      },
      {
        "shaderDefinitionId": "minis:shader:cloud-shadows",
        "definitionKind": "shader",
        "displayName": "Cloud Shadows",
        "targetKind": "post-process",
        "revision": 1,
        "nodes": [
          {
            "nodeId": "scene-color",
            "nodeType": "input.scene-color",
            "position": {
              "x": 48,
              "y": 176
            },
            "settings": {}
          },
          {
            "nodeId": "world-position",
            "nodeType": "input.world-position",
            "position": {
              "x": 48,
              "y": 48
            },
            "settings": {}
          },
          {
            "nodeId": "time",
            "nodeType": "input.time",
            "position": {
              "x": 48,
              "y": 224
            },
            "settings": {}
          },
          {
            "nodeId": "scale",
            "nodeType": "input.parameter",
            "position": {
              "x": 48,
              "y": 304
            },
            "settings": {
              "parameterId": "scale"
            }
          },
          {
            "nodeId": "speedX",
            "nodeType": "input.parameter",
            "position": {
              "x": 48,
              "y": 384
            },
            "settings": {
              "parameterId": "speedX"
            }
          },
          {
            "nodeId": "speedZ",
            "nodeType": "input.parameter",
            "position": {
              "x": 48,
              "y": 464
            },
            "settings": {
              "parameterId": "speedZ"
            }
          },
          {
            "nodeId": "coverage",
            "nodeType": "input.parameter",
            "position": {
              "x": 48,
              "y": 544
            },
            "settings": {
              "parameterId": "coverage"
            }
          },
          {
            "nodeId": "softness",
            "nodeType": "input.parameter",
            "position": {
              "x": 48,
              "y": 624
            },
            "settings": {
              "parameterId": "softness"
            }
          },
          {
            "nodeId": "darkness",
            "nodeType": "input.parameter",
            "position": {
              "x": 48,
              "y": 704
            },
            "settings": {
              "parameterId": "darkness"
            }
          },
          {
            "nodeId": "shadowColor",
            "nodeType": "input.parameter",
            "position": {
              "x": 48,
              "y": 784
            },
            "settings": {
              "parameterId": "shadowColor"
            }
          },
          {
            "nodeId": "cloud",
            "nodeType": "effect.cloud-shadow-pass",
            "position": {
              "x": 480,
              "y": 240
            },
            "settings": {}
          },
          {
            "nodeId": "output",
            "nodeType": "output.post-process",
            "position": {
              "x": 880,
              "y": 240
            },
            "settings": {}
          }
        ],
        "edges": [
          {
            "edgeId": "edge-scene-cloud",
            "sourceNodeId": "scene-color",
            "sourcePortId": "value",
            "targetNodeId": "cloud",
            "targetPortId": "input"
          },
          {
            "edgeId": "edge-worldpos-cloud",
            "sourceNodeId": "world-position",
            "sourcePortId": "value",
            "targetNodeId": "cloud",
            "targetPortId": "worldPosition"
          },
          {
            "edgeId": "edge-time-cloud",
            "sourceNodeId": "time",
            "sourcePortId": "value",
            "targetNodeId": "cloud",
            "targetPortId": "time"
          },
          {
            "edgeId": "edge-scale",
            "sourceNodeId": "scale",
            "sourcePortId": "value",
            "targetNodeId": "cloud",
            "targetPortId": "scale"
          },
          {
            "edgeId": "edge-speedx",
            "sourceNodeId": "speedX",
            "sourcePortId": "value",
            "targetNodeId": "cloud",
            "targetPortId": "speedX"
          },
          {
            "edgeId": "edge-speedz",
            "sourceNodeId": "speedZ",
            "sourcePortId": "value",
            "targetNodeId": "cloud",
            "targetPortId": "speedZ"
          },
          {
            "edgeId": "edge-coverage",
            "sourceNodeId": "coverage",
            "sourcePortId": "value",
            "targetNodeId": "cloud",
            "targetPortId": "coverage"
          },
          {
            "edgeId": "edge-softness",
            "sourceNodeId": "softness",
            "sourcePortId": "value",
            "targetNodeId": "cloud",
            "targetPortId": "softness"
          },
          {
            "edgeId": "edge-darkness",
            "sourceNodeId": "darkness",
            "sourcePortId": "value",
            "targetNodeId": "cloud",
            "targetPortId": "darkness"
          },
          {
            "edgeId": "edge-shadowcolor",
            "sourceNodeId": "shadowColor",
            "sourcePortId": "value",
            "targetNodeId": "cloud",
            "targetPortId": "shadowColor"
          },
          {
            "edgeId": "edge-cloud-output",
            "sourceNodeId": "cloud",
            "sourcePortId": "value",
            "targetNodeId": "output",
            "targetPortId": "color"
          }
        ],
        "parameters": [
          {
            "parameterId": "scale",
            "displayName": "Scale",
            "dataType": "float",
            "defaultValue": 0.04
          },
          {
            "parameterId": "speedX",
            "displayName": "Speed X",
            "dataType": "float",
            "defaultValue": 1
          },
          {
            "parameterId": "speedZ",
            "displayName": "Speed Z",
            "dataType": "float",
            "defaultValue": 0.3
          },
          {
            "parameterId": "coverage",
            "displayName": "Coverage",
            "dataType": "float",
            "defaultValue": 0.4
          },
          {
            "parameterId": "softness",
            "displayName": "Softness",
            "dataType": "float",
            "defaultValue": 0.15
          },
          {
            "parameterId": "darkness",
            "displayName": "Darkness",
            "dataType": "float",
            "defaultValue": 0.35
          },
          {
            "parameterId": "shadowColor",
            "displayName": "Shadow Color",
            "dataType": "color",
            "defaultValue": [
              0,
              0,
              0
            ]
          }
        ],
        "metadata": {
          "builtIn": true,
          "builtInKey": "cloud-shadows"
        }
      }
    ]
  },
  "mechanics": {
    "stats": [
      {
        "id": "battery",
        "displayName": "Battery",
        "default": 100,
        "min": 0,
        "max": 100,
        "decay": null,
        "recharge": {
          "ratePerSecond": 0.016666666666666666
        },
        "display": "battery",
        "role": "battery"
      },
      {
        "id": "resonance",
        "displayName": "Resonance",
        "default": 0,
        "min": 0,
        "max": 100,
        "decay": null,
        "recharge": null,
        "display": "bar",
        "role": "resonance"
      }
    ],
    "castables": [
      {
        "id": "spell",
        "displayName": "Spell",
        "description": "Default Sugarmagic spell cast flow.",
        "inputs": [
          {
            "id": "batteryCost",
            "type": "number",
            "required": true,
            "default": 1,
            "description": "Battery consumed by the spell."
          },
          {
            "id": "chaosBase",
            "type": "number",
            "required": true,
            "default": 0,
            "description": "Base chaos chance from 0 to 100."
          }
        ],
        "cost": "caster.battery >= self.batteryCost",
        "acceptsTarget": false,
        "onCast": [
          {
            "op": "consume",
            "target": "caster.battery",
            "amount": "self.batteryCost"
          },
          {
            "op": "branch",
            "condition": "roll(1d100) <= clamp(self.chaosBase - caster.resonance * 0.8, 0, 100)",
            "then": [
              {
                "op": "emit",
                "kind": "spell-chaos"
              },
              {
                "op": "set",
                "target": "caster.resonance",
                "value": "0"
              }
            ],
            "else": [
              {
                "op": "emit",
                "kind": "spell-success"
              }
            ]
          }
        ]
      }
    ]
  },
  "playerDefinitions": [
    {
      "definitionId": "minis:player:season:sherlock",
      "displayName": "Watson",
      "lorePageId": "lore.sh.player",
      "physicalProfile": {
        "height": 1.4216,
        "radius": 0.35,
        "eyeHeight": 1
      },
      "movementProfile": {
        "walkSpeed": 4.5,
        "runSpeed": 6.5,
        "acceleration": 10
      },
      "casterProfile": {
        "initialBattery": 100,
        "rechargeRate": 1,
        "initialResonance": 0,
        "allowedSpellTags": [],
        "blockedSpellTags": []
      },
      "presentation": {
        "modelAssetDefinitionId": "minis:character-model:cast-watson",
        "animationAssetBindings": {
          "idle": "minis:character-animation:cast-watson-idle",
          "walk": "minis:character-animation:cast-watson-walk",
          "run": "minis:character-animation:cast-watson-run"
        }
      }
    }
  ],
  "playerDefinition": {
    "definitionId": "minis:player:season:sherlock",
    "displayName": "Watson",
    "lorePageId": "lore.sh.player",
    "physicalProfile": {
      "height": 1.4216,
      "radius": 0.35,
      "eyeHeight": 1
    },
    "movementProfile": {
      "walkSpeed": 4.5,
      "runSpeed": 6.5,
      "acceleration": 10
    },
    "casterProfile": {
      "initialBattery": 100,
      "rechargeRate": 1,
      "initialResonance": 0,
      "allowedSpellTags": [],
      "blockedSpellTags": []
    },
    "presentation": {
      "modelAssetDefinitionId": "minis:character-model:cast-watson",
      "animationAssetBindings": {
        "idle": "minis:character-animation:cast-watson-idle",
        "walk": "minis:character-animation:cast-watson-walk",
        "run": "minis:character-animation:cast-watson-run"
      }
    }
  },
  "worldFlagDefinitions": [],
  "spellDefinitions": [],
  "itemDefinitions": [],
  "documentDefinitions": [],
  "npcDefinitions": [
    {
      "definitionId": "minis:npc:holmes",
      "displayName": "Holmes",
      "description": "Sherlock Holmes, a grey wolf in a tan coat and red waistcoat with a pipe, at the breakfast table with his back to the room: brisk, amused, fond of Watson and says so once; corrects gently and enjoys it; will not explain everything, and says so; bored by the legend, interested from the footprints on; wants tobacco and silence when the talk runs long. Addresses the player as Watson; never tells the player what Watson thinks.",
      "interactionMode": "agent",
      "lorePageId": "lore.sh.holmes",
      "recoveryStrategies": [],
      "presentation": {
        "modelAssetDefinitionId": "minis:character-model:cast-holmes",
        "modelHeight": 1.74,
        "animationAssetBindings": {
          "idle": "minis:character-animation:cast-holmes-idle",
          "walk": "minis:character-animation:cast-holmes-walk",
          "run": "minis:character-animation:cast-holmes-run",
          "sit": null
        }
      }
    },
    {
      "definitionId": "minis:npc:mortimer",
      "displayName": "Dr Mortimer",
      "description": "Dr James Mortimer, a heron in spectacles, a country practitioner of Grimpen, Dartmoor, a humble M.R.C.S.: eager, scientific, a picker-up of shells on the shore of the great unknown ocean; a little morbid about skulls, including the player's; frightened for Sir Henry and half-persuaded the thing is supernatural; apologetic when he has said something rude. Addresses the player as Dr Watson, whose name he has heard; never tells the player what Watson thinks.",
      "interactionMode": "agent",
      "lorePageId": "lore.sh.mortimer",
      "recoveryStrategies": [],
      "presentation": {
        "modelAssetDefinitionId": "minis:character-model:cast-mortimer",
        "modelHeight": 1.4909,
        "animationAssetBindings": {
          "idle": "minis:character-animation:cast-mortimer-idle",
          "walk": "minis:character-animation:cast-mortimer-walk",
          "run": "minis:character-animation:cast-mortimer-run",
          "sit": null
        }
      }
    }
  ],
  "dialogueDefinitions": [
    {
      "definitionId": "dlg:sh-ep01:legend",
      "displayName": "The legend",
      "startNodeId": "dlg:sh-ep01:legend:line-1",
      "nodes": [
        {
          "nodeId": "dlg:sh-ep01:legend:line-1",
          "displayName": "The legend 1/4",
          "speakerId": "minis:npc:mortimer",
          "speakerLabel": "Dr Mortimer",
          "text": "I have an old manuscript here in my pocket, from the year 1742. There: I lay it on the table.",
          "intent": {
            "mustConveyFacts": [
              "Mortimer has an old manuscript in his pocket",
              "it is from the year 1742",
              "he lays it on the table"
            ],
            "beat": "After Mortimer's conversation at the door, when the panel closes: Mortimer takes the manuscript of 1742 from his pocket, lays it on the table, and tells the legend of Hugo Baskerville: the girl who ran from him across the moor, Hugo riding after her, and the hound at Hugo's throat. The manuscript appears on the table here. (The Hound of the Baskervilles, ch. 2; the hunting pack is dropped, the beast is a single hound.)",
            "voiceNote": "Mortimer: eager and exact about dates and places; he tells it plainly and believes it. He brings out the manuscript and names it as he lays it down."
          },
          "next": [
            {
              "targetNodeId": "dlg:sh-ep01:legend:line-2"
            }
          ],
          "graphPosition": {
            "x": 80,
            "y": 80
          }
        },
        {
          "nodeId": "dlg:sh-ep01:legend:line-2",
          "displayName": "The legend 2/4",
          "speakerId": "minis:npc:mortimer",
          "speakerLabel": "Dr Mortimer",
          "text": "Long ago, wicked Hugo Baskerville carried off a young girl. She ran away across the moor, and Hugo rode after her.",
          "intent": {
            "mustConveyFacts": [
              "long ago Hugo Baskerville was a wicked man",
              "he carried off a young girl",
              "she ran away across the moor",
              "Hugo rode after her"
            ],
            "beat": "After Mortimer's conversation at the door, when the panel closes: Mortimer takes the manuscript of 1742 from his pocket, lays it on the table, and tells the legend of Hugo Baskerville: the girl who ran from him across the moor, Hugo riding after her, and the hound at Hugo's throat. The manuscript appears on the table here. (The Hound of the Baskervilles, ch. 2; the hunting pack is dropped, the beast is a single hound.)",
            "voiceNote": "Mortimer: eager and exact about dates and places; he tells it plainly and believes it. The legend in the past, told simply."
          },
          "next": [
            {
              "targetNodeId": "dlg:sh-ep01:legend:line-3"
            }
          ],
          "graphPosition": {
            "x": 340,
            "y": 80
          }
        },
        {
          "nodeId": "dlg:sh-ep01:legend:line-3",
          "displayName": "The legend 3/4",
          "speakerId": "minis:npc:mortimer",
          "speakerLabel": "Dr Mortimer",
          "text": "His friends found Hugo dead on the moor. And at his throat was a great black hound, glowing.",
          "intent": {
            "mustConveyFacts": [
              "Hugo's friends found him dead on the moor",
              "a great black glowing hound was at his throat"
            ],
            "beat": "After Mortimer's conversation at the door, when the panel closes: Mortimer takes the manuscript of 1742 from his pocket, lays it on the table, and tells the legend of Hugo Baskerville: the girl who ran from him across the moor, Hugo riding after her, and the hound at Hugo's throat. The manuscript appears on the table here. (The Hound of the Baskervilles, ch. 2; the hunting pack is dropped, the beast is a single hound.)",
            "voiceNote": "Mortimer: eager and exact about dates and places; he tells it plainly and believes it. The hound is named once, plainly. This is the fact Holmes's probe asks for."
          },
          "next": [
            {
              "targetNodeId": "dlg:sh-ep01:legend:line-4"
            }
          ],
          "graphPosition": {
            "x": 600,
            "y": 80
          }
        },
        {
          "nodeId": "dlg:sh-ep01:legend:line-4",
          "displayName": "The legend 4/4",
          "speakerId": "minis:npc:mortimer",
          "speakerLabel": "Dr Mortimer",
          "text": "Since that night, no Baskerville crosses the moor in the dark.",
          "intent": {
            "mustConveyFacts": [
              "since then the Baskervilles do not cross the moor in the dark"
            ],
            "beat": "After Mortimer's conversation at the door, when the panel closes: Mortimer takes the manuscript of 1742 from his pocket, lays it on the table, and tells the legend of Hugo Baskerville: the girl who ran from him across the moor, Hugo riding after her, and the hound at Hugo's throat. The manuscript appears on the table here. (The Hound of the Baskervilles, ch. 2; the hunting pack is dropped, the beast is a single hound.)",
            "voiceNote": "Mortimer: eager and exact about dates and places; he tells it plainly and believes it. He will not call it a fable; he says it as a warning."
          },
          "next": [],
          "graphPosition": {
            "x": 860,
            "y": 80
          }
        }
      ],
      "groups": [],
      "interactionBinding": {
        "npcDefinitionId": null
      }
    },
    {
      "definitionId": "dlg:sh-ep01:death",
      "displayName": "The death",
      "startNodeId": "dlg:sh-ep01:death:line-1",
      "nodes": [
        {
          "nodeId": "dlg:sh-ep01:death:line-1",
          "displayName": "The death 1/4",
          "speakerId": "minis:npc:mortimer",
          "speakerLabel": "Dr Mortimer",
          "text": "And here is a newspaper, from my other pocket. I lay it down beside the manuscript.",
          "intent": {
            "mustConveyFacts": [
              "Mortimer takes a newspaper from his other pocket",
              "he lays it on the table beside the manuscript"
            ],
            "beat": "Straight after the legend: Mortimer takes the newspaper from his pocket, lays it down, and tells the death of Sir Charles Baskerville: his night walk in the yew alley, found dead at the end of it, no mark on him, the coroner's word, his heart. He ends in a whisper on the fact he kept from the inquest: the footprints of a gigantic hound. Holmes's \"his heart, or something else?\" picks the whisper up later. The newspaper appears on the table here. (ch. 2; the paper on the table is staging.)",
            "voiceNote": "Mortimer: eager and exact about dates and places; he tells it plainly and believes it. He brings out the newspaper and names it as he lays it down."
          },
          "next": [
            {
              "targetNodeId": "dlg:sh-ep01:death:line-2"
            }
          ],
          "graphPosition": {
            "x": 80,
            "y": 80
          }
        },
        {
          "nodeId": "dlg:sh-ep01:death:line-2",
          "displayName": "The death 2/4",
          "speakerId": "minis:npc:mortimer",
          "speakerLabel": "Dr Mortimer",
          "text": "Three months ago, Sir Charles Baskerville went out to walk in his yew alley at night. They found him dead at the end of it.",
          "intent": {
            "mustConveyFacts": [
              "three months ago Sir Charles Baskerville went for a walk in his yew alley at night",
              "he was found dead at the end of the alley"
            ],
            "beat": "Straight after the legend: Mortimer takes the newspaper from his pocket, lays it down, and tells the death of Sir Charles Baskerville: his night walk in the yew alley, found dead at the end of it, no mark on him, the coroner's word, his heart. He ends in a whisper on the fact he kept from the inquest: the footprints of a gigantic hound. Holmes's \"his heart, or something else?\" picks the whisper up later. The newspaper appears on the table here. (ch. 2; the paper on the table is staging.)",
            "voiceNote": "Mortimer: eager and exact about dates and places; he tells it plainly and believes it. Sir Charles was his patient and his friend; plain, and a little sad."
          },
          "next": [
            {
              "targetNodeId": "dlg:sh-ep01:death:line-3"
            }
          ],
          "graphPosition": {
            "x": 340,
            "y": 80
          }
        },
        {
          "nodeId": "dlg:sh-ep01:death:line-3",
          "displayName": "The death 3/4",
          "speakerId": "minis:npc:mortimer",
          "speakerLabel": "Dr Mortimer",
          "text": "There was no mark on him. The coroner said it was his heart.",
          "intent": {
            "mustConveyFacts": [
              "there was no mark on the body",
              "the coroner said Sir Charles died of his heart"
            ],
            "beat": "Straight after the legend: Mortimer takes the newspaper from his pocket, lays it down, and tells the death of Sir Charles Baskerville: his night walk in the yew alley, found dead at the end of it, no mark on him, the coroner's word, his heart. He ends in a whisper on the fact he kept from the inquest: the footprints of a gigantic hound. Holmes's \"his heart, or something else?\" picks the whisper up later. The newspaper appears on the table here. (ch. 2; the paper on the table is staging.)",
            "voiceNote": "Mortimer: eager and exact about dates and places; he tells it plainly and believes it. The official story, which the whisper then undoes."
          },
          "next": [
            {
              "targetNodeId": "dlg:sh-ep01:death:line-4"
            }
          ],
          "graphPosition": {
            "x": 600,
            "y": 80
          }
        },
        {
          "nodeId": "dlg:sh-ep01:death:line-4",
          "displayName": "The death 4/4",
          "speakerId": "minis:npc:mortimer",
          "speakerLabel": "Dr Mortimer",
          "text": "But I saw one more thing, and I told no one. Near the body there were footprints. Mr Holmes, they were the footprints of a gigantic hound.",
          "intent": {
            "mustConveyFacts": [
              "Mortimer saw one more thing and told no one",
              "there were footprints near the body",
              "they were the footprints of a gigantic hound"
            ],
            "beat": "Straight after the legend: Mortimer takes the newspaper from his pocket, lays it down, and tells the death of Sir Charles Baskerville: his night walk in the yew alley, found dead at the end of it, no mark on him, the coroner's word, his heart. He ends in a whisper on the fact he kept from the inquest: the footprints of a gigantic hound. Holmes's \"his heart, or something else?\" picks the whisper up later. The newspaper appears on the table here. (ch. 2; the paper on the table is staging.)",
            "voiceNote": "Mortimer: eager and exact about dates and places; he tells it plainly and believes it. He drops his voice to a whisper. The last line of the telling; Holmes's \"his heart, or something else?\" picks it up."
          },
          "next": [],
          "graphPosition": {
            "x": 860,
            "y": 80
          }
        }
      ],
      "groups": [],
      "interactionBinding": {
        "npcDefinitionId": null
      }
    },
    {
      "definitionId": "dlg:sh-ep01:open",
      "displayName": "The morning",
      "startNodeId": "dlg:sh-ep01:open:line-1",
      "nodes": [
        {
          "nodeId": "dlg:sh-ep01:open:line-1",
          "displayName": "The morning 1/1",
          "speakerId": "1a44e7dd-fd2c-4862-a489-59692155e406",
          "speakerLabel": "",
          "text": "A summer morning at 221B Baker Street. Last night a visitor waited an hour for Holmes, then went away. He left his walking stick on the hearth rug.",
          "intent": {
            "mustConveyFacts": [
              "it is a summer morning at 221B Baker Street",
              "last night a visitor waited an hour for Holmes and then went away",
              "the visitor left his walking stick on the hearth rug"
            ],
            "beat": "The opening card, shown when the player stands on the hearth rug and before anyone speaks. It plants the stick the player examines next and the visitor Holmes asks about. Holmes speaks to Watson in his opening line, not here. (The Hound of the Baskervilles, ch. 1)",
            "voiceNote": "Narrator: plain and quiet, a few facts in the past tense, like the first lines of a story. Nothing Watson says or thinks."
          },
          "next": [],
          "graphPosition": {
            "x": 80,
            "y": 80
          }
        }
      ],
      "groups": [],
      "interactionBinding": {
        "npcDefinitionId": null
      }
    },
    {
      "definitionId": "node:sh-ep01:tell-holmes-stick:dialogue",
      "displayName": "Tell Holmes what you make of the stick",
      "startNodeId": "node:sh-ep01:tell-holmes-stick:opening",
      "nodes": [
        {
          "nodeId": "node:sh-ep01:tell-holmes-stick:opening",
          "displayName": "Opening line",
          "text": "Well, Watson, you have looked at our visitor's stick: heavy, and the tip worn down. I think I know the man, but I want your idea first. A country doctor, or a town one?",
          "intent": {
            "mustConveyFacts": [
              "Watson has looked at the visitor's stick",
              "the stick is heavy and its tip is worn down",
              "Holmes has his own idea about the owner",
              "Holmes asks whether the owner is a country doctor or a town doctor"
            ],
            "beat": "At the mantel, after Watson has examined the stick: Holmes asks what Watson makes of its owner. He keeps what Watson got right (a country doctor who walks a great deal) and corrects the rest (a young man who left Charing Cross Hospital, absent-minded enough to leave his stick and no card). Then a knock at the door. (The Hound of the Baskervilles, ch. 1; the spaniel is cut.)",
            "voiceNote": "Holmes: brisk and amused, short sentences, conclusion first; addresses Watson and stops. The offered choice: both answers are in the question, so one word is a good reply. He describes the stick and says what he thinks before he asks. He withholds his own reading on purpose."
          },
          "next": [
            {
              "targetNodeId": "node:sh-ep01:tell-holmes-stick:talk"
            }
          ],
          "graphPosition": {
            "x": 80,
            "y": 80
          }
        },
        {
          "nodeId": "node:sh-ep01:tell-holmes-stick:talk",
          "kind": "free-form",
          "closeWhen": {
            "kind": "replies",
            "count": 2
          },
          "replyHint": "Tell Holmes what kind of doctor he is",
          "displayName": "Free-form",
          "text": "",
          "intent": {
            "voiceNote": "Holmes keeps what Watson got right (a country doctor who walks a great deal) and corrects the rest (young, left Charing Cross Hospital, absent-minded: he left his stick and no card). Up to two replies, so the player can argue the correction. The hint points at the choice in the question."
          },
          "next": [
            {
              "targetNodeId": "node:sh-ep01:tell-holmes-stick:closing"
            }
          ],
          "graphPosition": {
            "x": 80,
            "y": 230
          }
        },
        {
          "nodeId": "node:sh-ep01:tell-holmes-stick:closing",
          "displayName": "Closing line",
          "text": "Someone is knocking. That will be our man, come back for his stick. Go and let him in, Watson.",
          "intent": {
            "mustConveyFacts": [
              "someone is knocking at the door",
              "it is probably the owner of the stick",
              "Holmes sends Watson to open the door"
            ],
            "beat": "At the mantel, after Watson has examined the stick: Holmes asks what Watson makes of its owner. He keeps what Watson got right (a country doctor who walks a great deal) and corrects the rest (a young man who left Charing Cross Hospital, absent-minded enough to leave his stick and no card). Then a knock at the door. (The Hound of the Baskervilles, ch. 1; the spaniel is cut.)",
            "voiceNote": "Holmes: brisk and amused, short sentences, conclusion first; addresses Watson and stops. The line sends Watson to the door, and the tracker says the same."
          },
          "next": [],
          "graphPosition": {
            "x": 80,
            "y": 380
          }
        }
      ],
      "groups": [],
      "interactionBinding": {
        "npcDefinitionId": "minis:npc:holmes"
      }
    },
    {
      "definitionId": "node:sh-ep01:talk-mortimer:dialogue",
      "displayName": "Talk to Mortimer",
      "startNodeId": "node:sh-ep01:talk-mortimer:opening",
      "nodes": [
        {
          "nodeId": "node:sh-ep01:talk-mortimer:opening",
          "displayName": "Opening line",
          "text": "Good morning! My name is Mortimer, James Mortimer, a doctor from Dartmoor. My hat is on my head, at least, but my stick? I left it here last night. Where is my stick?",
          "intent": {
            "mustConveyFacts": [
              "he greets Watson",
              "his name is James Mortimer",
              "he is a doctor from Dartmoor",
              "his hat is on his head",
              "he left his stick here last night",
              "he asks where his stick is"
            ],
            "beat": "At the 221B door, after the knock: Mortimer introduces himself and asks after his stick, which lies on the hearth rug. He is glad of it, and says why he came: Sir Henry Baskerville reaches Waterloo within the hour, but first Holmes must hear a story. (ch. 1 and 2)",
            "voiceNote": "Mortimer: eager and kind, a little absent-minded, exact about places and times; addresses Watson and stops. The confidence: he owns up to being absent-minded, and asks where the stick is. He greets, gives his name and says where his hat is before he asks, so the player hears each form first. The stick lies on the hearth rug on every route."
          },
          "next": [
            {
              "targetNodeId": "node:sh-ep01:talk-mortimer:talk"
            }
          ],
          "graphPosition": {
            "x": 80,
            "y": 80
          }
        },
        {
          "nodeId": "node:sh-ep01:talk-mortimer:talk",
          "kind": "free-form",
          "closeWhen": {
            "kind": "replies",
            "count": 1
          },
          "replyHint": "Tell him where his stick is",
          "displayName": "Free-form",
          "text": "",
          "intent": {
            "voiceNote": "Mortimer is delighted to have his stick back and thanks Watson warmly, as a fellow medical man. One reply. The hint points at where the stick is."
          },
          "next": [
            {
              "targetNodeId": "node:sh-ep01:talk-mortimer:closing"
            }
          ],
          "graphPosition": {
            "x": 80,
            "y": 230
          }
        },
        {
          "nodeId": "node:sh-ep01:talk-mortimer:closing",
          "displayName": "Closing line",
          "text": "Ah, on the hearth rug! Thank you. Sir Henry Baskerville reaches Waterloo within the hour. But first, Mr Holmes must hear a story.",
          "intent": {
            "mustConveyFacts": [
              "the stick is on the hearth rug",
              "Mortimer thanks Watson",
              "Sir Henry Baskerville arrives at Waterloo station within the hour",
              "first Mortimer will tell Holmes a story"
            ],
            "beat": "At the 221B door, after the knock: Mortimer introduces himself and asks after his stick, which lies on the hearth rug. He is glad of it, and says why he came: Sir Henry Baskerville reaches Waterloo within the hour, but first Holmes must hear a story. (ch. 1 and 2)",
            "voiceNote": "Mortimer: eager and kind, a little absent-minded, exact about places and times; addresses Watson and stops. This line plants Sir Henry and Waterloo for the invitation, and names the story he tells next, which plays when the panel closes."
          },
          "next": [],
          "graphPosition": {
            "x": 80,
            "y": 380
          }
        }
      ],
      "groups": [],
      "interactionBinding": {
        "npcDefinitionId": "minis:npc:mortimer"
      }
    },
    {
      "definitionId": "node:sh-ep01:tell-holmes-manuscript:dialogue",
      "displayName": "Tell Holmes about the manuscript",
      "startNodeId": "node:sh-ep01:tell-holmes-manuscript:opening",
      "nodes": [
        {
          "nodeId": "node:sh-ep01:tell-holmes-manuscript:opening",
          "displayName": "Opening line",
          "text": "A fairy tale, Watson, for collectors of fairy tales. I heard a wicked man and a girl on the moor, and then I shut my eyes. Who was the man, and what did he do?",
          "intent": {
            "mustConveyFacts": [
              "Holmes calls the legend a fairy tale",
              "he heard about a wicked man and a girl on the moor",
              "then he shut his eyes and stopped listening",
              "he asks Watson who the man was and what he did"
            ],
            "beat": "At the mantel, after Mortimer's telling and after Watson has read the manuscript: Holmes calls the legend a fairy tale, admits he shut his eyes, and asks Watson what Hugo did; then the probe, what was at Hugo's throat; then he sends Watson to the newspaper. (ch. 2; the beast is a hound)",
            "voiceNote": "Holmes: brisk and amused, short sentences, conclusion first; addresses Watson and stops. Bored by the legend and happy to say so. He retells a little in the past before he asks Watson to retell the rest."
          },
          "next": [
            {
              "targetNodeId": "node:sh-ep01:tell-holmes-manuscript:talk"
            }
          ],
          "graphPosition": {
            "x": 80,
            "y": 80
          }
        },
        {
          "nodeId": "node:sh-ep01:tell-holmes-manuscript:talk",
          "kind": "free-form",
          "closeWhen": {
            "kind": "replies",
            "count": 1
          },
          "replyHint": "Tell Holmes what the wicked man did",
          "displayName": "His reaction to the story",
          "text": "",
          "intent": {
            "voiceNote": "Holmes takes Watson's retelling with dry amusement: a fairy tale, but a well told one. One reply. The hint points at what Hugo did, which the legend and the manuscript both tell."
          },
          "next": [
            {
              "targetNodeId": "node:sh-ep01:tell-holmes-manuscript:probe"
            }
          ],
          "graphPosition": {
            "x": 80,
            "y": 230
          }
        },
        {
          "nodeId": "node:sh-ep01:tell-holmes-manuscript:probe",
          "shuffleChoices": true,
          "displayName": "What was at Hugo's throat",
          "text": "One fact, then, and I am awake for it. When they found Hugo, what was at his throat?",
          "intent": {
            "mustConveyFacts": [
              "Holmes wants one fact from the story",
              "Hugo was found dead",
              "Holmes asks what was at Hugo's throat"
            ],
            "beat": "At the mantel, after Mortimer's telling and after Watson has read the manuscript: Holmes calls the legend a fairy tale, admits he shut his eyes, and asks Watson what Hugo did; then the probe, what was at Hugo's throat; then he sends Watson to the newspaper. (ch. 2; the beast is a hound)",
            "voiceNote": "Holmes: brisk and amused, short sentences, conclusion first; addresses Watson and stops. He wakes up at a physical fact. The probe: one option fits (the hound); the girl and his horse are from the telling, so every option can be wrong."
          },
          "next": [
            {
              "targetNodeId": "node:sh-ep01:tell-holmes-manuscript:react",
              "choiceText": "the hound",
              "annotations": {
                "sugarlang": {
                  "fits": true
                }
              }
            },
            {
              "targetNodeId": "node:sh-ep01:tell-holmes-manuscript:react",
              "choiceText": "the girl"
            },
            {
              "targetNodeId": "node:sh-ep01:tell-holmes-manuscript:react",
              "choiceText": "his horse"
            }
          ],
          "graphPosition": {
            "x": 80,
            "y": 380
          }
        },
        {
          "nodeId": "node:sh-ep01:tell-holmes-manuscript:react",
          "kind": "free-form",
          "closeWhen": {
            "kind": "replies",
            "count": 0
          },
          "displayName": "His reaction to the answer",
          "text": "",
          "next": [
            {
              "targetNodeId": "node:sh-ep01:tell-holmes-manuscript:closing"
            }
          ],
          "graphPosition": {
            "x": 80,
            "y": 530
          }
        },
        {
          "nodeId": "node:sh-ep01:tell-holmes-manuscript:closing",
          "displayName": "Closing line",
          "text": "Enough of legends. Our visitor laid a newspaper on the table as well. Read it, Watson, and then come back to me.",
          "intent": {
            "mustConveyFacts": [
              "Holmes has had enough of the legend",
              "there is a newspaper on the table",
              "Holmes sends Watson to read the newspaper"
            ],
            "beat": "At the mantel, after Mortimer's telling and after Watson has read the manuscript: Holmes calls the legend a fairy tale, admits he shut his eyes, and asks Watson what Hugo did; then the probe, what was at Hugo's throat; then he sends Watson to the newspaper. (ch. 2; the beast is a hound)",
            "voiceNote": "Holmes: brisk and amused, short sentences, conclusion first; addresses Watson and stops. The line sends Watson to the newspaper, and the tracker says the same."
          },
          "next": [],
          "graphPosition": {
            "x": 80,
            "y": 680
          }
        }
      ],
      "groups": [],
      "interactionBinding": {
        "npcDefinitionId": "minis:npc:holmes"
      }
    },
    {
      "definitionId": "node:sh-ep01:tell-holmes-newspaper:dialogue",
      "displayName": "Tell Holmes about the newspaper",
      "startNodeId": "node:sh-ep01:tell-holmes-newspaper:opening",
      "nodes": [
        {
          "nodeId": "node:sh-ep01:tell-holmes-newspaper:opening",
          "displayName": "Opening line",
          "text": "The coroner thinks it was his heart, because there was no mark on him. I heard that whisper too, Watson. What do you think: his heart, or something else?",
          "intent": {
            "mustConveyFacts": [
              "the coroner thinks Sir Charles died of his heart",
              "the reason is that there was no mark on him",
              "Holmes heard Mortimer's whisper too",
              "Holmes asks what Watson thinks: his heart, or something else"
            ],
            "beat": "At the mantel, after Watson has read the newspaper and heard Mortimer's whisper about the footprints: Holmes gives the coroner's view and asks what Watson thinks killed Sir Charles. Holmes wakes up at the footprints, a physical fact, then hears wheels in the street. (ch. 2 and 3)",
            "voiceNote": "Holmes: brisk and amused, short sentences, conclusion first; addresses Watson and stops. The offered choice. He gives a view and its reason before he asks for Watson's, and points back at the whisper about the footprints without repeating it."
          },
          "next": [
            {
              "targetNodeId": "node:sh-ep01:tell-holmes-newspaper:talk"
            }
          ],
          "graphPosition": {
            "x": 80,
            "y": 80
          }
        },
        {
          "nodeId": "node:sh-ep01:tell-holmes-newspaper:talk",
          "kind": "free-form",
          "closeWhen": {
            "kind": "replies",
            "count": 1
          },
          "replyHint": "Tell Holmes what killed Sir Charles",
          "displayName": "Free-form",
          "text": "",
          "intent": {
            "voiceNote": "Holmes takes the footprints seriously, whatever Watson answers; he has no theory yet and says a guess is a guess. One reply. The hint points at the choice in the question."
          },
          "next": [
            {
              "targetNodeId": "node:sh-ep01:tell-holmes-newspaper:closing"
            }
          ],
          "graphPosition": {
            "x": 80,
            "y": 230
          }
        },
        {
          "nodeId": "node:sh-ep01:tell-holmes-newspaper:closing",
          "displayName": "Closing line",
          "text": "A ghostly hound is a fairy tale, but footprints are a fact. Listen: wheels in the street. Go to the window, Watson.",
          "intent": {
            "mustConveyFacts": [
              "Holmes says the ghostly hound is a fairy tale",
              "he says the footprints are a fact",
              "there are wheels in the street",
              "Holmes sends Watson to the window"
            ],
            "beat": "At the mantel, after Watson has read the newspaper and heard Mortimer's whisper about the footprints: Holmes gives the coroner's view and asks what Watson thinks killed Sir Charles. Holmes wakes up at the footprints, a physical fact, then hears wheels in the street. (ch. 2 and 3)",
            "voiceNote": "Holmes: brisk and amused, short sentences, conclusion first; addresses Watson and stops. Now awake to the case. The line sends Watson to the window, and the tracker says the same."
          },
          "next": [],
          "graphPosition": {
            "x": 80,
            "y": 380
          }
        }
      ],
      "groups": [],
      "interactionBinding": {
        "npcDefinitionId": "minis:npc:holmes"
      }
    },
    {
      "definitionId": "node:sh-ep01:invite-watson:dialogue",
      "displayName": "Answer Holmes",
      "startNodeId": "node:sh-ep01:invite-watson:opening",
      "nodes": [
        {
          "nodeId": "node:sh-ep01:invite-watson:opening",
          "displayName": "Opening line",
          "text": "That cab is for Mortimer. Sir Henry reaches Waterloo within the hour, and I am going now. Will you come with me, Watson, or stay by the fire?",
          "intent": {
            "mustConveyFacts": [
              "the cab in the street is for Mortimer",
              "Sir Henry arrives at Waterloo station within the hour",
              "Holmes is going now",
              "Holmes asks Watson to come with him or stay by the fire"
            ],
            "beat": "At the mantel, after Watson has seen the cab from the window: Holmes invites Watson to come and meet Sir Henry at Waterloo, and reacts to what Watson says, yes or no. The payoff of the episode: an invitation, and the player being understood. (Stated liberty: in the novel Holmes sends Mortimer to meet Sir Henry.)",
            "voiceNote": "Holmes: brisk and amused, short sentences, conclusion first; addresses Watson and stops. Glad of Watson and not fussing about it. The offered choice: come, or stay. He says what he will do and when before he asks."
          },
          "next": [
            {
              "targetNodeId": "node:sh-ep01:invite-watson:talk"
            }
          ],
          "graphPosition": {
            "x": 80,
            "y": 80
          }
        },
        {
          "nodeId": "node:sh-ep01:invite-watson:talk",
          "kind": "free-form",
          "closeWhen": {
            "kind": "replies",
            "count": 1
          },
          "replyHint": "Tell Holmes whether you will come",
          "displayName": "Free-form",
          "text": "",
          "intent": {
            "voiceNote": "Holmes reacts to what Watson said, yes or no, in the language he said it: pleased at a yes, dry and kind at a no. One reply. The hint points at the choice in the question."
          },
          "next": [
            {
              "targetNodeId": "node:sh-ep01:invite-watson:closing"
            }
          ],
          "graphPosition": {
            "x": 80,
            "y": 230
          }
        },
        {
          "nodeId": "node:sh-ep01:invite-watson:closing",
          "displayName": "Closing line",
          "text": "Then it is settled. Mortimer, your cab is waiting, and Waterloo will not wait.",
          "intent": {
            "mustConveyFacts": [
              "the matter is settled",
              "Mortimer's cab is waiting",
              "Waterloo will not wait: it is time to go"
            ],
            "beat": "At the mantel, after Watson has seen the cab from the window: Holmes invites Watson to come and meet Sir Henry at Waterloo, and reacts to what Watson says, yes or no. The payoff of the episode: an invitation, and the player being understood. (Stated liberty: in the novel Holmes sends Mortimer to meet Sir Henry.)",
            "voiceNote": "Holmes: brisk and amused, short sentences, conclusion first; addresses Watson and stops. Reads true for a yes or a no. It names no next step: the closing card follows when the panel closes."
          },
          "next": [],
          "graphPosition": {
            "x": 80,
            "y": 380
          }
        }
      ],
      "groups": [],
      "interactionBinding": {
        "npcDefinitionId": "minis:npc:holmes"
      }
    },
    {
      "definitionId": "dlg:sh-ep01:close",
      "displayName": "The close",
      "startNodeId": "dlg:sh-ep01:close:line-1",
      "nodes": [
        {
          "nodeId": "dlg:sh-ep01:close:line-1",
          "displayName": "The close 1/1",
          "speakerId": "1a44e7dd-fd2c-4862-a489-59692155e406",
          "speakerLabel": "",
          "text": "The cab rattled away down Baker Street, towards Waterloo. Sir Henry Baskerville was coming to London. The case had begun.",
          "intent": {
            "mustConveyFacts": [
              "the cab leaves Baker Street for Waterloo",
              "Sir Henry Baskerville is coming to London",
              "the case has begun"
            ],
            "beat": "The payoff card, after Holmes's invitation to Waterloo; the end card follows it. It reads true whether Watson went in the cab or stayed by the fire, so it never says who is in the cab. It opens the next episode, Sir Henry. (Stated liberty: in the novel Holmes sends Mortimer alone to meet Sir Henry.)",
            "voiceNote": "Narrator: plain and short, a door opening. Nothing Watson says or chose."
          },
          "next": [],
          "graphPosition": {
            "x": 80,
            "y": 80
          }
        }
      ],
      "groups": [],
      "interactionBinding": {
        "npcDefinitionId": null
      }
    }
  ],
  "questDefinitions": [
    {
      "definitionId": "quest:sh-ep01:beats",
      "displayName": "Episode 1: The Curse of the Baskervilles",
      "description": "Watson looks and tells: he examines the stick, the manuscript and the newspaper and reports each to Holmes; Mortimer comes to the door and tells the legend and the death; at the window Holmes invites Watson to meet Sir Henry at Waterloo.",
      "startStageId": "stage:sh-ep01:sitting-room",
      "stageDefinitions": [
        {
          "stageId": "stage:sh-ep01:sitting-room",
          "displayName": "The sitting room",
          "nextStageId": null,
          "timeOfDay": null,
          "nodeDefinitions": [
            {
              "nodeId": "node:sh-ep01:arrive-stick",
              "displayName": "Stand on the hearth rug",
              "description": "The player walks into area:beat-stick.",
              "nodeBehavior": "objective",
              "objectiveSubtype": "location",
              "targetAreaId": "area:beat-stick",
              "count": 1,
              "optional": false,
              "autoStart": false,
              "prerequisiteNodeIds": [],
              "failTargetNodeIds": [],
              "onEnterActions": [],
              "onCompleteActions": [],
              "showInHud": false,
              "countsTowardProgress": false,
              "autoLaunch": false,
              "graphPosition": {
                "x": 80,
                "y": 80
              }
            },
            {
              "nodeId": "node:sh-ep01:play-open",
              "displayName": "Play: The morning",
              "description": "Starts dialogue dlg:sh-ep01:open.",
              "nodeBehavior": "narrative",
              "narrativeSubtype": "dialogue",
              "count": 1,
              "optional": false,
              "dialogueDefinitionId": "dlg:sh-ep01:open",
              "autoStart": false,
              "prerequisiteNodeIds": [
                "node:sh-ep01:arrive-stick"
              ],
              "failTargetNodeIds": [],
              "onEnterActions": [],
              "onCompleteActions": [],
              "showInHud": false,
              "countsTowardProgress": false,
              "autoLaunch": false,
              "graphPosition": {
                "x": 380,
                "y": 80
              }
            },
            {
              "nodeId": "node:sh-ep01:look-stick",
              "displayName": "Examine the stick",
              "description": "Completes when the player opens inspectable:sh-ep01:stick.",
              "nodeBehavior": "objective",
              "objectiveSubtype": "inspect",
              "targetId": "inspectable:sh-ep01:stick",
              "count": 1,
              "optional": false,
              "autoStart": false,
              "prerequisiteNodeIds": [
                "node:sh-ep01:play-open"
              ],
              "failTargetNodeIds": [],
              "onEnterActions": [],
              "onCompleteActions": [],
              "showInHud": true,
              "countsTowardProgress": false,
              "autoLaunch": false,
              "graphPosition": {
                "x": 80,
                "y": 200
              }
            },
            {
              "nodeId": "node:sh-ep01:tell-holmes-stick",
              "displayName": "Tell Holmes what you make of the stick",
              "description": "Completes when the player opens a conversation with them.",
              "nodeBehavior": "objective",
              "objectiveSubtype": "talk",
              "targetId": "minis:npc:holmes",
              "count": 1,
              "optional": false,
              "dialogueDefinitionId": "node:sh-ep01:tell-holmes-stick:dialogue",
              "completeOn": "dialogueEnd",
              "autoStart": false,
              "prerequisiteNodeIds": [
                "node:sh-ep01:look-stick"
              ],
              "failTargetNodeIds": [],
              "onEnterActions": [],
              "onCompleteActions": [
                {
                  "type": "playCue",
                  "cueDefinitionId": "minis:sound-cue:knock-221b"
                }
              ],
              "showInHud": true,
              "countsTowardProgress": true,
              "autoLaunch": false,
              "graphPosition": {
                "x": 380,
                "y": 200
              }
            },
            {
              "nodeId": "node:sh-ep01:arrive-door",
              "displayName": "Answer the door",
              "description": "The player walks into area:beat-door.",
              "nodeBehavior": "objective",
              "objectiveSubtype": "location",
              "targetAreaId": "area:beat-door",
              "count": 1,
              "optional": false,
              "autoStart": false,
              "prerequisiteNodeIds": [
                "node:sh-ep01:tell-holmes-stick"
              ],
              "failTargetNodeIds": [],
              "onEnterActions": [],
              "onCompleteActions": [],
              "showInHud": true,
              "countsTowardProgress": false,
              "autoLaunch": false,
              "graphPosition": {
                "x": 80,
                "y": 320
              }
            },
            {
              "nodeId": "node:sh-ep01:talk-mortimer",
              "displayName": "Talk to Mortimer",
              "description": "Completes when the player opens a conversation with them.",
              "nodeBehavior": "objective",
              "objectiveSubtype": "talk",
              "targetId": "minis:npc:mortimer",
              "count": 1,
              "optional": false,
              "dialogueDefinitionId": "node:sh-ep01:talk-mortimer:dialogue",
              "completeOn": "dialogueEnd",
              "autoStart": false,
              "prerequisiteNodeIds": [
                "node:sh-ep01:arrive-door"
              ],
              "failTargetNodeIds": [],
              "onEnterActions": [],
              "onCompleteActions": [],
              "showInHud": true,
              "countsTowardProgress": false,
              "autoLaunch": false,
              "graphPosition": {
                "x": 380,
                "y": 320
              }
            },
            {
              "nodeId": "node:sh-ep01:play-legend",
              "displayName": "Play: The legend",
              "description": "Starts dialogue dlg:sh-ep01:legend.",
              "nodeBehavior": "narrative",
              "narrativeSubtype": "dialogue",
              "count": 1,
              "optional": false,
              "dialogueDefinitionId": "dlg:sh-ep01:legend",
              "autoStart": false,
              "prerequisiteNodeIds": [
                "node:sh-ep01:talk-mortimer"
              ],
              "failTargetNodeIds": [],
              "onEnterActions": [],
              "onCompleteActions": [],
              "showInHud": false,
              "countsTowardProgress": false,
              "autoLaunch": false,
              "graphPosition": {
                "x": 80,
                "y": 440
              }
            },
            {
              "nodeId": "node:sh-ep01:play-death",
              "displayName": "Play: The death",
              "description": "Starts dialogue dlg:sh-ep01:death.",
              "nodeBehavior": "narrative",
              "narrativeSubtype": "dialogue",
              "count": 1,
              "optional": false,
              "dialogueDefinitionId": "dlg:sh-ep01:death",
              "autoStart": false,
              "prerequisiteNodeIds": [
                "node:sh-ep01:play-legend"
              ],
              "failTargetNodeIds": [],
              "onEnterActions": [],
              "onCompleteActions": [],
              "showInHud": false,
              "countsTowardProgress": false,
              "autoLaunch": false,
              "graphPosition": {
                "x": 380,
                "y": 440
              }
            },
            {
              "nodeId": "node:sh-ep01:look-manuscript",
              "displayName": "Examine the manuscript",
              "description": "Completes when the player opens inspectable:sh-ep01:manuscript.",
              "nodeBehavior": "objective",
              "objectiveSubtype": "inspect",
              "targetId": "inspectable:sh-ep01:manuscript",
              "count": 1,
              "optional": false,
              "autoStart": false,
              "prerequisiteNodeIds": [
                "node:sh-ep01:play-death"
              ],
              "failTargetNodeIds": [],
              "onEnterActions": [],
              "onCompleteActions": [],
              "showInHud": true,
              "countsTowardProgress": false,
              "autoLaunch": false,
              "graphPosition": {
                "x": 80,
                "y": 560
              }
            },
            {
              "nodeId": "node:sh-ep01:tell-holmes-manuscript",
              "displayName": "Tell Holmes about the manuscript",
              "description": "Completes when the player opens a conversation with them.",
              "nodeBehavior": "objective",
              "objectiveSubtype": "talk",
              "targetId": "minis:npc:holmes",
              "count": 1,
              "optional": false,
              "dialogueDefinitionId": "node:sh-ep01:tell-holmes-manuscript:dialogue",
              "completeOn": "dialogueEnd",
              "autoStart": false,
              "prerequisiteNodeIds": [
                "node:sh-ep01:look-manuscript"
              ],
              "failTargetNodeIds": [],
              "onEnterActions": [],
              "onCompleteActions": [],
              "showInHud": true,
              "countsTowardProgress": true,
              "autoLaunch": false,
              "graphPosition": {
                "x": 380,
                "y": 560
              }
            },
            {
              "nodeId": "node:sh-ep01:look-newspaper",
              "displayName": "Examine the newspaper",
              "description": "Completes when the player opens inspectable:sh-ep01:newspaper.",
              "nodeBehavior": "objective",
              "objectiveSubtype": "inspect",
              "targetId": "inspectable:sh-ep01:newspaper",
              "count": 1,
              "optional": false,
              "autoStart": false,
              "prerequisiteNodeIds": [
                "node:sh-ep01:tell-holmes-manuscript"
              ],
              "failTargetNodeIds": [],
              "onEnterActions": [],
              "onCompleteActions": [],
              "showInHud": true,
              "countsTowardProgress": false,
              "autoLaunch": false,
              "graphPosition": {
                "x": 80,
                "y": 680
              }
            },
            {
              "nodeId": "node:sh-ep01:tell-holmes-newspaper",
              "displayName": "Tell Holmes about the newspaper",
              "description": "Completes when the player opens a conversation with them.",
              "nodeBehavior": "objective",
              "objectiveSubtype": "talk",
              "targetId": "minis:npc:holmes",
              "count": 1,
              "optional": false,
              "dialogueDefinitionId": "node:sh-ep01:tell-holmes-newspaper:dialogue",
              "completeOn": "dialogueEnd",
              "autoStart": false,
              "prerequisiteNodeIds": [
                "node:sh-ep01:look-newspaper"
              ],
              "failTargetNodeIds": [],
              "onEnterActions": [],
              "onCompleteActions": [],
              "showInHud": true,
              "countsTowardProgress": true,
              "autoLaunch": false,
              "graphPosition": {
                "x": 380,
                "y": 680
              }
            },
            {
              "nodeId": "node:sh-ep01:arrive-window",
              "displayName": "Look out of the window",
              "description": "The player walks into area:beat-window-221b.",
              "nodeBehavior": "objective",
              "objectiveSubtype": "location",
              "targetAreaId": "area:beat-window-221b",
              "count": 1,
              "optional": false,
              "autoStart": false,
              "prerequisiteNodeIds": [
                "node:sh-ep01:tell-holmes-newspaper"
              ],
              "failTargetNodeIds": [],
              "onEnterActions": [],
              "onCompleteActions": [],
              "showInHud": true,
              "countsTowardProgress": false,
              "autoLaunch": false,
              "graphPosition": {
                "x": 80,
                "y": 800
              }
            },
            {
              "nodeId": "node:sh-ep01:invite-watson",
              "displayName": "Answer Holmes",
              "description": "Completes when the player opens a conversation with them.",
              "nodeBehavior": "objective",
              "objectiveSubtype": "talk",
              "targetId": "minis:npc:holmes",
              "count": 1,
              "optional": false,
              "dialogueDefinitionId": "node:sh-ep01:invite-watson:dialogue",
              "completeOn": "dialogueEnd",
              "autoStart": false,
              "prerequisiteNodeIds": [
                "node:sh-ep01:arrive-window"
              ],
              "failTargetNodeIds": [],
              "onEnterActions": [],
              "onCompleteActions": [],
              "showInHud": true,
              "countsTowardProgress": false,
              "autoLaunch": false,
              "graphPosition": {
                "x": 380,
                "y": 800
              }
            },
            {
              "nodeId": "node:sh-ep01:play-close",
              "displayName": "Play: The close",
              "description": "Starts dialogue dlg:sh-ep01:close.",
              "nodeBehavior": "narrative",
              "narrativeSubtype": "dialogue",
              "count": 1,
              "optional": false,
              "dialogueDefinitionId": "dlg:sh-ep01:close",
              "autoStart": false,
              "prerequisiteNodeIds": [
                "node:sh-ep01:invite-watson"
              ],
              "failTargetNodeIds": [],
              "onEnterActions": [],
              "onCompleteActions": [],
              "showInHud": false,
              "countsTowardProgress": false,
              "autoLaunch": false,
              "graphPosition": {
                "x": 80,
                "y": 920
              }
            }
          ],
          "groups": [],
          "entryNodeIds": [
            "node:sh-ep01:arrive-stick"
          ]
        }
      ],
      "rewardDefinitions": [],
      "progressDisplay": {
        "style": "icons",
        "icon": "magnifying-glass"
      }
    }
  ],
  "menuDefinitions": [
    {
      "definitionId": "minis:menu:start",
      "definitionKind": "menu",
      "displayName": "Start Menu",
      "menuKey": "start-menu",
      "root": {
        "nodeId": "minis:ui:start-menu:root",
        "kind": "container",
        "styleId": "panel",
        "layout": {
          "direction": "column",
          "gap": 18,
          "padding": 36,
          "align": "stretch",
          "justify": "center",
          "width": 420,
          "height": "auto"
        },
        "anchor": null,
        "props": {},
        "events": {},
        "children": [
          {
            "nodeId": "minis:ui:start-menu:title",
            "kind": "text",
            "styleId": "heading",
            "layout": {
              "direction": "column",
              "gap": 12,
              "padding": 16,
              "align": "center",
              "justify": "center",
              "width": "auto",
              "height": "auto"
            },
            "anchor": null,
            "props": {
              "text": {
                "kind": "literal",
                "value": "Sugarmagic"
              }
            },
            "events": {},
            "children": [],
            "visibility": "always"
          },
          {
            "nodeId": "minis:ui:start-menu:new-game",
            "kind": "button",
            "styleId": "button-primary",
            "layout": {
              "direction": "column",
              "gap": 12,
              "padding": 14,
              "align": "center",
              "justify": "center",
              "width": "fill",
              "height": "auto"
            },
            "anchor": null,
            "props": {
              "text": {
                "kind": "literal",
                "value": "New Game"
              }
            },
            "events": {
              "onClick": {
                "action": "start-new-game"
              }
            },
            "children": [],
            "visibility": "always"
          },
          {
            "nodeId": "minis:ui:start-menu:episodes",
            "kind": "button",
            "styleId": "button-primary",
            "layout": {
              "direction": "column",
              "gap": 12,
              "padding": 14,
              "align": "center",
              "justify": "center",
              "width": "fill",
              "height": "auto"
            },
            "anchor": null,
            "props": {
              "text": {
                "kind": "literal",
                "value": "Episodes"
              }
            },
            "events": {
              "onClick": {
                "action": "open-episodes"
              }
            },
            "children": [],
            "visibility": "always"
          },
          {
            "nodeId": "minis:ui:start-menu:settings",
            "kind": "button",
            "styleId": "button-primary",
            "layout": {
              "direction": "column",
              "gap": 12,
              "padding": 14,
              "align": "center",
              "justify": "center",
              "width": "fill",
              "height": "auto"
            },
            "anchor": null,
            "props": {
              "text": {
                "kind": "literal",
                "value": "Settings"
              }
            },
            "events": {},
            "children": [],
            "visibility": "always"
          },
          {
            "nodeId": "minis:ui:start-menu:exit",
            "kind": "button",
            "styleId": "button-primary",
            "layout": {
              "direction": "column",
              "gap": 12,
              "padding": 14,
              "align": "center",
              "justify": "center",
              "width": "fill",
              "height": "auto"
            },
            "anchor": null,
            "props": {
              "text": {
                "kind": "literal",
                "value": "Exit"
              }
            },
            "events": {
              "onClick": {
                "action": "exit-to-site"
              }
            },
            "children": [],
            "visibility": "always"
          }
        ],
        "visibility": "always"
      }
    },
    {
      "definitionId": "minis:menu:pause",
      "definitionKind": "menu",
      "displayName": "Pause Menu",
      "menuKey": "pause-menu",
      "root": {
        "nodeId": "minis:ui:pause-menu:root",
        "kind": "container",
        "styleId": "panel",
        "layout": {
          "direction": "column",
          "gap": 16,
          "padding": 32,
          "align": "stretch",
          "justify": "center",
          "width": 360,
          "height": "auto"
        },
        "anchor": null,
        "props": {},
        "events": {},
        "children": [
          {
            "nodeId": "minis:ui:pause-menu:title",
            "kind": "text",
            "styleId": "heading",
            "layout": {
              "direction": "column",
              "gap": 12,
              "padding": 16,
              "align": "center",
              "justify": "center",
              "width": "auto",
              "height": "auto"
            },
            "anchor": null,
            "props": {
              "text": {
                "kind": "literal",
                "value": "Paused"
              }
            },
            "events": {},
            "children": [],
            "visibility": "always"
          },
          {
            "nodeId": "minis:ui:pause-menu:resume",
            "kind": "button",
            "styleId": "button-primary",
            "layout": {
              "direction": "column",
              "gap": 12,
              "padding": 14,
              "align": "center",
              "justify": "center",
              "width": "fill",
              "height": "auto"
            },
            "anchor": null,
            "props": {
              "text": {
                "kind": "literal",
                "value": "Resume"
              }
            },
            "events": {
              "onClick": {
                "action": "resume-game"
              }
            },
            "children": [],
            "visibility": "always"
          },
          {
            "nodeId": "minis:ui:pause-menu:quit",
            "kind": "button",
            "styleId": "button-primary",
            "layout": {
              "direction": "column",
              "gap": 12,
              "padding": 14,
              "align": "center",
              "justify": "center",
              "width": "fill",
              "height": "auto"
            },
            "anchor": null,
            "props": {
              "text": {
                "kind": "literal",
                "value": "Main Menu"
              }
            },
            "events": {
              "onClick": {
                "action": "quit-to-menu"
              }
            },
            "children": [],
            "visibility": "always"
          }
        ],
        "visibility": "always"
      }
    }
  ],
  "hudDefinition": {
    "definitionId": "minis:hud:default",
    "definitionKind": "hud",
    "root": {
      "nodeId": "minis:ui:hud:root",
      "kind": "container",
      "styleId": null,
      "layout": {
        "direction": "column",
        "gap": 12,
        "padding": 20,
        "align": "start",
        "justify": "start",
        "width": "fill",
        "height": "fill"
      },
      "anchor": null,
      "props": {},
      "events": {},
      "children": [
        {
          "nodeId": "minis:ui:hud:bottom-bar",
          "kind": "container",
          "styleId": null,
          "layout": {
            "direction": "row",
            "gap": 12,
            "padding": 0,
            "align": "center",
            "justify": "center",
            "width": "auto",
            "height": "auto"
          },
          "anchor": "bottom-center",
          "props": {},
          "events": {},
          "children": [
            {
              "nodeId": "minis:ui:hud:inventory",
              "kind": "button",
              "styleId": "button-hud",
              "layout": {
                "direction": "column",
                "gap": 12,
                "padding": 8,
                "align": "center",
                "justify": "center",
                "width": "auto",
                "height": "auto"
              },
              "anchor": null,
              "props": {
                "text": {
                  "kind": "literal",
                  "value": "🎒"
                }
              },
              "events": {
                "onClick": {
                  "action": "open-inventory"
                }
              },
              "children": [],
              "visibility": "always"
            },
            {
              "nodeId": "minis:ui:hud:caster",
              "kind": "button",
              "styleId": "button-hud",
              "layout": {
                "direction": "column",
                "gap": 12,
                "padding": 8,
                "align": "center",
                "justify": "center",
                "width": "auto",
                "height": "auto"
              },
              "anchor": null,
              "props": {
                "text": {
                  "kind": "literal",
                  "value": "✨"
                }
              },
              "events": {
                "onClick": {
                  "action": "open-caster"
                }
              },
              "children": [],
              "visibility": "always"
            },
            {
              "nodeId": "minis:ui:hud:main",
              "kind": "button",
              "styleId": "button-hud",
              "layout": {
                "direction": "column",
                "gap": 12,
                "padding": 8,
                "align": "center",
                "justify": "center",
                "width": "auto",
                "height": "auto"
              },
              "anchor": null,
              "props": {
                "text": {
                  "kind": "literal",
                  "value": "🏠"
                }
              },
              "events": {
                "onClick": {
                  "action": "quit-to-menu"
                }
              },
              "children": [],
              "visibility": "always"
            }
          ],
          "visibility": "always"
        }
      ],
      "visibility": "always"
    }
  },
  "uiTheme": {
    "tokens": {
      "color.text": "#f6f1ff",
      "color.muted": "#beb7d8",
      "color.surface": "rgba(18, 18, 32, 0.82)",
      "color.surfaceStrong": "rgba(29, 29, 52, 0.92)",
      "color.surfaceMuted": "rgba(15, 17, 28, 0.45)",
      "color.primary": "#ff4aa2",
      "color.primaryText": "#fff7fb",
      "font.body": "Avenir Next, Nunito, sans-serif",
      "font.heading": "Georgia, ui-serif, serif",
      "radius.panel": "24px",
      "radius.button": "999px"
    },
    "styles": [
      {
        "styleId": "panel",
        "displayName": "Panel",
        "properties": {
          "color": "color.text",
          "background": "color.surface",
          "fontFamily": "font.body",
          "borderRadius": "radius.panel",
          "borderColor": "rgba(255, 255, 255, 0.16)",
          "borderWidth": "1px"
        }
      },
      {
        "styleId": "heading",
        "displayName": "Heading",
        "properties": {
          "color": "color.text",
          "fontFamily": "font.heading",
          "fontSize": "44px",
          "fontWeight": "700"
        }
      },
      {
        "styleId": "body",
        "displayName": "Body",
        "properties": {
          "color": "color.text",
          "fontFamily": "font.body",
          "fontSize": "16px"
        }
      },
      {
        "styleId": "button-primary",
        "displayName": "Primary Button",
        "properties": {
          "color": "color.primaryText",
          "background": "color.primary",
          "fontFamily": "font.body",
          "fontSize": "16px",
          "fontWeight": "700",
          "borderRadius": "radius.button"
        }
      },
      {
        "styleId": "button-hud",
        "displayName": "HUD Button",
        "properties": {
          "color": "color.text",
          "background": "color.surfaceMuted",
          "fontFamily": "font.body",
          "fontSize": "22px",
          "fontWeight": "500",
          "borderRadius": "12px",
          "borderColor": "rgba(255, 255, 255, 0.12)",
          "borderWidth": "1px"
        }
      }
    ]
  },
  "soundEventBindings": {
    "game.menu-open": null,
    "game.menu-close": null,
    "ui.click": null,
    "ui.hover": null,
    "player.footstep": null,
    "item.pickup": null,
    "interaction.activate": null,
    "spell.cast-success": null,
    "spell.cast-fail": null,
    "quest.reward": null
  },
  "audioMixer": {
    "master": 1,
    "music": 0.7,
    "sfx": 1,
    "ambient": 0.5,
    "ui": 1,
    "voice": 1
  },
  "musicBindings": {
    "menuMusicId": null,
    "defaultBackgroundMusicId": null,
    "creditsThemeMusicId": null
  },
  "promotions": [
    {
      "promotionId": "subscription",
      "startsOn": "2026-09-26",
      "eyebrow": "Don't stop here.",
      "headline": "Keep playing.",
      "body": {
        "lead": "Get Playable Language access to",
        "rest": "Pride & Prejudice, Sherlock Holmes, and every mini we release next — Dracula in October, Wordlark Hollow in January."
      },
      "priceLine": "$14.99 / month · all playables",
      "yearlyLine": "Or $152.90 for the year. Cancel any time.",
      "button": {
        "id": "subscribe",
        "label": "Get the rest of the story →",
        "href": "https://www.playablelanguage.com/membership"
      }
    }
  ],
  "libraryLink": {
    "id": "library",
    "label": "Back to your library",
    "href": "https://example.invalid/placeholder/your-library"
  },
  "topUpLink": {
    "id": "top-up",
    "label": "10 extra turns — $1.99",
    "href": "https://example.invalid/placeholder/extra-turns"
  },
  "creditsDefinition": {
    "sections": []
  },
  "gameTitle": "Minis",
  "assetSources": {
    "assets/sugarlang/cefrlex-es.json": "/assets/sugarlang/cefrlex-es.json?v=4299d5c1ac11",
    "assets/sugarlang/cefrlex-it.json": "/assets/sugarlang/cefrlex-it.json?v=1eabe067d254",
    "assets/sugarlang/competency-inventory-es.json": "/assets/sugarlang/competency-inventory-es.json?v=1b2459adf661",
    "assets/sugarlang/competency-inventory-it.json": "/assets/sugarlang/competency-inventory-it.json?v=f3fc6c509f74",
    "assets/sugarlang/morphology-es.json": "/assets/sugarlang/morphology-es.json?v=246f45ed7836",
    "assets/sugarlang/morphology-it.json": "/assets/sugarlang/morphology-it.json?v=9c807ddfe8ab",
    "assets/animations/cast-holmes-idle.glb": "/assets/animations/cast-holmes-idle.glb?v=a1333494a8c8",
    "assets/animations/cast-holmes-run.glb": "/assets/animations/cast-holmes-run.glb?v=3436b73cb820",
    "assets/animations/cast-holmes-walk.glb": "/assets/animations/cast-holmes-walk.glb?v=69f1b6c03ffc",
    "assets/animations/cast-mortimer-idle.glb": "/assets/animations/cast-mortimer-idle.glb?v=ca434a7cfd43",
    "assets/animations/cast-mortimer-run.glb": "/assets/animations/cast-mortimer-run.glb?v=51933a5f5d13",
    "assets/animations/cast-mortimer-walk.glb": "/assets/animations/cast-mortimer-walk.glb?v=c8003eb465b3",
    "assets/animations/cast-watson-idle.glb": "/assets/animations/cast-watson-idle.glb?v=c9047706322a",
    "assets/animations/cast-watson-run.glb": "/assets/animations/cast-watson-run.glb?v=b978dfba8fba",
    "assets/animations/cast-watson-walk.glb": "/assets/animations/cast-watson-walk.glb?v=d64ee13d6c95",
    "assets/assethub/candlestick-01.glb": "/assets/assethub/candlestick-01.glb?v=1949c9fe3e0a",
    "assets/assethub/fire-01.glb": "/assets/assethub/fire-01.glb?v=184cbda23079",
    "assets/audio/hand-knocking.mp3": "/assets/audio/hand-knocking.mp3?v=27a1561318e6",
    "assets/blockout/book-stack.glb": "/assets/blockout/book-stack.glb?v=c86b772132de",
    "assets/blockout/bookcase-ivy.glb": "/assets/blockout/bookcase-ivy.glb?v=e1c35e9325c4",
    "assets/blockout/breakfast-table.glb": "/assets/blockout/breakfast-table.glb?v=d3adce4478f5",
    "assets/blockout/coat-stand.glb": "/assets/blockout/coat-stand.glb?v=09cb388d506d",
    "assets/blockout/curtain-pair-red.glb": "/assets/blockout/curtain-pair-red.glb?v=14953f550c38",
    "assets/blockout/desk-lamp-green.glb": "/assets/blockout/desk-lamp-green.glb?v=3e084923cb46",
    "assets/blockout/floor-planks-oak.glb": "/assets/blockout/floor-planks-oak.glb?v=d81f568eba92",
    "assets/blockout/framed-map.glb": "/assets/blockout/framed-map.glb?v=b22da9336dc7",
    "assets/blockout/hearth-rug.glb": "/assets/blockout/hearth-rug.glb?v=5dccf3d9d233",
    "assets/blockout/mantel-bust.glb": "/assets/blockout/mantel-bust.glb?v=1df3a3dc1013",
    "assets/blockout/mantel-clock.glb": "/assets/blockout/mantel-clock.glb?v=3f6b36d6a68e",
    "assets/blockout/manuscript-baskerville.glb": "/assets/blockout/manuscript-baskerville.glb?v=924365d8d2e1",
    "assets/blockout/picture-frame.glb": "/assets/blockout/picture-frame.glb?v=e258faf90c81",
    "assets/blockout/prop-newspaper-open.glb": "/assets/blockout/prop-newspaper-open.glb?v=d25b27c8da62",
    "assets/blockout/rug-rect-red.glb": "/assets/blockout/rug-rect-red.glb?v=68123e928ffa",
    "assets/blockout/side-table-round.glb": "/assets/blockout/side-table-round.glb?v=fcd10a1f2400",
    "assets/blockout/tartan-throw.glb": "/assets/blockout/tartan-throw.glb?v=648d54daaedc",
    "assets/blockout/tea-things-221b.glb": "/assets/blockout/tea-things-221b.glb?v=c8bbc4b8a620",
    "assets/blockout/umbrella-stand.glb": "/assets/blockout/umbrella-stand.glb?v=95c863bbd15c",
    "assets/blockout/violin-leaning.glb": "/assets/blockout/violin-leaning.glb?v=49d49cb7f566",
    "assets/blockout/walking-stick.glb": "/assets/blockout/walking-stick.glb?v=4767fa3a364d",
    "assets/blockout/wall-door-221b.glb": "/assets/blockout/wall-door-221b.glb?v=0154be2dbb3b",
    "assets/blockout/wall-windowed-olive.glb": "/assets/blockout/wall-windowed-olive.glb?v=c55c7daec9e6",
    "assets/blockout/writing-desk-221b.glb": "/assets/blockout/writing-desk-221b.glb?v=a9e9d2eaf800",
    "assets/character-models/cast-holmes-rigged.glb": "/assets/character-models/cast-holmes-rigged.glb?v=704ba2d9b88d",
    "assets/character-models/cast-mortimer-rigged.glb": "/assets/character-models/cast-mortimer-rigged.glb?v=cbbf14087e1d",
    "assets/character-models/cast-watson-rigged.glb": "/assets/character-models/cast-watson-rigged.glb?v=3e03561f9a7a",
    "assets/menu/book.webp": "/assets/menu/book.webp?v=f439b69fdd30",
    "assets/menu/glow.webp": "/assets/menu/glow.webp?v=565c5467acb5",
    "assets/menu/title-sherlock-holmes.webp": "/assets/menu/title-sherlock-holmes.webp?v=eeca1c8f86e2",
    "assets/polygon/fv-arm-chair-01.glb": "/assets/polygon/fv-arm-chair-01.glb?v=52e611940832",
    "assets/polygon/fv-table-04.glb": "/assets/polygon/fv-table-04.glb?v=f351f007d1ae",
    "assets/polygon/town-book-group-02.glb": "/assets/polygon/town-book-group-02.glb?v=9dc80e61ad6b",
    "assets/polygon/town-book-group-04.glb": "/assets/polygon/town-book-group-04.glb?v=35b2eba12c66",
    "assets/polygon/town-book-group-05.glb": "/assets/polygon/town-book-group-05.glb?v=c6aae5739c22",
    "assets/polygon/town-couch-03.glb": "/assets/polygon/town-couch-03.glb?v=6bbca7bb71ef",
    "assets/polygon/town-dining-chair-01.glb": "/assets/polygon/town-dining-chair-01.glb?v=72bec23d01b5",
    "assets/polygon/town-fireplace-01.glb": "/assets/polygon/town-fireplace-01.glb?v=fd17879b4135",
    "assets/polygon/town-pot-plant-03.glb": "/assets/polygon/town-pot-plant-03.glb?v=eb18eaca44ec",
    "assets/polygon/town-pot-plant-04.glb": "/assets/polygon/town-pot-plant-04.glb?v=1794588f11f1",
    "assets/polygon/town-pot-plant-05.glb": "/assets/polygon/town-pot-plant-05.glb?v=79a93ec4989e",
    "assets/sugarlang/scene-contexts.json": "/assets/sugarlang/scene-contexts.json?v=a6caa2404112",
    "assets/sugarlang/variants.json": "/assets/sugarlang/variants.json?v=279f5670a2f7"
  },
  "defaultGameSavePayload": null,
  "publishedEpisodes": [
    {
      "episodeId": "episode:sh-ep01",
      "seasonUrlSegment": "sherlock",
      "episodeUrlSegment": "episode-1",
      "displayName": "Episode 1: The Curse of the Baskervilles",
      "unlockCondition": "always",
      "thumbnailTextureDefinitionId": null
    },
    {
      "episodeId": "episode:sh-ep02",
      "seasonUrlSegment": "sherlock",
      "episodeUrlSegment": "episode-2",
      "displayName": "Episode 2 (placeholder)",
      "unlockCondition": "always",
      "thumbnailTextureDefinitionId": null
    }
  ]
}
