{
  "note": "GENERATED BY SUGARMAGIC - DO NOT EDIT",
  "schemaVersion": 2,
  "gameProjectIdentity": {
    "id": "minis",
    "schema": "GameProject",
    "version": 2
  },
  "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,
                "accountWeeklyTurnLimit": 70,
                "accountDailyTurnLimit": 30,
                "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://kwimvamhwasgbhuokfoh.supabase.co",
        "supabaseAnonKey": "sb_publishable_4aJoA2Lu8fOGzIAbrvKBZg_9SwNzl5c",
        "allowAnonymous": false,
        "anyoneCanPlayInPreview": true,
        "sessionCookieDomain": ".playablelanguage.com",
        "platformPlayable": "minis",
        "platformApiOrigin": "https://api.playablelanguage.com"
      }
    }
  ],
  "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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,
          "interactions": [
            {
              "interactionId": "inspectable:sh-ep01:stick",
              "kind": "examinable",
              "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.",
              "imageAssetPath": null
            }
          ],
          "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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,
          "interactions": [
            {
              "interactionId": "inspectable:sh-ep01:manuscript",
              "kind": "examinable",
              "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.",
              "imageAssetPath": null
            }
          ],
          "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,
          "interactions": [
            {
              "interactionId": "inspectable:sh-ep01:newspaper",
              "kind": "examinable",
              "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.",
              "imageAssetPath": null
            }
          ],
          "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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,
          "interactions": [],
          "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!",
          "characterSituations": {
            "minis:npc:holmes": "The sitting room at 221B Baker Street, a late summer morning in 1889, breakfast on the table. Holmes stands at the mantel; Watson is here. Last night a visitor called while Holmes and Watson were out. He waited an hour, then went away and left his walking stick on the hearth rug, and no card. Watson has looked at the stick. Holmes read its owner off it before breakfast.\n\nWhat follows comes in this order, and the line that opens a conversation says how far it has got. A knock: the owner is back for his stick, Dr James Mortimer, a country doctor from Grimpen on Dartmoor. Mortimer tells a story. He lays an old manuscript on the tea table and reads the family legend, then lays a newspaper beside it and tells how Sir Charles Baskerville died. He ends in a whisper: near the body there were footprints, the footprints of a gigantic hound. Sir Charles's heir, Sir Henry Baskerville, landed in England this morning and reaches Waterloo within the hour. Then wheels outside: a cab, to take Mortimer to Waterloo.\n\nBefore the knock Holmes has never met Mortimer; he knows him only from the stick. He does not know why the friends at Charing Cross gave the stick, beyond that a hospital gives one when a man leaves. He knows the legend, the death and Sir Henry only from what Mortimer says and lays on the table. He knows nothing of Sir Henry beyond his name, that he is the heir, and that he reaches Waterloo within the hour. He has no solution, no suspect and no theory of who is behind it.",
            "minis:npc:mortimer": "Calling at 221B Baker Street on a late summer morning in 1889. Holmes is at the mantel; Dr Watson is the one who lets him in. He called here last night, missed Holmes, waited an hour, and went away without his stick and without leaving a card. He has come back for it this morning. Sir Henry Baskerville, the heir, landed in England this morning and reaches Waterloo within the hour, and Mortimer means to meet him. But first Holmes must hear a story.\n\nHe carries two papers in his coat: the 1742 manuscript and the Devon County Chronicle of May 14th. After his stick is found he takes out the manuscript, lays it on the tea table and reads the legend, then lays the newspaper beside it and tells how Sir Charles died, and ends in a whisper about the footprints. Then a cab comes to take him to Waterloo. The line that opens a conversation says how far the morning has got.\n\nHe does not know who or what made the footprints, or whether anyone is behind Sir Charles's death. He has no culprit and no explanation, only the legend, the newspaper and what he saw. He has not met Sir Henry. He knows him as the heir, who landed in England this morning and reaches Waterloo within the hour."
          },
          "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": "A morning in 1889, in the sitting room at 221B Baker Street. A visitor called last night, missed Holmes, and left his walking stick and no card. Holmes is at breakfast and wants to know what Watson makes of the stick. Before the morning is out, the visitor returns with a legend, a death, and a hound.",
                  "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: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": [],
                          "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": "The visitor's walking stick lies on the hearth rug. Take a close look at it.",
                          "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": "Holmes wants to know what the stick says about its owner: a country doctor or a town one?",
                          "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"
                            },
                            {
                              "type": "learn-fact",
                              "factId": "sh-ep01:stick-owner",
                              "displayText": "The stick is James Mortimer's, a gift from friends at Charing Cross Hospital."
                            }
                          ],
                          "showInHud": true,
                          "countsTowardProgress": true,
                          "autoLaunch": false,
                          "graphPosition": {
                            "x": 380,
                            "y": 200
                          }
                        },
                        {
                          "nodeId": "node:sh-ep01:arrive-door",
                          "displayName": "Answer the door",
                          "description": "Someone is knocking at the door of 221B. Go and see who it is.",
                          "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": "Dr Mortimer has come for his stick, and he has a story for Holmes.",
                          "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": [
                            {
                              "type": "learn-fact",
                              "factId": "sh-ep01:mortimer",
                              "displayText": "Dr Mortimer of Dartmoor has a story for Holmes, and Sir Henry arrives soon."
                            }
                          ],
                          "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": [
                            {
                              "type": "learn-fact",
                              "factId": "sh-ep01:legend",
                              "displayText": "Hugo Baskerville was found dead on the moor, a black hound at his throat."
                            }
                          ],
                          "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": [
                            {
                              "type": "learn-fact",
                              "factId": "sh-ep01:death",
                              "displayText": "Sir Charles Baskerville died in his yew alley; Mortimer saw a giant hound's footprints."
                            }
                          ],
                          "showInHud": false,
                          "countsTowardProgress": false,
                          "autoLaunch": false,
                          "graphPosition": {
                            "x": 380,
                            "y": 440
                          }
                        },
                        {
                          "nodeId": "node:sh-ep01:look-manuscript",
                          "displayName": "Examine the manuscript",
                          "description": "Mortimer has laid an old manuscript on the table. Read it.",
                          "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": "Tell Holmes what the old manuscript says.",
                          "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": [
                            {
                              "type": "learn-fact",
                              "factId": "sh-ep01:manuscript",
                              "displayText": "The manuscript, from 1742, tells of Hugo Baskerville and a black hound."
                            }
                          ],
                          "showInHud": true,
                          "countsTowardProgress": true,
                          "autoLaunch": false,
                          "graphPosition": {
                            "x": 380,
                            "y": 560
                          }
                        },
                        {
                          "nodeId": "node:sh-ep01:look-newspaper",
                          "displayName": "Examine the newspaper",
                          "description": "Mortimer has laid a newspaper on the table. Read what it says about Sir Charles.",
                          "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": "Tell Holmes how Sir Charles died: his heart, or something else?",
                          "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": [
                            {
                              "type": "learn-fact",
                              "factId": "sh-ep01:newspaper",
                              "displayText": "The newspaper says Sir Charles died with no mark, and doctors blamed his heart."
                            }
                          ],
                          "showInHud": true,
                          "countsTowardProgress": true,
                          "autoLaunch": false,
                          "graphPosition": {
                            "x": 380,
                            "y": 680
                          }
                        },
                        {
                          "nodeId": "node:sh-ep01:arrive-window",
                          "displayName": "Look out of the window",
                          "description": "There are wheels on the cobbles outside. Go to the window and look.",
                          "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": "Holmes is going to Waterloo to meet Sir Henry. Tell him whether you will come.",
                          "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": [
                            {
                              "type": "learn-fact",
                              "factId": "sh-ep01:invitation",
                              "displayText": "Holmes is going to meet Sir Henry at Waterloo and asks Watson to come."
                            }
                          ],
                          "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": [
                            {
                              "type": "advanceToNextScene",
                              "sceneId": null
                            }
                          ],
                          "showInHud": false,
                          "countsTowardProgress": false,
                          "autoLaunch": false,
                          "graphPosition": {
                            "x": 80,
                            "y": 920
                          }
                        }
                      ],
                      "groups": [],
                      "entryNodeIds": [
                        "node:sh-ep01:play-open"
                      ]
                    }
                  ],
                  "rewardDefinitions": [],
                  "progressDisplay": {
                    "style": "icons",
                    "images": {
                      "notBegun": "assets/hud/glass-not-begun.png",
                      "begun": "assets/hud/glass-begun.png",
                      "done": "assets/hud/glass-done.png"
                    }
                  }
                }
              ],
              "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"
        }
      },
      "hudDefinition": {
        "definitionId": "season:sherlock:hud",
        "definitionKind": "hud",
        "root": {
          "nodeId": "season:sherlock/minis:ui:hud:root",
          "kind": "container",
          "styleId": null,
          "layout": {
            "direction": "column",
            "gap": 12,
            "padding": 0,
            "align": "start",
            "justify": "start",
            "width": "fill",
            "height": "fill",
            "inset": 20
          },
          "anchor": null,
          "props": {},
          "events": {},
          "children": [
            {
              "nodeId": "season:sherlock/minis:ui:hud:gradient",
              "kind": "container",
              "styleId": "hud-gradient",
              "layout": {
                "direction": "column",
                "gap": 0,
                "padding": 0,
                "align": "center",
                "justify": "start",
                "width": "fill",
                "height": 220,
                "inset": 0
              },
              "anchor": "top-center",
              "props": {},
              "events": {},
              "children": [],
              "visibility": "always"
            },
            {
              "nodeId": "season:sherlock/minis:ui:hud:top",
              "kind": "container",
              "styleId": null,
              "layout": {
                "direction": "column",
                "gap": 10,
                "padding": 0,
                "align": "center",
                "justify": "center",
                "width": "fill",
                "height": "auto",
                "inset": 18
              },
              "anchor": "top-center",
              "props": {},
              "events": {},
              "children": [
                {
                  "nodeId": "season:sherlock/minis:ui:hud:progress",
                  "kind": "quest-progress",
                  "styleId": null,
                  "layout": {
                    "direction": "row",
                    "gap": 10,
                    "padding": 0,
                    "align": "center",
                    "justify": "center",
                    "width": "auto",
                    "height": 22,
                    "inset": 20
                  },
                  "anchor": null,
                  "props": {},
                  "events": {
                    "onClick": {
                      "action": "open-journal"
                    }
                  },
                  "children": [],
                  "visibility": "always"
                },
                {
                  "nodeId": "season:sherlock/minis:ui:hud:objective",
                  "kind": "text",
                  "styleId": "hud-objective",
                  "layout": {
                    "direction": "column",
                    "gap": 12,
                    "padding": 0,
                    "align": "center",
                    "justify": "center",
                    "width": "auto",
                    "height": "auto",
                    "inset": 20
                  },
                  "anchor": null,
                  "props": {
                    "text": {
                      "kind": "runtime-ref",
                      "path": "quest.objective"
                    }
                  },
                  "events": {},
                  "children": [],
                  "visibility": "whileExploring"
                }
              ],
              "visibility": "always"
            },
            {
              "nodeId": "season:sherlock/minis:ui:hud:corner",
              "kind": "container",
              "styleId": null,
              "layout": {
                "direction": "column",
                "gap": 0,
                "padding": 0,
                "align": "center",
                "justify": "start",
                "width": "auto",
                "height": "auto",
                "inset": 18
              },
              "anchor": "top-right",
              "props": {},
              "events": {},
              "children": [
                {
                  "nodeId": "season:sherlock/minis:ui:hud:notebook",
                  "kind": "button",
                  "styleId": "button-hud-round",
                  "layout": {
                    "direction": "column",
                    "gap": 12,
                    "padding": 6,
                    "align": "center",
                    "justify": "center",
                    "width": "auto",
                    "height": "auto",
                    "inset": 20
                  },
                  "anchor": null,
                  "props": {},
                  "events": {
                    "onClick": {
                      "action": "open-journal"
                    }
                  },
                  "children": [
                    {
                      "nodeId": "season:sherlock/minis:ui:hud:notebook-image",
                      "kind": "image",
                      "styleId": null,
                      "layout": {
                        "direction": "column",
                        "gap": 12,
                        "padding": 0,
                        "align": "center",
                        "justify": "center",
                        "width": 18,
                        "height": 18,
                        "inset": 20
                      },
                      "anchor": null,
                      "props": {
                        "src": {
                          "kind": "literal",
                          "value": "assets/hud/notebook.png"
                        },
                        "alt": {
                          "kind": "literal",
                          "value": "Notebook"
                        }
                      },
                      "events": {},
                      "children": [],
                      "visibility": "always"
                    }
                  ],
                  "visibility": "whileExploring"
                }
              ],
              "visibility": "whileExploring"
            }
          ],
          "visibility": "always"
        }
      },
      "journalDefinition": {
        "tabs": [
          {
            "tabId": "case",
            "label": "The case",
            "sections": [
              {
                "kind": "quest-steps"
              },
              {
                "kind": "known-facts",
                "emptyText": "No findings yet."
              }
            ]
          },
          {
            "tabId": "spanish",
            "label": "My Spanish",
            "sections": [
              {
                "kind": "contributed",
                "sectionId": "sugarlang.my-language"
              }
            ]
          }
        ]
      },
      "uiThemeTokens": {
        "color.outline": "#e2b45e"
      }
    }
  ],
  "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:prop-letter-folded",
        "definitionKind": "asset",
        "displayName": "prop-letter-folded",
        "assetKind": "model",
        "surfaceSlots": [],
        "deform": null,
        "effect": null,
        "source": {
          "relativeAssetPath": "assets/blockout/prop-letter-folded.glb",
          "fileName": "prop-letter-folded.glb",
          "mimeType": null
        },
        "collider": {
          "shape": "none",
          "localBounds": null
        }
      },
      {
        "definitionId": "minis:asset:prop-boot-brown",
        "definitionKind": "asset",
        "displayName": "prop-boot-brown",
        "assetKind": "model",
        "surfaceSlots": [],
        "deform": null,
        "effect": null,
        "source": {
          "relativeAssetPath": "assets/blockout/prop-boot-brown.glb",
          "fileName": "prop-boot-brown.glb",
          "mimeType": null
        },
        "collider": {
          "shape": "none",
          "localBounds": null
        }
      },
      {
        "definitionId": "minis:asset:prop-watson-teacup",
        "definitionKind": "asset",
        "displayName": "prop-watson-teacup",
        "assetKind": "model",
        "surfaceSlots": [],
        "deform": null,
        "effect": null,
        "source": {
          "relativeAssetPath": "assets/blockout/prop-watson-teacup.glb",
          "fileName": "prop-watson-teacup.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"
        ]
      },
      {
        "definitionId": "minis:character-animation:cast-mortimer-holdingIdle",
        "definitionKind": "character-animation",
        "displayName": "cast-mortimer holdingIdle (Generated_HoldingIdle)",
        "source": {
          "relativeAssetPath": "assets/animations/cast-mortimer-holdingIdle.glb",
          "fileName": "cast-mortimer-holdingIdle.glb",
          "mimeType": "model/gltf-binary"
        },
        "clipNames": [
          "Generated_HoldingIdle"
        ]
      },
      {
        "definitionId": "minis:character-animation:cast-mortimer-holdingWalk",
        "definitionKind": "character-animation",
        "displayName": "cast-mortimer holdingWalk (Generated_HoldingWalk)",
        "source": {
          "relativeAssetPath": "assets/animations/cast-mortimer-holdingWalk.glb",
          "fileName": "cast-mortimer-holdingWalk.glb",
          "mimeType": "model/gltf-binary"
        },
        "clipNames": [
          "Generated_HoldingWalk"
        ]
      },
      {
        "definitionId": "minis:character-animation:cast-watson-holdingIdle",
        "definitionKind": "character-animation",
        "displayName": "cast-watson holdingIdle (Generated_HoldingIdle)",
        "source": {
          "relativeAssetPath": "assets/animations/cast-watson-holdingIdle.glb",
          "fileName": "cast-watson-holdingIdle.glb",
          "mimeType": "model/gltf-binary"
        },
        "clipNames": [
          "Generated_HoldingIdle"
        ]
      },
      {
        "definitionId": "minis:character-animation:cast-watson-holdingWalk",
        "definitionKind": "character-animation",
        "displayName": "cast-watson holdingWalk (Generated_HoldingWalk)",
        "source": {
          "relativeAssetPath": "assets/animations/cast-watson-holdingWalk.glb",
          "fileName": "cast-watson-holdingWalk.glb",
          "mimeType": "model/gltf-binary"
        },
        "clipNames": [
          "Generated_HoldingWalk"
        ]
      }
    ],
    "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"
              }
            ]
          }
        ]
      }
    ]
  },
  "interactionContexts": {
    "room": [
      "examinable",
      "inspectable",
      "collectable",
      "talkable"
    ],
    "inventory": [
      "examinable",
      "inspectable",
      "usable",
      "castable"
    ]
  },
  "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",
          "holdingIdle": "minis:character-animation:cast-watson-holdingIdle",
          "holdingWalk": "minis:character-animation:cast-watson-holdingWalk"
        }
      },
      "behaviorTasks": [
        {
          "taskId": "task:sh-ep01:tea",
          "displayName": "Tea in episode 1",
          "description": "Watson carries his tea while episode 1 runs.",
          "activation": {
            "questDefinitionId": "quest:sh-ep01:beats",
            "questStageId": null,
            "questNodeId": null,
            "storyPointSide": "while",
            "worldFlagEquals": null
          },
          "timeWindow": null,
          "stance": {
            "pose": "holding",
            "itemDefinitionId": "minis:item:watson-teacup"
          }
        },
        {
          "taskId": "task:sh-ep02:letter",
          "displayName": "The letter in episode 2",
          "description": "Watson holds the letter Dr Mortimer gave him while he looks for the boot.",
          "activation": {
            "questDefinitionId": "quest:sh-ep02:hotel",
            "questStageId": "stage:sh-ep02:sitting-room",
            "questNodeId": "node:sh-ep02:find-boot",
            "storyPointSide": "while",
            "worldFlagEquals": null
          },
          "timeWindow": null,
          "stance": {
            "pose": "holding",
            "itemDefinitionId": "minis:item:sir-henry-letter"
          }
        },
        {
          "taskId": "task:sh-ep02:boot",
          "displayName": "The boot in episode 2",
          "description": "Watson carries Sir Henry's boot from the cabinet until he gives it back.",
          "activation": {
            "questDefinitionId": "quest:sh-ep02:hotel",
            "questStageId": "stage:sh-ep02:sitting-room",
            "questNodeId": "node:sh-ep02:give-boot",
            "storyPointSide": "while",
            "worldFlagEquals": null
          },
          "timeWindow": null,
          "stance": {
            "pose": "holding",
            "itemDefinitionId": "minis:item:sir-henry-boot"
          }
        }
      ]
    }
  ],
  "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",
        "holdingIdle": "minis:character-animation:cast-watson-holdingIdle",
        "holdingWalk": "minis:character-animation:cast-watson-holdingWalk"
      }
    },
    "behaviorTasks": [
      {
        "taskId": "task:sh-ep01:tea",
        "displayName": "Tea in episode 1",
        "description": "Watson carries his tea while episode 1 runs.",
        "activation": {
          "questDefinitionId": "quest:sh-ep01:beats",
          "questStageId": null,
          "questNodeId": null,
          "storyPointSide": "while",
          "worldFlagEquals": null
        },
        "timeWindow": null,
        "stance": {
          "pose": "holding",
          "itemDefinitionId": "minis:item:watson-teacup"
        }
      },
      {
        "taskId": "task:sh-ep02:letter",
        "displayName": "The letter in episode 2",
        "description": "Watson holds the letter Dr Mortimer gave him while he looks for the boot.",
        "activation": {
          "questDefinitionId": "quest:sh-ep02:hotel",
          "questStageId": "stage:sh-ep02:sitting-room",
          "questNodeId": "node:sh-ep02:find-boot",
          "storyPointSide": "while",
          "worldFlagEquals": null
        },
        "timeWindow": null,
        "stance": {
          "pose": "holding",
          "itemDefinitionId": "minis:item:sir-henry-letter"
        }
      },
      {
        "taskId": "task:sh-ep02:boot",
        "displayName": "The boot in episode 2",
        "description": "Watson carries Sir Henry's boot from the cabinet until he gives it back.",
        "activation": {
          "questDefinitionId": "quest:sh-ep02:hotel",
          "questStageId": "stage:sh-ep02:sitting-room",
          "questNodeId": "node:sh-ep02:give-boot",
          "storyPointSide": "while",
          "worldFlagEquals": null
        },
        "timeWindow": null,
        "stance": {
          "pose": "holding",
          "itemDefinitionId": "minis:item:sir-henry-boot"
        }
      }
    ]
  },
  "worldFlagDefinitions": [
    {
      "definitionId": "watson-promised-the-moor",
      "name": "watson-promised-the-moor",
      "displayName": "Watson promised the moor",
      "description": "Watson swore never to let Sir Henry walk the moor alone.",
      "valueType": "boolean"
    }
  ],
  "spellDefinitions": [],
  "itemDefinitions": [
    {
      "definitionId": "minis:item:watson-teacup",
      "displayName": "Watson's tea",
      "description": "The cup of tea Watson carries round 221B.",
      "category": "gift",
      "inventory": {
        "stackable": false,
        "maxStack": 1,
        "giftable": false
      },
      "presentation": {
        "modelAssetDefinitionId": "minis:asset:prop-watson-teacup",
        "thumbnailAssetPath": null
      },
      "interactions": []
    },
    {
      "definitionId": "minis:item:sir-henry-boot",
      "displayName": "Sir Henry's boot",
      "description": "The new brown boot Watson finds under the cabinet and carries back to Sir Henry.",
      "category": "gift",
      "inventory": {
        "stackable": false,
        "maxStack": 1,
        "giftable": false
      },
      "presentation": {
        "modelAssetDefinitionId": "minis:asset:prop-boot-brown",
        "thumbnailAssetPath": null
      },
      "interactions": []
    },
    {
      "definitionId": "minis:item:sir-henry-letter",
      "displayName": "A letter",
      "description": "The letter Sir Henry had by the morning post, which Dr Mortimer hands Watson.",
      "category": "quest",
      "inventory": {
        "stackable": false,
        "maxStack": 1,
        "giftable": false
      },
      "presentation": {
        "modelAssetDefinitionId": "minis:asset:prop-letter-folded",
        "thumbnailAssetPath": null
      },
      "interactions": [
        {
          "interactionId": "minis:item:sir-henry-letter:examinable",
          "kind": "examinable",
          "title": "A letter",
          "body": "A letter on plain paper, folded in four. The words are cut out of a newspaper and glued on. Only one word is written by hand, in ink: moor. The letter tells Sir Henry to keep away from the moor, or his life will be in danger.",
          "imageAssetPath": "assets/examine/sir-henry-letter.jpg"
        }
      ]
    }
  ],
  "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,
          "holdingIdle": null,
          "holdingWalk": null
        },
        "portraitAssetPath": 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,
          "holdingIdle": "minis:character-animation:cast-mortimer-holdingIdle",
          "holdingWalk": "minis:character-animation:cast-mortimer-holdingWalk"
        },
        "portraitAssetPath": 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",
          "turnGuidance": "Keep what he got right first, and say so: a doctor, from the country, who walks a great deal. Then correct the rest: a young man, who left Charing Cross Hospital in London in 1884, and absent-minded enough to leave his stick and no card. If he said town, keep the doctor and correct the town, and show him the worn tip.\nIf he argues, grant what is fair once, and keep your reading. Once he has given his reading, take it and talk on; the knock comes at the end of the exchange, so do not mention the door. If the exchange ends with no reading from him, send him to examine the stick now, noticing the worn tip, and to come back to you with his reading; no knock follows.\nHe may have fifty words. Correct his reasoning, never his language. Do not repeat his words back, and do not remark on how few there are. Each correction is one short sentence a beginner can read.",
          "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). Two replies, so the player can argue the correction: once Watson has answered, Holmes takes it and talks on and the knock follows; if neither reply answers, he lets it rest and nothing follows. The hint points at the choice in the question."
          },
          "next": [
            {
              "targetNodeId": "node:sh-ep01:tell-holmes-stick:closing"
            }
          ],
          "graphPosition": {
            "x": 80,
            "y": 230
          },
          "annotations": {
            "sugaragent": {
              "ask": "Watson says what kind of doctor owns the stick.",
              "answeredWhen": "Watson gives his reading of the owner, in any words or language. Country or town are both answered; a single word such as \"country\" or \"ciudad\" is enough. Another reading of the man, such as old, young, or walks a lot, also counts. No reason is needed.",
              "answerSource": "Examine the stick on the hearth rug."
            }
          }
        },
        {
          "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",
          "turnGuidance": "What you want: to hear that your stick is here. Any answer counts: yes, here, a word pointing at the rug or at Holmes, even a shrug of a word. If the answer is no, or makes no sense to you, peer about, spot the stick on the hearth rug yourself, and be delighted anyway.\nBe glad of it in one short sentence a beginner can read. That size, and no more.\nGive in after Watson's one reply. The line after yours thanks Watson, names Sir Henry and Waterloo, and says Holmes must hear a story; do not say those things yourself, and do not tell the legend or the death here. Keep the skull out of this conversation too.\nCorrect nothing Watson says. Do not repeat his words back, and do not remark on how few there are.",
          "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": 2
          },
          "replyHint": "Tell Holmes what the wicked man did",
          "turnGuidance": "Take it with dry amusement: a fairy tale, but a well told one. Do not argue whether the legend is true; you do not care.\nIf he gets the account wrong, correct it briefly, in character, by saying what the manuscript claims, never that the legend is true. For example: \"Saved her, Watson? The manuscript says he pursued her. What happened when his companions found him?\"\nDo not name the hound yourself. What was at Hugo's throat is your next question, and once he has told any piece of the account, the line after yours asks it.\nOnce he has, take it and talk on, and ask nothing more. If the exchange ends with nothing told, send him to read the manuscript now, noticing its account of Hugo, and to come back to you with it; no line follows yours. One or two short sentences. Do not repeat his words back, and do not remark on how few there are.",
          "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. Two replies: once Watson has answered, Holmes takes it and talks on and the probe follows; if neither reply answers, he lets it rest and nothing follows. 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
          },
          "annotations": {
            "sugaragent": {
              "ask": "Watson says who the wicked man in the manuscript was and what he did.",
              "answeredWhen": "Watson tells any piece of the account, in any words or language. The manuscript states: the man was Hugo Baskerville; he carried off a girl; he rode after her across the moor; he came to a bad end. One piece is enough, and a single word such as \"Hugo\" counts. Reporting the account while doubting it counts. A reply that contradicts these facts is not answered, even if it also names one of them: \"Hugo salvo a la chica\" is not answered. A wrong detail beyond these facts does not stop a reply from counting.",
              "answerSource": "Examine the manuscript on the table."
            }
          }
        },
        {
          "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
          },
          "turnGuidance": "What you want: the hound. Watson has answered by tapping one option, and the tap is his whole answer; he need not type.\nIf he tapped the hound, agree in a word and yawn at the rest. If he tapped the girl or his horse, say \"the hound\" yourself in passing, as a plain fact, and move on. That is the whole correction. Do not argue whether the legend is true; you do not care.\nGive in at once. You are bored; the newspaper comes next, and the line after yours says so, so do not send him there yourself.\nOne or two short sentences.",
          "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": 2
          },
          "replyHint": "Tell Holmes what killed Sir Charles",
          "turnGuidance": "If he says his heart: the coroner agrees with him, but a heart leaves no footprints, and Mortimer whispered of footprints. If he says something else, or names the footprints: this is the first thing all morning that has woken you; say so in one short sentence, and take it seriously. Either way you are awake now, and it shows.\nYou have no theory yet, and say a guess is a guess.\nOnce he has given his view, take it and talk on. The line after yours hears the wheels and sends him to the window; do not mention the window or the street. If the exchange ends with no view from him, send him to read the newspaper now, noticing what it says of the death, and to come back to you with his view; no line follows yours. One or two short sentences.",
          "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. Two replies: once Watson has answered, Holmes takes it and talks on and the wheels follow; if neither reply answers, he lets it rest and nothing follows. The hint points at the choice in the question."
          },
          "next": [
            {
              "targetNodeId": "node:sh-ep01:tell-holmes-newspaper:closing"
            }
          ],
          "graphPosition": {
            "x": 80,
            "y": 230
          },
          "annotations": {
            "sugaragent": {
              "ask": "Watson says what he thinks killed Sir Charles: his heart, or something else.",
              "answeredWhen": "Watson gives his view of the death, in any words or language. His heart is answered; something else is answered; naming the footprints or the hound is answered. A single word such as \"heart\" or \"corazon\" is enough. A guess counts, and no reason is needed.",
              "answerSource": "Examine the newspaper on the table."
            }
          }
        },
        {
          "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",
          "turnGuidance": "What you want: his answer. Yes counts, no counts, anything counts. What matters is that you act on exactly what he said.\nIf he says yes, you are glad, and you say so once, plainly. If he says no, take it with good grace and a dry remark, and say you will tell him everything when you come back. Do not press a no into a yes. If he says something else, a question or a condition, answer that and hold him to it.\nAnswer in the language he said it.\nGive in after Watson's one reply. Nothing follows your reply but the end of the morning. One or two short sentences.",
          "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
      }
    },
    {
      "definitionId": "dlg:sh-ep02:ask-holmes",
      "displayName": "Talk to Holmes",
      "startNodeId": "dlg:sh-ep02:ask-holmes:opening",
      "nodes": [
        {
          "nodeId": "dlg:sh-ep02:ask-holmes:opening",
          "displayName": "opening",
          "speakerId": "minis:npc:holmes",
          "speakerLabel": "Holmes",
          "text": "Do you hear him, Watson? What do you suppose he is ranting about?",
          "intent": {
            "mustConveyFacts": [
              "Holmes asks Watson whether he hears the shouting and what he thinks it is about"
            ],
            "beat": "At the desk, after Watson has come in: Holmes asks what Watson makes of the shouting before he explains it. Any answer serves: I hear him, a man is angry, he lost something.",
            "voiceNote": "Holmes: brisk and dry, short sentences, conclusion first; addresses Watson and stops. The offered choice: doctor or friend, both in the question, so one word is a good reply."
          },
          "next": [
            {
              "targetNodeId": "dlg:sh-ep02:ask-holmes:turn-1"
            }
          ],
          "graphPosition": {
            "x": 80,
            "y": 80
          }
        },
        {
          "nodeId": "dlg:sh-ep02:ask-holmes:turn-1",
          "kind": "free-form",
          "closeWhen": {
            "kind": "replies",
            "count": 1
          },
          "replyHint": "Say what you hear, or guess",
          "turnGuidance": "What you want: what Watson makes of the shouting. Any answer counts: I hear him, a man is angry, he has lost something, a guess at who, a single word.\nTake what he said and answer it in the words he used. If he guessed right, that it is Sir Henry or that it is a boot, grant it in a word; the line after yours still says it plainly. If he guessed wrong, let it stand; do not name Sir Henry or the boots yourself.\nYou are at the register and in no hurry. Dry, not unkind.\nGive in after Watson's one reply. One or two short sentences. Do not repeat his words back, and do not remark on how few there are.",
          "displayName": "turn-1",
          "text": "",
          "intent": {
            "voiceNote": "Holmes takes what Watson says, doctor or friend, and answers it in the language he said it. Up to two replies. The hint points at the choice in the question."
          },
          "next": [
            {
              "targetNodeId": "dlg:sh-ep02:ask-holmes:boots"
            }
          ],
          "graphPosition": {
            "x": 380,
            "y": 80
          }
        },
        {
          "nodeId": "dlg:sh-ep02:ask-holmes:boots",
          "displayName": "boots",
          "speakerId": "minis:npc:holmes",
          "speakerLabel": "Holmes",
          "text": "That is Sir Henry, and that is the second boot this hotel has lost him in a day: a new brown one last night, an old black one since lunch. Twice in two days a stranger has had his hands on that man's boots, and I would rather he lost no more than boots today. Why would someone steal two boots from one man, Watson?",
          "intent": {
            "mustConveyFacts": [
              "the shouting is Sir Henry",
              "this is the second boot lost in a day: a new brown one last night, an old black one since lunch",
              "twice in two days a stranger has handled Sir Henry's boots, and Holmes would rather he lost no more than boots today",
              "Holmes asks why someone would steal two boots from one man"
            ],
            "beat": "Holmes names the two boots and the stranger's hands on them, then asks Watson for a guess. The line answers whatever Watson said in the first turn.",
            "voiceNote": "Holmes: brisk and dry, short sentences, conclusion first; addresses Watson and stops. The offered choice: doctor or friend, both in the question, so one word is a good reply."
          },
          "next": [
            {
              "targetNodeId": "dlg:sh-ep02:ask-holmes:turn-2"
            }
          ],
          "graphPosition": {
            "x": 680,
            "y": 80
          }
        },
        {
          "nodeId": "dlg:sh-ep02:ask-holmes:turn-2",
          "kind": "free-form",
          "closeWhen": {
            "kind": "replies",
            "count": 1
          },
          "replyHint": "Give Holmes your guess",
          "turnGuidance": "What you want: his guess at why a man would lose two boots to one thief. Any guess counts: a thief, a joke, the hotel, the chambermaid, to frighten him, I do not know, a single word.\nKeep what is sound in his guess and say so in a sentence. You have no answer yet, and say so plainly: no data, and a guess is a guess. If he says the thief wants the man and not the leather, grant that it is possible and leave it there.\nDo not name the cab, the man in the street, or keeping Sir Henry here; the line after yours does.\nGive in after Watson's one reply. One or two short sentences.",
          "displayName": "turn-2",
          "text": "",
          "intent": {
            "voiceNote": "Holmes takes what Watson says, doctor or friend, and answers it in the language he said it. Up to two replies. The hint points at the choice in the question."
          },
          "next": [
            {
              "targetNodeId": "dlg:sh-ep02:ask-holmes:closing"
            }
          ],
          "graphPosition": {
            "x": 980,
            "y": 80
          }
        },
        {
          "nodeId": "dlg:sh-ep02:ask-holmes:closing",
          "displayName": "closing",
          "speakerId": "minis:npc:holmes",
          "speakerLabel": "Holmes",
          "text": "He means to leave before sundown, and I want him here. A cab followed him down Regent Street this morning, and the man in it is out in the street at this moment. Go to the window, Watson, and get a look at him.",
          "intent": {
            "mustConveyFacts": [
              "Sir Henry means to leave before sundown and Holmes wants him kept here",
              "a cab followed Sir Henry down Regent Street this morning",
              "the man from the cab is out in the street now",
              "Holmes sends Watson to the window to get a look at him"
            ],
            "beat": "The exit points at the window: Holmes sends Watson to look at the man who followed Sir Henry.",
            "voiceNote": "Holmes: brisk and dry, short sentences, conclusion first; addresses Watson and stops."
          },
          "next": [],
          "graphPosition": {
            "x": 1880,
            "y": 80
          }
        }
      ],
      "groups": [],
      "interactionBinding": {
        "npcDefinitionId": "minis:npc:holmes"
      }
    },
    {
      "definitionId": "dlg:sh-ep02:report",
      "displayName": "Tell Holmes what you saw",
      "startNodeId": "dlg:sh-ep02:report:opening",
      "nodes": [
        {
          "nodeId": "dlg:sh-ep02:report:opening",
          "displayName": "opening",
          "speakerId": "minis:npc:holmes",
          "speakerLabel": "Holmes",
          "text": "Well, Watson? What did you see out there?",
          "intent": {
            "mustConveyFacts": [
              "Holmes asks Watson what he saw from the window"
            ],
            "beat": "At the desk, back from the window: Holmes asks for Watson's report before he says anything himself.",
            "voiceNote": "Holmes: brisk and dry, short sentences, conclusion first; addresses Watson and stops."
          },
          "next": [
            {
              "targetNodeId": "dlg:sh-ep02:report:turn-1"
            }
          ],
          "graphPosition": {
            "x": 80,
            "y": 80
          }
        },
        {
          "nodeId": "dlg:sh-ep02:report:turn-1",
          "kind": "free-form",
          "closeWhen": {
            "kind": "replies",
            "count": 1
          },
          "replyHint": "Say what the man did, and the cab's number",
          "turnGuidance": "What you want: what Watson saw from the window. Any of it counts: a man, a beard, he ran, he took a cab, the cab's number, a single word.\nTake what he says and keep what is useful: if he gives the number, repeat it; if he gives the beard, say a beard is easily put on. If he says he saw nothing, ask what the street looked like.\nDo not name the register or keeping Sir Henry here; the line after yours does.\nGive in after Watson's one reply. One or two short sentences.",
          "displayName": "turn-1",
          "text": "",
          "intent": {
            "voiceNote": "Holmes takes Watson's report and answers it in the language he said it. The hint asks for what the man did and the number."
          },
          "next": [
            {
              "targetNodeId": "dlg:sh-ep02:report:register"
            }
          ],
          "graphPosition": {
            "x": 380,
            "y": 80
          }
        },
        {
          "nodeId": "dlg:sh-ep02:report:register",
          "displayName": "register",
          "speakerId": "minis:npc:holmes",
          "speakerLabel": "Holmes",
          "text": "Gone, and in a cab. A number is something. If he has taken a room in this hotel, the register will tell me his name, and until I know it I want Sir Henry where we can watch him. Do you think you can convince him to stay, Watson?",
          "intent": {
            "mustConveyFacts": [
              "the man got away in a cab, and the number is something",
              "if the man has taken a room in this hotel, the register will name him",
              "until Holmes knows, he wants Sir Henry kept where they can watch him",
              "Holmes asks whether Watson thinks he can convince Sir Henry to stay"
            ],
            "beat": "The task and its reason: keep Sir Henry here while Holmes reads the register for the man from the cab. Ends on the ask.",
            "voiceNote": "Holmes: brisk and dry, short sentences, conclusion first; addresses Watson and stops."
          },
          "next": [
            {
              "targetNodeId": "dlg:sh-ep02:report:turn-2"
            }
          ],
          "graphPosition": {
            "x": 680,
            "y": 80
          }
        },
        {
          "nodeId": "dlg:sh-ep02:report:turn-2",
          "kind": "free-form",
          "closeWhen": {
            "kind": "replies",
            "count": 1
          },
          "replyHint": "Tell Holmes whether you can, and how",
          "turnGuidance": "What you want: his answer, and his way of doing it if he offers one. Yes counts, no counts, a how counts: talk to him, sit him down, find the boot, a single word.\nIf he says yes, take it dry and glad. If he offers a way, say what is good in it in a word. If he says no, or doubts himself, do not press: the attempt is all you ask, and the man at the stair is the one to convince, not you.\nDo not send him to the stair, and do not say you will wait at the register; the line after yours does both.\nGive in after Watson's one reply. One or two short sentences.",
          "displayName": "turn-2",
          "text": "",
          "intent": {
            "voiceNote": "Holmes takes what Watson says, doctor or friend, and answers it in the language he said it. Up to two replies. The hint points at the choice in the question."
          },
          "next": [
            {
              "targetNodeId": "dlg:sh-ep02:report:closing"
            }
          ],
          "graphPosition": {
            "x": 980,
            "y": 80
          }
        },
        {
          "nodeId": "dlg:sh-ep02:report:closing",
          "displayName": "closing",
          "speakerId": "minis:npc:holmes",
          "speakerLabel": "Holmes",
          "text": "Good luck to you, Watson. He is at the foot of the stair, and I shall be here at the register when you have news.",
          "intent": {
            "mustConveyFacts": [
              "Holmes sends Watson to Sir Henry at the foot of the stair",
              "Holmes stays at the register and expects Watson back with news"
            ],
            "beat": "The exit points at the next action (Sir Henry at the stair) and plants the return to Holmes after the boot.",
            "voiceNote": "Holmes: brisk and dry, short sentences, conclusion first; addresses Watson and stops. The offered choice: doctor or friend, both in the question, so one word is a good reply."
          },
          "next": [],
          "graphPosition": {
            "x": 1280,
            "y": 80
          }
        }
      ],
      "groups": [],
      "interactionBinding": {
        "npcDefinitionId": "minis:npc:holmes"
      }
    },
    {
      "definitionId": "dlg:sh-ep02:ask-mortimer",
      "displayName": "Ask Dr Mortimer where he searched",
      "startNodeId": "dlg:sh-ep02:ask-mortimer:opening",
      "nodes": [
        {
          "nodeId": "dlg:sh-ep02:ask-mortimer:opening",
          "displayName": "Opening line",
          "speakerId": "minis:npc:mortimer",
          "speakerLabel": "Dr Mortimer",
          "text": "Dr Watson, sit a moment. Sir Henry had this by the morning post, and I took it from him before he could tear it up. Someone does not want him at the Hall, and I have been turning over who. A friend who believes the legend, or an enemy who does not: which do you think?",
          "intent": {
            "mustConveyFacts": [
              "Sir Henry had a letter by the morning post and Dr Mortimer took it before he tore it up",
              "someone does not want Sir Henry at the Hall",
              "Dr Mortimer asks whether the sender is a friend who believes the legend or an enemy who does not"
            ],
            "beat": "By the fire, reading the letter as Watson comes up: Dr Mortimer says Sir Henry had it by the morning post and asks who would send it, then hands it to Watson to read for himself and sends him to the floor.",
            "voiceNote": "Dr Mortimer: gentle, learned, a country doctor; measured and a little anxious. The offered choice: friend or enemy, both in the question."
          },
          "next": [
            {
              "targetNodeId": "dlg:sh-ep02:ask-mortimer:talk"
            }
          ],
          "graphPosition": {
            "x": 80,
            "y": 80
          }
        },
        {
          "nodeId": "dlg:sh-ep02:ask-mortimer:talk",
          "kind": "free-form",
          "closeWhen": {
            "kind": "replies",
            "count": 2
          },
          "replyHint": "Tell him friend or enemy, and why",
          "turnGuidance": "What you want: friend or enemy, and a reason if he has one. Either counts, both counts, neither counts, a single word counts.\nTake his answer thoughtfully; you cannot tell which yourself, and say so. If he says friend, grant that a friend who believes the legend might warn so. If he says enemy, grant that an enemy might frighten so, and own that you fear it. If he asks who, you do not know; nobody knew Sir Henry would come to this hotel.\nWatson may answer twice. Praise his reasoning, sincerely and clumsily, and do not settle the question. Do not say what the letter says; Watson reads it for himself when you hand it over.\nDo not hand him the letter or send him to the floor, and do not mention the chairs or your height; the line after yours does. Keep the skull out of it.\nTwo or three sentences.",
          "displayName": "Free-form",
          "text": "",
          "intent": {
            "voiceNote": "Dr Mortimer answers what Watson said, friend or enemy, thoughtfully. Up to two replies. The hint points at the choice in the question."
          },
          "next": [
            {
              "targetNodeId": "dlg:sh-ep02:ask-mortimer:closing"
            }
          ],
          "graphPosition": {
            "x": 80,
            "y": 200
          }
        },
        {
          "nodeId": "dlg:sh-ep02:ask-mortimer:closing",
          "displayName": "Closing line",
          "speakerId": "minis:npc:mortimer",
          "speakerLabel": "Dr Mortimer",
          "text": "Here, read it yourself. Then the floor, doctor, every inch. We searched the chairs, and I am the wrong height for the floor.",
          "intent": {
            "mustConveyFacts": [
              "Dr Mortimer hands Watson the letter to read",
              "Dr Mortimer wants the floor searched, every inch",
              "they searched the chairs",
              "Dr Mortimer says he is the wrong height for the floor"
            ],
            "beat": "By the fire, reading the letter as Watson comes up: Dr Mortimer says Sir Henry had it by the morning post and asks who would send it, then hands it to Watson to read for himself and sends him to the floor.",
            "voiceNote": "Dr Mortimer: mild, self-deprecating, a small joke against himself. Hands Watson the letter first."
          },
          "next": [],
          "graphPosition": {
            "x": 80,
            "y": 320
          }
        }
      ],
      "groups": [],
      "interactionBinding": {
        "npcDefinitionId": "minis:npc:mortimer"
      }
    },
    {
      "definitionId": "dlg:sh-ep02:join",
      "displayName": "Go back to Holmes",
      "startNodeId": "dlg:sh-ep02:join:opening",
      "nodes": [
        {
          "nodeId": "dlg:sh-ep02:join:opening",
          "displayName": "Opening line",
          "speakerId": "minis:npc:holmes",
          "speakerLabel": "Holmes",
          "text": "Sir Henry has his boot and his temper back. The man from the cab is not in this register: there is a Mr Johnson of Newcastle and a Mrs Oldmore of Alton, both older than the case. So he watches from outside, and still somebody has been inside this room. Which troubles you more, Watson: the boot that went, or the boot that came back?",
          "intent": {
            "mustConveyFacts": [
              "Sir Henry has his boot and his temper back",
              "the man from the cab is not in the register: a Mr Johnson of Newcastle and a Mrs Oldmore of Alton, both older than the case",
              "he watches from outside, and still somebody has been inside this room",
              "Holmes asks whether the boot that went or the boot that came back troubles Watson more"
            ],
            "beat": "At the desk, after the boot is back: Holmes reports that Sir Henry is settled and that the man from the cab is not in the register, and asks which boot troubles Watson more.",
            "voiceNote": "Holmes: brisk and dry, short sentences, conclusion first; addresses Watson and stops. The offered choice: went or came back, both in the question."
          },
          "next": [
            {
              "targetNodeId": "dlg:sh-ep02:join:probe"
            }
          ],
          "graphPosition": {
            "x": 80,
            "y": 80
          }
        },
        {
          "nodeId": "dlg:sh-ep02:join:probe",
          "shuffleChoices": true,
          "displayName": "The probe",
          "speakerId": "minis:npc:holmes",
          "speakerLabel": "Holmes",
          "text": "The boot that came back was",
          "next": [
            {
              "targetNodeId": "dlg:sh-ep02:join:talk",
              "choiceText": "the new brown"
            },
            {
              "targetNodeId": "dlg:sh-ep02:join:talk",
              "choiceText": "the old black"
            },
            {
              "targetNodeId": "dlg:sh-ep02:join:talk",
              "choiceText": "the patent leather"
            }
          ],
          "graphPosition": {
            "x": 380,
            "y": 80
          }
        },
        {
          "nodeId": "dlg:sh-ep02:join:talk",
          "kind": "free-form",
          "closeWhen": {
            "kind": "replies",
            "count": 2
          },
          "replyHint": "Say which boot worries you, and why",
          "turnGuidance": "What you want: which boot troubles him more, and why. Went counts, came back counts, a single word counts. The pair he tapped is his answer to which boot came back; the new brown is right.\nKeep what is right in his answer and say so. If he says the boot that came back, agree in a word and ask why. If he says the boot that went, ask what a thief wants with one boot. If he tapped the wrong pair, correct it in one plain sentence: the brown came back, the black is still gone.\nDo not give the conclusion yourself: not the shop and the man, not the hand in this room, not that you cannot leave London. The line after yours says all of it, and your reading does not change with his answer.\nWatson may answer twice. Grant what is fair once, and keep your reading.\nOne or two short sentences.",
          "displayName": "Free-form",
          "text": "",
          "intent": {
            "voiceNote": "Holmes takes Watson's answer, the boot that went or the boot that came back, and keeps what is right in it. Up to two replies. The hint points at the choice in the question."
          },
          "next": [
            {
              "targetNodeId": "dlg:sh-ep02:join:closing"
            }
          ],
          "graphPosition": {
            "x": 80,
            "y": 200
          }
        },
        {
          "nodeId": "dlg:sh-ep02:join:closing",
          "displayName": "Closing line",
          "speakerId": "minis:npc:holmes",
          "speakerLabel": "Holmes",
          "text": "The one that came back. A new boot smells of the shop; an old one, of the man. Return the one, keep the other: the thief wants the man, not the leather. It means a hand in this room, and I cannot leave London to watch for it. Sir Henry is in the armchair, and he has something to ask you.",
          "intent": {
            "mustConveyFacts": [
              "the boot that came back is the one that matters",
              "a new boot smells of the shop and an old one of the man: the thief who returned the one and kept the other wants the man, not the leather",
              "it means a hand in this room",
              "Holmes cannot leave London to watch for it",
              "Sir Henry is in the armchair and has something to ask Watson"
            ],
            "beat": "At the desk, after the boot is back and Watson has looked out of the window at the cab: Holmes reports that Sir Henry is settled and the cab has gone, that nobody in the register is watching him, and asks which boot troubles Watson more. The join of the two tracks.",
            "voiceNote": "Holmes: brisk and dry; the conclusion is his and does not change with Watson's answer. Sends Watson to Sir Henry."
          },
          "next": [],
          "graphPosition": {
            "x": 80,
            "y": 320
          }
        }
      ],
      "groups": [],
      "interactionBinding": {
        "npcDefinitionId": "minis:npc:holmes"
      }
    }
  ],
  "questDefinitions": [
    {
      "definitionId": "quest:sh-ep01:beats",
      "displayName": "Episode 1: The Curse of the Baskervilles",
      "description": "A morning in 1889, in the sitting room at 221B Baker Street. A visitor called last night, missed Holmes, and left his walking stick and no card. Holmes is at breakfast and wants to know what Watson makes of the stick. Before the morning is out, the visitor returns with a legend, a death, and a hound.",
      "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: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": [],
              "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": "The visitor's walking stick lies on the hearth rug. Take a close look at it.",
              "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": "Holmes wants to know what the stick says about its owner: a country doctor or a town one?",
              "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"
                },
                {
                  "type": "learn-fact",
                  "factId": "sh-ep01:stick-owner",
                  "displayText": "The stick is James Mortimer's, a gift from friends at Charing Cross Hospital."
                }
              ],
              "showInHud": true,
              "countsTowardProgress": true,
              "autoLaunch": false,
              "graphPosition": {
                "x": 380,
                "y": 200
              }
            },
            {
              "nodeId": "node:sh-ep01:arrive-door",
              "displayName": "Answer the door",
              "description": "Someone is knocking at the door of 221B. Go and see who it is.",
              "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": "Dr Mortimer has come for his stick, and he has a story for Holmes.",
              "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": [
                {
                  "type": "learn-fact",
                  "factId": "sh-ep01:mortimer",
                  "displayText": "Dr Mortimer of Dartmoor has a story for Holmes, and Sir Henry arrives soon."
                }
              ],
              "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": [
                {
                  "type": "learn-fact",
                  "factId": "sh-ep01:legend",
                  "displayText": "Hugo Baskerville was found dead on the moor, a black hound at his throat."
                }
              ],
              "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": [
                {
                  "type": "learn-fact",
                  "factId": "sh-ep01:death",
                  "displayText": "Sir Charles Baskerville died in his yew alley; Mortimer saw a giant hound's footprints."
                }
              ],
              "showInHud": false,
              "countsTowardProgress": false,
              "autoLaunch": false,
              "graphPosition": {
                "x": 380,
                "y": 440
              }
            },
            {
              "nodeId": "node:sh-ep01:look-manuscript",
              "displayName": "Examine the manuscript",
              "description": "Mortimer has laid an old manuscript on the table. Read it.",
              "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": "Tell Holmes what the old manuscript says.",
              "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": [
                {
                  "type": "learn-fact",
                  "factId": "sh-ep01:manuscript",
                  "displayText": "The manuscript, from 1742, tells of Hugo Baskerville and a black hound."
                }
              ],
              "showInHud": true,
              "countsTowardProgress": true,
              "autoLaunch": false,
              "graphPosition": {
                "x": 380,
                "y": 560
              }
            },
            {
              "nodeId": "node:sh-ep01:look-newspaper",
              "displayName": "Examine the newspaper",
              "description": "Mortimer has laid a newspaper on the table. Read what it says about Sir Charles.",
              "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": "Tell Holmes how Sir Charles died: his heart, or something else?",
              "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": [
                {
                  "type": "learn-fact",
                  "factId": "sh-ep01:newspaper",
                  "displayText": "The newspaper says Sir Charles died with no mark, and doctors blamed his heart."
                }
              ],
              "showInHud": true,
              "countsTowardProgress": true,
              "autoLaunch": false,
              "graphPosition": {
                "x": 380,
                "y": 680
              }
            },
            {
              "nodeId": "node:sh-ep01:arrive-window",
              "displayName": "Look out of the window",
              "description": "There are wheels on the cobbles outside. Go to the window and look.",
              "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": "Holmes is going to Waterloo to meet Sir Henry. Tell him whether you will come.",
              "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": [
                {
                  "type": "learn-fact",
                  "factId": "sh-ep01:invitation",
                  "displayText": "Holmes is going to meet Sir Henry at Waterloo and asks Watson to come."
                }
              ],
              "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": [
                {
                  "type": "advanceToNextScene",
                  "sceneId": null
                }
              ],
              "showInHud": false,
              "countsTowardProgress": false,
              "autoLaunch": false,
              "graphPosition": {
                "x": 80,
                "y": 920
              }
            }
          ],
          "groups": [],
          "entryNodeIds": [
            "node:sh-ep01:play-open"
          ]
        }
      ],
      "rewardDefinitions": [],
      "progressDisplay": {
        "style": "icons",
        "images": {
          "notBegun": "assets/hud/glass-not-begun.png",
          "begun": "assets/hud/glass-begun.png",
          "done": "assets/hud/glass-done.png"
        }
      }
    }
  ],
  "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",
          "inset": 20
        },
        "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",
              "inset": 20
            },
            "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",
              "inset": 20
            },
            "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",
              "inset": 20
            },
            "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",
              "inset": 20
            },
            "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",
              "inset": 20
            },
            "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",
          "inset": 20
        },
        "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",
              "inset": 20
            },
            "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",
              "inset": 20
            },
            "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",
              "inset": 20
            },
            "anchor": null,
            "props": {
              "text": {
                "kind": "literal",
                "value": "Main Menu"
              }
            },
            "events": {
              "onClick": {
                "action": "quit-to-menu"
              }
            },
            "children": [],
            "visibility": "always"
          }
        ],
        "visibility": "always"
      }
    }
  ],
  "hudDefinition": {
    "definitionId": "season:sherlock:hud",
    "definitionKind": "hud",
    "root": {
      "nodeId": "season:sherlock/minis:ui:hud:root",
      "kind": "container",
      "styleId": null,
      "layout": {
        "direction": "column",
        "gap": 12,
        "padding": 0,
        "align": "start",
        "justify": "start",
        "width": "fill",
        "height": "fill",
        "inset": 20
      },
      "anchor": null,
      "props": {},
      "events": {},
      "children": [
        {
          "nodeId": "season:sherlock/minis:ui:hud:gradient",
          "kind": "container",
          "styleId": "hud-gradient",
          "layout": {
            "direction": "column",
            "gap": 0,
            "padding": 0,
            "align": "center",
            "justify": "start",
            "width": "fill",
            "height": 220,
            "inset": 0
          },
          "anchor": "top-center",
          "props": {},
          "events": {},
          "children": [],
          "visibility": "always"
        },
        {
          "nodeId": "season:sherlock/minis:ui:hud:top",
          "kind": "container",
          "styleId": null,
          "layout": {
            "direction": "column",
            "gap": 10,
            "padding": 0,
            "align": "center",
            "justify": "center",
            "width": "fill",
            "height": "auto",
            "inset": 18
          },
          "anchor": "top-center",
          "props": {},
          "events": {},
          "children": [
            {
              "nodeId": "season:sherlock/minis:ui:hud:progress",
              "kind": "quest-progress",
              "styleId": null,
              "layout": {
                "direction": "row",
                "gap": 10,
                "padding": 0,
                "align": "center",
                "justify": "center",
                "width": "auto",
                "height": 22,
                "inset": 20
              },
              "anchor": null,
              "props": {},
              "events": {
                "onClick": {
                  "action": "open-journal"
                }
              },
              "children": [],
              "visibility": "always"
            },
            {
              "nodeId": "season:sherlock/minis:ui:hud:objective",
              "kind": "text",
              "styleId": "hud-objective",
              "layout": {
                "direction": "column",
                "gap": 12,
                "padding": 0,
                "align": "center",
                "justify": "center",
                "width": "auto",
                "height": "auto",
                "inset": 20
              },
              "anchor": null,
              "props": {
                "text": {
                  "kind": "runtime-ref",
                  "path": "quest.objective"
                }
              },
              "events": {},
              "children": [],
              "visibility": "whileExploring"
            }
          ],
          "visibility": "always"
        },
        {
          "nodeId": "season:sherlock/minis:ui:hud:corner",
          "kind": "container",
          "styleId": null,
          "layout": {
            "direction": "column",
            "gap": 0,
            "padding": 0,
            "align": "center",
            "justify": "start",
            "width": "auto",
            "height": "auto",
            "inset": 18
          },
          "anchor": "top-right",
          "props": {},
          "events": {},
          "children": [
            {
              "nodeId": "season:sherlock/minis:ui:hud:notebook",
              "kind": "button",
              "styleId": "button-hud-round",
              "layout": {
                "direction": "column",
                "gap": 12,
                "padding": 6,
                "align": "center",
                "justify": "center",
                "width": "auto",
                "height": "auto",
                "inset": 20
              },
              "anchor": null,
              "props": {},
              "events": {
                "onClick": {
                  "action": "open-journal"
                }
              },
              "children": [
                {
                  "nodeId": "season:sherlock/minis:ui:hud:notebook-image",
                  "kind": "image",
                  "styleId": null,
                  "layout": {
                    "direction": "column",
                    "gap": 12,
                    "padding": 0,
                    "align": "center",
                    "justify": "center",
                    "width": 18,
                    "height": 18,
                    "inset": 20
                  },
                  "anchor": null,
                  "props": {
                    "src": {
                      "kind": "literal",
                      "value": "assets/hud/notebook.png"
                    },
                    "alt": {
                      "kind": "literal",
                      "value": "Notebook"
                    }
                  },
                  "events": {},
                  "children": [],
                  "visibility": "always"
                }
              ],
              "visibility": "whileExploring"
            }
          ],
          "visibility": "whileExploring"
        }
      ],
      "visibility": "always"
    }
  },
  "journalDefinition": {
    "tabs": [
      {
        "tabId": "case",
        "label": "The case",
        "sections": [
          {
            "kind": "quest-steps"
          },
          {
            "kind": "known-facts",
            "emptyText": "No findings yet."
          }
        ]
      },
      {
        "tabId": "spanish",
        "label": "My Spanish",
        "sections": [
          {
            "kind": "contributed",
            "sectionId": "sugarlang.my-language"
          }
        ]
      }
    ]
  },
  "uiTheme": {
    "tokens": {
      "color.text": "#f4ecdc",
      "color.muted": "#a8977a",
      "color.surface": "rgba(30, 24, 18, 0.92)",
      "color.surfaceStrong": "rgba(40, 30, 18, 0.95)",
      "color.surfaceMuted": "rgba(8, 6, 4, 0.45)",
      "color.primary": "#dfa84e",
      "color.primaryText": "#1a1508",
      "font.body": "system-ui, sans-serif",
      "font.heading": "Georgia, \"Times New Roman\", serif",
      "radius.panel": "16px",
      "radius.button": "12px",
      "panel.style": "plain",
      "dialogue.layout": "transcript",
      "color.accent": "#e2b45e",
      "color.border": "#6b5a3e",
      "color.outline": "#e2b45e"
    },
    "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"
        }
      },
      {
        "styleId": "hud-gradient",
        "displayName": "HUD Gradient",
        "properties": {
          "background": "linear-gradient(rgba(10,8,5,0.9), rgba(10,8,5,0.5) 45%, rgba(10,8,5,0))"
        }
      },
      {
        "styleId": "hud-objective",
        "displayName": "HUD Objective",
        "properties": {
          "color": "#efdfb8",
          "fontFamily": "font.heading",
          "fontSize": "14px",
          "fontWeight": "600",
          "textShadow": "0 1px 2px rgba(0,0,0,0.6)"
        }
      },
      {
        "styleId": "button-hud-round",
        "displayName": "HUD Round Button",
        "properties": {
          "color": "color.accent",
          "background": "rgba(10, 8, 5, 0.35)",
          "borderColor": "color.accent",
          "borderWidth": "1px",
          "borderRadius": "999px"
        }
      }
    ],
    "stylesheetAssetPath": null,
    "fonts": []
  },
  "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"
  },
  "gatewaySessionHeaderName": "x-minis-session",
  "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=b075fb5e693a",
    "assets/sugarlang/competency-inventory-it.json": "/assets/sugarlang/competency-inventory-it.json?v=45c102a9b2e4",
    "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-holdingIdle.glb": "/assets/animations/cast-mortimer-holdingIdle.glb?v=25217989bfb4",
    "assets/animations/cast-mortimer-holdingWalk.glb": "/assets/animations/cast-mortimer-holdingWalk.glb?v=f4bd342b7f22",
    "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-holdingIdle.glb": "/assets/animations/cast-watson-holdingIdle.glb?v=fc7cfbd466fd",
    "assets/animations/cast-watson-holdingWalk.glb": "/assets/animations/cast-watson-holdingWalk.glb?v=8df0e6cb14b6",
    "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-boot-brown.glb": "/assets/blockout/prop-boot-brown.glb?v=4ba9c959630d",
    "assets/blockout/prop-letter-folded.glb": "/assets/blockout/prop-letter-folded.glb?v=a353a10c6d6c",
    "assets/blockout/prop-newspaper-open.glb": "/assets/blockout/prop-newspaper-open.glb?v=d25b27c8da62",
    "assets/blockout/prop-watson-teacup.glb": "/assets/blockout/prop-watson-teacup.glb?v=37a0500a4efa",
    "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=f6918ed776d2",
    "assets/examine/sir-henry-letter.jpg": "/assets/examine/sir-henry-letter.jpg?v=91aba6d58cc7",
    "assets/hud/glass-begun.png": "/assets/hud/glass-begun.png?v=b46c64881e12",
    "assets/hud/glass-done.png": "/assets/hud/glass-done.png?v=4ee53b9b67b8",
    "assets/hud/glass-not-begun.png": "/assets/hud/glass-not-begun.png?v=84dc23041ffa",
    "assets/hud/notebook.png": "/assets/hud/notebook.png?v=d4e725011eaf",
    "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=a6540bcaabd5",
    "assets/sugarlang/variants.json": "/assets/sugarlang/variants.json?v=296fe26a3b2b"
  },
  "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: The New Baskerville",
      "unlockCondition": "always",
      "thumbnailTextureDefinitionId": null
    }
  ]
}
