{
  "contents": [
    {
      "columns": 12,
      "contents": [
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-saint-juno-s-bar",
          "kind": "entrance",
          "name": "Saint Juno's bar",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p4",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "C4"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-meet-saint-juno-at-the-static-room",
          "kind": "exit",
          "name": "Meet Saint Juno at the Static Room",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p5",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "C5"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-the-neon-market-loading-dock-approach",
          "kind": "exit",
          "name": "The neon market (loading-dock approach)",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p6",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "D4"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-the-subway-tunnel-approach",
          "kind": "exit",
          "name": "The subway (tunnel approach)",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p7",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "E7"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "The aerodyne is parked at the port (DC 14 tech to hotwire, or 1,000 eddies to rent no-questions-asked).",
          "drawFrom": null,
          "id": "c-steal-an-aerodyne-roof-approach",
          "kind": "exit",
          "name": "Steal an aerodyne (roof approach)",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p8",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "F4"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Fifty floors. The office is 30, the cleanroom 31, the bunker is below the basement, and the helipad on top.",
          "drawFrom": null,
          "id": "c-the-kessler-tower",
          "kind": "note",
          "name": "The Kessler tower",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p9",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "F4"
          ],
          "stat": null,
          "tags": []
        }
      ],
      "edges": [],
      "mapId": "m-port-kessler-from-above",
      "regions": [
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-downtown",
          "name": "Downtown",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p1",
          "readAloud": "Glass towers, holo-ads the size of buildings. The Kessler tower is the tallest, its crown glowing teal.",
          "reveal": "on-entry",
          "shape": [
            "E3:H5"
          ],
          "tags": []
        },
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-the-port",
          "name": "The port",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p2",
          "readAloud": "Container cranes and automated freighters.",
          "reveal": "on-entry",
          "shape": [
            "I5:L8"
          ],
          "tags": []
        },
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-the-old-city",
          "name": "The old city",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p3",
          "readAloud": "Low-rise sprawl, market streets, and the neon district.",
          "reveal": "on-entry",
          "shape": [
            "A1:D8"
          ],
          "tags": []
        }
      ],
      "rows": 8,
      "dmNotes": "ADVENTURE OVERVIEW. Saint Juno's buyer is Kessler's own head of security, Director Hale, who wants the prototype stolen so he can blame an outside crew and sell it himself. The prototype (the 'Lethe rig') is in the bunker, wired into a test subject: Mara Voss, a journalist who knows about Hale. Twist: freeing Mara exposes Hale, and the job becomes 'get Mara and the rig out'. Approaches: market loading dock (social/stealth), subway tunnel (sneaky), helipad (loud). The building locks down 10 rounds after any alarm; the helipad and subway are the extractions. Pay: 4,000 eddies (≈ gp), or 10,000 from a news network for Mara's story."
    },
    {
      "columns": 6,
      "contents": [
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-the-street-door",
          "kind": "entrance",
          "name": "The street door",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p4",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "C13"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-back-out-to-the-city",
          "kind": "exit",
          "name": "Back out to the city",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p5",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "D13"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-out-the-back-to-the-neon-market",
          "kind": "exit",
          "name": "Out the back to the neon market",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p6",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "F12"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "The fixer. Gives the job, a blueprint of the Kessler tower, three approaches, and 500 eddies up front. Lies about the buyer. A DC 15 Insight notices she's frightened of whoever it is.",
          "drawFrom": null,
          "id": "c-saint-juno",
          "kind": "note",
          "name": "Saint Juno",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p7",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "A9"
          ],
          "stat": null,
          "tags": [
            "quest:Steal the Kessler prototype|Saint Juno's job: the neural prototype from Kessler Dynamics, before the board demos it on Friday. 500 eddies up front."
          ]
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Chrome-armoured. Throws out troublemakers; fights only if the bar is threatened.",
          "drawFrom": null,
          "id": "c-bouncer-dozer",
          "kind": "creature",
          "name": "Bouncer Dozer",
          "provenance": "ai-generated",
          "publicName": "a mountain in a suit",
          "publicRef": "p8",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "D12"
          ],
          "stat": {
            "packId": "dndmax.dogfood",
            "selector": "ogre"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Crew from a rival fixer. Will try to follow the party and steal the score.",
          "drawFrom": null,
          "id": "c-regular-with-a-grudge-1",
          "kind": "creature",
          "name": "Regular with a grudge 1",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p9",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "C6"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "ganger"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Crew from a rival fixer. Will try to follow the party and steal the score.",
          "drawFrom": null,
          "id": "c-regular-with-a-grudge-2",
          "kind": "creature",
          "name": "Regular with a grudge 2",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p10",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "E9"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "ganger"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Juno's. She'll lend it for a cut.",
          "drawFrom": null,
          "id": "c-the-motorcycle",
          "kind": "prop",
          "name": "The motorcycle",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p11",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "D5"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "The advance: 500 eddies, a Kessler keycard (level 1), a jammer (blinds cameras in one room for a minute, 3 uses).",
          "drawFrom": "street-loot",
          "id": "c-juno-s-case",
          "kind": "loot",
          "name": "Juno's case",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p12",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "A10"
          ],
          "stat": null,
          "tags": [
            "coins:500 eddies",
            "item:Level-1 Kessler keycard",
            "item:Jammer (blinds cameras in one room, 3 uses)"
          ]
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-neon-sign",
          "kind": "light",
          "name": "Neon sign",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p13",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "C1"
          ],
          "stat": null,
          "tags": []
        }
      ],
      "edges": [],
      "mapId": "m-the-static-room",
      "regions": [
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-the-bar-floor",
          "name": "The bar floor",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p1",
          "readAloud": "Neon pink and electric blue, a jukebox playing something sad, a motorcycle parked inside for no reason, and a crowd that is very good at not looking at you.",
          "reveal": "on-entry",
          "shape": [
            "B3:E12"
          ],
          "tags": []
        },
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-the-bar",
          "name": "The bar",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p2",
          "readAloud": "A long bar under a pink neon sign. The bartender has four arms.",
          "reveal": "on-entry",
          "shape": [
            "B2:E2"
          ],
          "tags": []
        },
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-juno-s-booth",
          "name": "Juno's booth",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p3",
          "readAloud": "A red leather booth, and in it a woman in white with a halo of LED wire. 'You're late. Sit.'",
          "reveal": "on-entry",
          "shape": [
            "A8:B10"
          ],
          "tags": []
        }
      ],
      "rows": 13,
      "dmNotes": "Saint Juno's office is the booth at A8:B10. The bar is neutral ground — anyone who starts a fight here has the bouncer (and every regular) to deal with."
    },
    {
      "columns": 12,
      "contents": [
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-from-the-street",
          "kind": "entrance",
          "name": "From the street",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p5",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "F8"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-back-to-the-city",
          "kind": "exit",
          "name": "Back to the city",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p6",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "E8"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Rolls on Street heat when the table opens.",
          "drawFrom": "street-heat",
          "id": "c-whoever-is-working-the-alley-tonight",
          "kind": "creature",
          "name": "Whoever is working the alley tonight",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p7",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "F5"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "ganger"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-the-bar-s-back-door",
          "kind": "exit",
          "name": "The bar's back door",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p8",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "B7"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-under-the-loading-dock-shutter",
          "kind": "exit",
          "name": "Under the loading-dock shutter",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p9",
          "readAloud": "A freight lift. Floor 30 is lit on the panel.",
          "reveal": "always",
          "shape": [
            "L6"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-razorback-ganger-1",
          "kind": "creature",
          "name": "Razorback ganger 1",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p10",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "F3"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "ganger"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-razorback-ganger-2",
          "kind": "creature",
          "name": "Razorback ganger 2",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p11",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "G5"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "ganger"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-razorback-ganger-3",
          "kind": "creature",
          "name": "Razorback ganger 3",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p12",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "E6"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "ganger"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Sells the dock guard's shift schedule for 300 eddies — or tips off Kessler if the party stiffs him.",
          "drawFrom": null,
          "id": "c-razorback-boss-tusk",
          "kind": "creature",
          "name": "Razorback boss Tusk",
          "provenance": "ai-generated",
          "publicName": "a man with chrome tusks",
          "publicRef": "p13",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "G2"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "street-samurai"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-dock-guard",
          "kind": "creature",
          "name": "Dock guard",
          "provenance": "ai-generated",
          "publicName": "a dozing guard",
          "publicRef": "p14",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "K6"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "corp-security"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Bursts of scalding steam: anyone shoved onto it takes 1d6 fire.",
          "drawFrom": null,
          "hazard": {
            "damage": "1d6",
            "type": "fire",
            "save": {
              "stat": "dex",
              "dc": 12
            },
            "rearms": true,
            "detectDc": 10
          },
          "id": "c-steam-grate",
          "kind": "hazard",
          "name": "Steam grate",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p15",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "F2",
            "F6"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-stalls",
          "kind": "cover",
          "name": "Stalls",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p16",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "D2:D3",
            "D5:D6",
            "H2:H3",
            "H6:H7"
          ],
          "stat": null,
          "tags": [
            "light-cover"
          ]
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Bootleg ICE-breaker (advantage on one hack), and a stall full of junk.",
          "drawFrom": "street-loot",
          "id": "c-firmware-stall",
          "kind": "loot",
          "name": "Firmware stall",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p17",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "I4"
          ],
          "stat": null,
          "tags": [
            "item:Bootleg ICE-breaker [picks: 3]"
          ]
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "A trader (Issue 411): stand beside them and open your Bag to buy and sell.",
          "drawFrom": null,
          "id": "c-fixer-lune",
          "kind": "creature",
          "name": "Fixer Lune",
          "provenance": "ai-generated",
          "publicName": "a fixer under a neon umbrella",
          "publicRef": "p18",
          "readAloud": "A woman under a neon umbrella runs a stall of things that fell off trucks. 'Chrome, stims, a little ICE. No receipts.'",
          "reveal": "always",
          "shape": [
            "F7"
          ],
          "stat": {
            "packId": "dndmax.dogfood",
            "selector": "guard"
          },
          "tags": [
            "friendly",
            "trader",
            "currency:eddies",
            "buys:50",
            "sells:Stim injector (+1d6 temp HP)@40x4",
            "sells:Trauma kit (heals 2d6, three uses)@80x2",
            "sells:Smart pistol (+1)@400x1",
            "sells:EMP grenade (stuns drones in 2 squares)@120x2",
            "sells:Armour vest [+2 AC]@200x1",
            "sells:ICE-breaker [picks: 2]@150x1",
            "sells:Flashlight@10"
          ]
        }
      ],
      "edges": [],
      "mapId": "m-the-neon-market",
      "regions": [
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-the-alley",
          "name": "The alley",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p1",
          "readAloud": "A narrow canyon of stalls under dripping tarps, steam from grates, and wet neon everywhere. Noodle stands, chrome dealers, a fortune-telling machine.",
          "reveal": "on-entry",
          "shape": [
            "E1:H8"
          ],
          "tags": []
        },
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-west-stalls",
          "name": "West stalls",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p2",
          "readAloud": "Stalls selling knock-off implants.",
          "reveal": "on-entry",
          "shape": [
            "C1:D8"
          ],
          "tags": []
        },
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-east-stalls",
          "name": "East stalls",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p3",
          "readAloud": "Food stalls and a stall selling 'definitely legal' firmware.",
          "reveal": "on-entry",
          "shape": [
            "H1:I8"
          ],
          "tags": []
        },
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-the-loading-dock",
          "name": "The loading dock",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p4",
          "readAloud": "A Kessler loading bay, the shutter half up, a security guard dozing in the booth.",
          "reveal": "on-entry",
          "shape": [
            "K5:L7"
          ],
          "tags": []
        }
      ],
      "rows": 8,
      "dmNotes": "The street approach. Kessler's loading dock (K6:L6) opens off the market alley. The Razorbacks gang taxes the alley and will sell a way in — or sell the party out."
    },
    {
      "columns": 12,
      "contents": [
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-down-the-dead-escalator",
          "kind": "entrance",
          "name": "Down the dead escalator",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p4",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "C4"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-up-to-the-street",
          "kind": "exit",
          "name": "Up to the street",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p5",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "B4"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-the-kessler-shutter",
          "kind": "exit",
          "name": "The Kessler shutter",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p6",
          "readAloud": "The shutter rolls up on a jammed keycard. Behind it, a concrete corridor going down.",
          "reveal": "always",
          "shape": [
            "L5"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-patrol-drone-1",
          "kind": "creature",
          "name": "Patrol drone 1",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p7",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "F4"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "maintenance-drone"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-patrol-drone-2",
          "kind": "creature",
          "name": "Patrol drone 2",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p8",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "I5"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "maintenance-drone"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Knows the drone patrol pattern. Wants food and a blanket.",
          "drawFrom": null,
          "id": "c-tunnel-dweller",
          "kind": "creature",
          "name": "Tunnel dweller",
          "provenance": "ai-generated",
          "publicName": "someone sleeping on a bench",
          "publicRef": "p9",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "G6"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "outlaw"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Anyone on the tracks: 2d6 lightning, and the next train is 10 rounds away.",
          "drawFrom": null,
          "hazard": {
            "damage": "2d6",
            "type": "lightning",
            "save": {
              "stat": "dex",
              "dc": 13,
              "half": true
            },
            "condition": {
              "condition": "stunned",
              "duration": {
                "kind": "end-of-next-turn"
              }
            },
            "rearms": true
          },
          "id": "c-live-rail",
          "kind": "hazard",
          "name": "Live rail",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p10",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "A1:L2",
            "A7:L8"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-benches",
          "kind": "cover",
          "name": "Benches",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p11",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "F4:G4",
            "F6:G6"
          ],
          "stat": null,
          "tags": [
            "light-cover"
          ]
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Old credsticks and a Kessler maintenance keycard.",
          "drawFrom": "street-loot",
          "id": "c-abandoned-ticket-booth",
          "kind": "loot",
          "name": "Abandoned ticket booth",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p12",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "K3"
          ],
          "stat": null,
          "tags": [
            "item:Old credsticks: 40 eddies",
            "item:Kessler maintenance keycard [key: keycard-1]"
          ]
        }
      ],
      "edges": [],
      "mapId": "m-kessler-station-closed",
      "regions": [
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-the-platform",
          "name": "The platform",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p1",
          "readAloud": "Tiled walls, dead escalators, benches with their plastic seats melted. Emergency lights. A rolling shutter at the far end stencilled KESSLER — AUTHORISED ONLY.",
          "reveal": "on-entry",
          "shape": [
            "B3:K6"
          ],
          "tags": []
        },
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-the-tracks",
          "name": "The tracks",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p2",
          "readAloud": "Live rails. A distant rumble.",
          "reveal": "on-entry",
          "shape": [
            "A1:L2",
            "A7:L8"
          ],
          "tags": []
        },
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-the-escalators",
          "name": "The escalators",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p3",
          "readAloud": "Escalators up to a sealed street entrance.",
          "reveal": "on-entry",
          "shape": [
            "B3:C6"
          ],
          "tags": []
        }
      ],
      "rows": 8,
      "dmNotes": "The sneaky approach. A subway station closed for twenty years, now Kessler's private service tunnel. Maintenance drones patrol; a shutter (L4:L5) leads into the bunker corridor. This is also an extraction route — a train passes every 10 rounds."
    },
    {
      "columns": 12,
      "contents": [
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-where-the-aerodyne-sets-down",
          "kind": "entrance",
          "name": "Where the aerodyne sets down",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p3",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "F5"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-fly-back-down-to-the-city",
          "kind": "exit",
          "name": "Fly back down to the city",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p4",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "G5"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-the-roof-access-door",
          "kind": "exit",
          "name": "The roof access door",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p5",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "K2"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-roof-turret-1",
          "kind": "creature",
          "name": "Roof turret 1",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p6",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "B3"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "security-turret"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-roof-turret-2",
          "kind": "creature",
          "name": "Roof turret 2",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p7",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "B6"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "security-turret"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-roof-guard-1",
          "kind": "creature",
          "name": "Roof guard 1",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p8",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "J4"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "corp-security"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-roof-guard-2",
          "kind": "creature",
          "name": "Roof guard 2",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p9",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "K5"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "corp-security"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Fifty floors. Knocked off: DC 14 Dex save to grab the edge, or fall.",
          "drawFrom": null,
          "hazard": {
            "damage": "4d6",
            "type": "bludgeoning",
            "save": {
              "stat": "dex",
              "dc": 14
            },
            "condition": {
              "condition": "prone",
              "duration": {
                "kind": "until-removed"
              }
            },
            "rearms": true
          },
          "id": "c-edge-of-the-roof",
          "kind": "hazard",
          "name": "Edge of the roof",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p10",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "A1:A8",
            "L1:L8"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [
            {
              "id": "b-1",
              "on": "token-enters",
              "arrival": "walked-in",
              "autoFire": true,
              "does": {
                "kind": "tell-dm",
                "text": "Guard post console. Hack DC 14 to switch off the turrets; failure triggers the 10-round lockdown."
              }
            }
          ],
          "dmCue": null,
          "dmNotes": "Disabling the turrets takes a DC 14 hack; failing trips the alarm.",
          "drawFrom": null,
          "id": "c-guard-post-console",
          "kind": "hazard",
          "name": "Guard post console",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p11",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "K3"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-ventilation-units",
          "kind": "cover",
          "name": "Ventilation units",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p12",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "B2:C3",
            "B5:C6"
          ],
          "stat": null,
          "tags": [
            "heavy-cover"
          ]
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Two rifles, armour vests, and a keycard (level 2).",
          "drawFrom": "street-loot",
          "id": "c-guard-post-locker",
          "kind": "loot",
          "name": "Guard post locker",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p13",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "K2"
          ],
          "stat": null,
          "tags": [
            "item:Two rifles",
            "item:Armour vests (2) [+2 AC]",
            "item:Level-2 keycard"
          ]
        }
      ],
      "edges": [],
      "mapId": "m-kessler-tower-helipad",
      "regions": [
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-the-helipad",
          "name": "The helipad",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p1",
          "readAloud": "Wind, rain, and the whole city glittering fifty floors down. A landing circle, two ventilation units, and a guard post.",
          "reveal": "on-entry",
          "shape": [
            "D2:I7"
          ],
          "tags": []
        },
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-the-guard-post",
          "name": "The guard post",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p2",
          "readAloud": "A small booth with a coffee machine and a monitor wall.",
          "reveal": "on-entry",
          "shape": [
            "K2:K3"
          ],
          "tags": []
        }
      ],
      "rows": 8,
      "dmNotes": "The loud approach — and the best extraction. Two turrets, a guard post, and the executive aerodyne. The roof access door (K2) goes down to the office floor."
    },
    {
      "columns": 12,
      "contents": [
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-the-stairwell-door",
          "kind": "entrance",
          "name": "The stairwell door",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p5",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "B7"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-down-the-freight-lift-to-the-loading-dock",
          "kind": "exit",
          "name": "Down the freight lift to the loading dock",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p6",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "A7"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-up-the-stairs-to-the-roof",
          "kind": "exit",
          "name": "Up the stairs to the roof",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p7",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "L8"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-lift-to-31-the-cleanroom",
          "kind": "exit",
          "name": "Lift to 31: the cleanroom",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p8",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "K1"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-night-shift-guard-1",
          "kind": "creature",
          "name": "Night-shift guard 1",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p9",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "E4"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "corp-security"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-night-shift-guard-2",
          "kind": "creature",
          "name": "Night-shift guard 2",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p10",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "H6"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "corp-security"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-cleaning-drone",
          "kind": "creature",
          "name": "Cleaning drone",
          "provenance": "ai-generated",
          "publicName": "a humming cleaning drone",
          "publicRef": "p11",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "F7"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "maintenance-drone"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Hates Kessler. For 200 eddies, she'll loop the cameras for 10 minutes.",
          "drawFrom": null,
          "id": "c-night-shift-coder-priya",
          "kind": "note",
          "name": "Night-shift coder Priya",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p12",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "G2"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Messages between Hale and 'S.J.' — he is the buyer. And a level-3 keycard.",
          "drawFrom": null,
          "id": "c-hale-s-terminal",
          "kind": "loot",
          "name": "Hale's terminal",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p13",
          "readAloud": null,
          "reveal": "when-found",
          "shape": [
            "B2"
          ],
          "stat": null,
          "tags": [
            "item:Messages between Hale and 'S.J.' [quest]",
            "item:Level-3 keycard",
            "container"
          ]
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Snacks, stims, and someone's forgotten credstick.",
          "drawFrom": "street-loot",
          "id": "c-desk-drawers",
          "kind": "loot",
          "name": "Desk drawers",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p14",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "E2"
          ],
          "stat": null,
          "tags": [
            "item:Snacks (heals 1)",
            "item:Stim injector (+1d6 temp HP)",
            "item:Forgotten credstick: 60 eddies"
          ]
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-desk-rows",
          "kind": "cover",
          "name": "Desk rows",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p15",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "E2:E3",
            "F2:F3",
            "G2:G3",
            "E5:E6",
            "F5:F6",
            "G5:G6"
          ],
          "stat": null,
          "tags": [
            "light-cover"
          ]
        }
      ],
      "edges": [
        {
          "id": "e-window-c1e",
          "kind": "window",
          "state": null,
          "runs": [
            {
              "first": {
                "x": 2,
                "y": 0,
                "side": "E"
              },
              "last": {
                "x": 2,
                "y": 2,
                "side": "E"
              }
            }
          ],
          "provenance": "ai-generated"
        }
      ],
      "mapId": "m-floor-30-open-plan-office",
      "regions": [
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-the-open-plan",
          "name": "The open plan",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p1",
          "readAloud": "Rows of standing desks, screensavers drifting, a few workers in hoodies hunched over their screens at 2 a.m. Nobody looks up.",
          "reveal": "on-entry",
          "shape": [
            "D1:I8"
          ],
          "tags": []
        },
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-hale-s-office",
          "name": "Hale's office",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p2",
          "readAloud": "A glass box of an office. Long table, chairs, a view of the city.",
          "reveal": "on-entry",
          "shape": [
            "A1:C3"
          ],
          "tags": []
        },
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-the-lift-lobby",
          "name": "The lift lobby",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p3",
          "readAloud": "Two lift doors. One panel says 31: CLEANROOM — LEVEL 2.",
          "reveal": "on-entry",
          "shape": [
            "J1:K3"
          ],
          "tags": []
        },
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-the-kitchen",
          "name": "The kitchen",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p4",
          "readAloud": "A kitchen island and a coffee machine.",
          "reveal": "on-entry",
          "shape": [
            "J4:L5"
          ],
          "tags": []
        }
      ],
      "rows": 8,
      "dmNotes": "Night shift: a handful of workers, cleaning drones, and a security sweep every 5 rounds. Hale's office (A1:C3) has evidence of his plan. The lift (J1:K2) goes to the cleanroom."
    },
    {
      "columns": 12,
      "contents": [
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-out-of-the-lift",
          "kind": "entrance",
          "name": "Out of the lift",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p5",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "A6"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-back-down-to-floor-30",
          "kind": "exit",
          "name": "Back down to floor 30",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p6",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "A7"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-the-secure-lift-down-to-the-bunker",
          "kind": "exit",
          "name": "The secure lift down to the bunker",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p7",
          "readAloud": "A lift with no buttons, just a retinal scanner.",
          "reveal": "always",
          "shape": [
            "K5"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-lab-turret-1",
          "kind": "creature",
          "name": "Lab turret 1",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p8",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "C2"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "security-turret"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-lab-turret-2",
          "kind": "creature",
          "name": "Lab turret 2",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p9",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "K2"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "security-turret"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Not Hale's. Loyal to Kessler. Can be convinced (with Hale's messages) to stand aside.",
          "drawFrom": null,
          "id": "c-lab-security-chief-okafor",
          "kind": "creature",
          "name": "Lab security chief Okafor",
          "provenance": "ai-generated",
          "publicName": "a woman in a white suit with a sword",
          "publicRef": "p10",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "I4"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "street-samurai"
          },
          "tags": []
        },
        {
          "behaviours": [
            {
              "id": "b-2",
              "on": "token-enters",
              "arrival": "walked-in",
              "autoFire": true,
              "does": {
                "kind": "say",
                "text": "The nozzles hiss."
              }
            }
          ],
          "dmCue": null,
          "dmNotes": "No clean-suit: DC 14 Con save or unconscious for a minute.",
          "drawFrom": null,
          "hazard": {
            "save": {
              "stat": "con",
              "dc": 14
            },
            "condition": {
              "condition": "unconscious",
              "duration": {
                "kind": "save-ends"
              }
            },
            "rearms": true,
            "detectDc": 13,
            "disarmDc": 14
          },
          "id": "c-decontamination-airlock",
          "kind": "hazard",
          "name": "Decontamination airlock",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p11",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "A4:B6"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Any alarm seals the cleanroom: the secure lift locks for 3 rounds.",
          "drawFrom": null,
          "id": "c-lockdown",
          "kind": "hazard",
          "name": "Lockdown",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p12",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "H2:K7"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "The Lethe rig's design files — worth 2,000 eddies on their own.",
          "drawFrom": null,
          "id": "c-lab-terminal",
          "kind": "loot",
          "name": "Lab terminal",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p13",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "J5"
          ],
          "stat": null,
          "tags": [
            "item:The Lethe rig design files [quest, worth: 2,000 eddies]",
            "container"
          ]
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Medical nanites (heal 3d8), a monofilament scalpel (+1 dagger), and clean-suits.",
          "drawFrom": "street-loot",
          "id": "c-equipment-benches",
          "kind": "loot",
          "name": "Equipment benches",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p14",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "G7"
          ],
          "stat": null,
          "tags": [
            "item:Medical nanites (heal 3d8)",
            "item:Monofilament scalpel (+1 dagger)",
            "item:Clean-suit [body, +0 AC]"
          ]
        }
      ],
      "edges": [],
      "mapId": "m-floor-31-the-cleanroom",
      "regions": [
        {
          "dmCue": null,
          "dmNotes": "Without clean-suits: knockout gas, DC 14 Con or unconscious for a minute.",
          "id": "r-the-airlock",
          "name": "The airlock",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p1",
          "readAloud": "A glass airlock with nozzles in every surface. A sign: SUITS ON. NO EXCEPTIONS.",
          "reveal": "on-entry",
          "shape": [
            "A4:B6"
          ],
          "tags": []
        },
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-the-isolation-lab",
          "name": "The isolation lab",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p2",
          "readAloud": "A sealed glass chamber with a surgical chair and a robot arm.",
          "reveal": "on-entry",
          "shape": [
            "D3:G5"
          ],
          "tags": []
        },
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-the-cleanroom-floor",
          "name": "The cleanroom floor",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p3",
          "readAloud": "Bright white floors, benches of equipment, every surface gleaming. The air smells of nothing at all.",
          "reveal": "on-entry",
          "shape": [
            "H2:K7"
          ],
          "tags": []
        },
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-the-cable-trench",
          "name": "The cable trench",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p4",
          "readAloud": "A cable channel in the floor.",
          "reveal": "on-entry",
          "shape": [
            "D6:K6"
          ],
          "tags": []
        }
      ],
      "rows": 8,
      "dmNotes": "White, sterile, and full of turrets. The prototype's design files are on the lab terminal, but the rig itself is in the bunker. The decontamination airlock (A4:B6) is the only way in; it gasses anyone without clean-suits."
    },
    {
      "columns": 12,
      "contents": [
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-through-the-shutter",
          "kind": "entrance",
          "name": "Through the shutter",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p5",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "L5"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-back-through-the-shutter-to-the-subway",
          "kind": "exit",
          "name": "Back through the shutter to the subway",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p6",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "L6"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-secure-lift-up-to-the-cleanroom",
          "kind": "exit",
          "name": "Secure lift up to the cleanroom",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p7",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "L4"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Gunslinger with 50 HP and a personal shield (first hit each round is ignored).",
          "drawFrom": null,
          "id": "c-director-hale",
          "kind": "creature",
          "name": "Director Hale",
          "provenance": "ai-generated",
          "publicName": "a man in an expensive coat",
          "publicRef": "p8",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "E4"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "gunslinger"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-hale-s-black-ops-guard-1",
          "kind": "creature",
          "name": "Hale's black-ops guard 1",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p9",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "D3"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "street-samurai"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-hale-s-black-ops-guard-2",
          "kind": "creature",
          "name": "Hale's black-ops guard 2",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p10",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "I5"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "street-samurai"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-black-site-turret-1",
          "kind": "creature",
          "name": "Black-site turret 1",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p11",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "C2"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "security-turret"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-black-site-turret-2",
          "kind": "creature",
          "name": "Black-site turret 2",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p12",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "J2"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "security-turret"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "The test subject. A journalist with proof of Hale's crimes. Unhooking her safely takes a DC 13 Medicine check; failure costs her some memories (roleplay).",
          "drawFrom": null,
          "id": "c-mara-voss",
          "kind": "note",
          "name": "Mara Voss",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p13",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "F4"
          ],
          "stat": null,
          "tags": [
            "quest:Get Mara Voss out|A journalist strapped into Kessler's machine, with proof of what Hale has done. She needs unhooking carefully — and getting out."
          ]
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Overloading it (DC 14 tech) kills the lights and the turrets for 3 rounds — and Hale's shield.",
          "drawFrom": null,
          "id": "c-the-generator",
          "kind": "hazard",
          "name": "The generator",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p14",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "K2:K3"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Live cables: anyone knocked in takes 2d6 lightning.",
          "drawFrom": null,
          "hazard": {
            "damage": "2d6",
            "type": "lightning",
            "save": {
              "stat": "dex",
              "dc": 12,
              "half": true
            },
            "rearms": true,
            "detectDc": 11
          },
          "id": "c-cable-trench",
          "kind": "hazard",
          "name": "Cable trench",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p15",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "C6:J6"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "The prototype. 4,000 eddies from the buyer — who is Hale. Or 10,000 from the news network along with Mara.",
          "drawFrom": null,
          "id": "c-the-lethe-rig",
          "kind": "loot",
          "name": "The Lethe rig",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p16",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "F5"
          ],
          "stat": null,
          "tags": [
            "item:The Lethe rig prototype [quest]",
            "container"
          ]
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Hale's kill-switch for the building, 3,000 eddies, a level-4 keycard, and evidence of everything.",
          "drawFrom": "street-loot",
          "id": "c-hale-s-case",
          "kind": "loot",
          "name": "Hale's case",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p17",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "E4"
          ],
          "stat": null,
          "tags": [
            "item:Hale's kill-switch for the building [quest]",
            "coins:3,000 eddies",
            "item:Level-4 keycard"
          ]
        }
      ],
      "edges": [],
      "mapId": "m-the-black-site",
      "regions": [
        {
          "dmCue": null,
          "dmNotes": "Director Hale: 'Right on time. Thank you for breaking in. It makes everything so much simpler.'",
          "id": "r-the-test-bay",
          "name": "The test bay",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p1",
          "readAloud": "A concrete bunker. In the middle, a steel table — and on it, a woman strapped down with a crown of wires on her head, whispering the same sentence over and over. A man in an expensive coat turns from the monitors with a smile.",
          "reveal": "on-entry",
          "shape": [
            "C3:I6"
          ],
          "tags": []
        },
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-the-generator-room",
          "name": "The generator room",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p2",
          "readAloud": "A humming generator behind a cage.",
          "reveal": "on-entry",
          "shape": [
            "K2:K3"
          ],
          "tags": []
        },
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-the-cable-trench",
          "name": "The cable trench",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p3",
          "readAloud": "A cable trench across the floor.",
          "reveal": "on-entry",
          "shape": [
            "C6:J6"
          ],
          "tags": []
        },
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-the-monitoring-desk",
          "name": "The monitoring desk",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p4",
          "readAloud": "A wall of monitors showing every camera in the building.",
          "reveal": "on-entry",
          "shape": [
            "D2:I2"
          ],
          "tags": []
        }
      ],
      "rows": 8,
      "dmNotes": "THE FINALE. Below the basement. The Lethe rig (F4:G5) is wired into Mara Voss. Director Hale is here with his personal guard, waiting for the party — he intends to kill them and blame the 'outside crew'. Free Mara, take the rig, and get out (subway, or back up to the roof)."
    }
  ],
  "edges": [],
  "entry": {
    "placementId": "m-port-kessler-from-above"
  },
  "kind": "adventure",
  "lattices": [],
  "links": [
    {
      "id": "l-1",
      "fromMapId": "m-port-kessler-from-above",
      "toMapId": "m-the-static-room",
      "fromContentId": "c-meet-saint-juno-at-the-static-room",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-2",
      "fromMapId": "m-port-kessler-from-above",
      "toMapId": "m-the-neon-market",
      "fromContentId": "c-the-neon-market-loading-dock-approach",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-3",
      "fromMapId": "m-port-kessler-from-above",
      "toMapId": "m-kessler-station-closed",
      "fromContentId": "c-the-subway-tunnel-approach",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-4",
      "fromMapId": "m-port-kessler-from-above",
      "toMapId": "m-kessler-tower-helipad",
      "fromContentId": "c-steal-an-aerodyne-roof-approach",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-5",
      "fromMapId": "m-the-static-room",
      "toMapId": "m-port-kessler-from-above",
      "fromContentId": "c-back-out-to-the-city",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-6",
      "fromMapId": "m-the-static-room",
      "toMapId": "m-the-neon-market",
      "fromContentId": "c-out-the-back-to-the-neon-market",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-7",
      "fromMapId": "m-the-neon-market",
      "toMapId": "m-port-kessler-from-above",
      "fromContentId": "c-back-to-the-city",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-8",
      "fromMapId": "m-the-neon-market",
      "toMapId": "m-the-static-room",
      "fromContentId": "c-the-bar-s-back-door",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-9",
      "fromMapId": "m-the-neon-market",
      "toMapId": "m-floor-30-open-plan-office",
      "fromContentId": "c-under-the-loading-dock-shutter",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-10",
      "fromMapId": "m-kessler-station-closed",
      "toMapId": "m-port-kessler-from-above",
      "fromContentId": "c-up-to-the-street",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-11",
      "fromMapId": "m-kessler-station-closed",
      "toMapId": "m-the-black-site",
      "fromContentId": "c-the-kessler-shutter",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-12",
      "fromMapId": "m-kessler-tower-helipad",
      "toMapId": "m-port-kessler-from-above",
      "fromContentId": "c-fly-back-down-to-the-city",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-13",
      "fromMapId": "m-kessler-tower-helipad",
      "toMapId": "m-floor-30-open-plan-office",
      "fromContentId": "c-the-roof-access-door",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-14",
      "fromMapId": "m-floor-30-open-plan-office",
      "toMapId": "m-the-neon-market",
      "fromContentId": "c-down-the-freight-lift-to-the-loading-dock",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-15",
      "fromMapId": "m-floor-30-open-plan-office",
      "toMapId": "m-kessler-tower-helipad",
      "fromContentId": "c-up-the-stairs-to-the-roof",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-16",
      "fromMapId": "m-floor-30-open-plan-office",
      "toMapId": "m-floor-31-the-cleanroom",
      "fromContentId": "c-lift-to-31-the-cleanroom",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-17",
      "fromMapId": "m-floor-31-the-cleanroom",
      "toMapId": "m-floor-30-open-plan-office",
      "fromContentId": "c-back-down-to-floor-30",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-18",
      "fromMapId": "m-floor-31-the-cleanroom",
      "toMapId": "m-the-black-site",
      "fromContentId": "c-the-secure-lift-down-to-the-bunker",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-19",
      "fromMapId": "m-the-black-site",
      "toMapId": "m-kessler-station-closed",
      "fromContentId": "c-back-through-the-shutter-to-the-subway",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-20",
      "fromMapId": "m-the-black-site",
      "toMapId": "m-floor-31-the-cleanroom",
      "fromContentId": "c-secure-lift-up-to-the-cleanroom",
      "fromPort": null,
      "toPort": null
    }
  ],
  "manifest": {
    "authors": [
      "DnD Max Scenario Gallery"
    ],
    "engineMin": "0.1.0",
    "formatVersion": 1,
    "id": "gallery-kessler-job",
    "license": {
      "attribution": "DnD Max",
      "spdx": "CC0-1.0"
    },
    "name": "Chrome & Static: The Kessler Job",
    "requiresPack": [
      "dndmax.bestiary"
    ],
    "version": "1.0.0"
  },
  "maps": [
    {
      "backdrop": {
        "columns": 12,
        "gridVerified": true,
        "imageUrl": "/maps/library/city-modern-port.webp",
        "kind": "registered",
        "licence": {
          "attribution": null,
          "spdx": "CC0-1.0"
        },
        "nativeCellPx": 128,
        "rows": 8
      },
      "columns": 12,
      "id": "m-port-kessler-from-above",
      "lattice": null,
      "name": "Port Kessler, from above",
      "ports": [],
      "provenance": "ai-generated",
      "rows": 8,
      "scale": {
        "tier": "city",
        "cell": {
          "unit": "district"
        }
      },
      "source": {
        "kind": "library",
        "libraryMapId": "lib-city-modern-port",
        "version": "1"
      },
      "stack": null
    },
    {
      "backdrop": {
        "columns": 6,
        "gridVerified": true,
        "imageUrl": "/maps/library/room-neon-bar.webp",
        "kind": "registered",
        "licence": {
          "attribution": null,
          "spdx": "CC0-1.0"
        },
        "nativeCellPx": 44.5,
        "rows": 13
      },
      "columns": 6,
      "id": "m-the-static-room",
      "lattice": null,
      "name": "The Static Room",
      "ports": [],
      "provenance": "ai-generated",
      "rows": 13,
      "scale": {
        "tier": "room",
        "cell": {
          "unit": "feet",
          "magnitude": 5
        }
      },
      "source": {
        "kind": "library",
        "libraryMapId": "lib-neon-bar",
        "version": "1"
      },
      "stack": null
    },
    {
      "backdrop": {
        "columns": 12,
        "gridVerified": true,
        "imageUrl": "/maps/library/market-alley-neon.webp",
        "kind": "registered",
        "licence": {
          "attribution": null,
          "spdx": "CC0-1.0"
        },
        "nativeCellPx": 128,
        "rows": 8
      },
      "columns": 12,
      "id": "m-the-neon-market",
      "lattice": null,
      "name": "The neon market",
      "ports": [],
      "provenance": "ai-generated",
      "rows": 8,
      "scale": {
        "tier": "room",
        "cell": {
          "unit": "feet",
          "magnitude": 5
        }
      },
      "source": {
        "kind": "library",
        "libraryMapId": "lib-market-alley-neon",
        "version": "1"
      },
      "stack": null
    },
    {
      "backdrop": {
        "columns": 12,
        "gridVerified": true,
        "imageUrl": "/maps/library/modern-platform.webp",
        "kind": "registered",
        "licence": {
          "attribution": null,
          "spdx": "CC0-1.0"
        },
        "nativeCellPx": 128,
        "rows": 8
      },
      "columns": 12,
      "id": "m-kessler-station-closed",
      "lattice": null,
      "name": "Kessler Station (closed)",
      "ports": [],
      "provenance": "ai-generated",
      "rows": 8,
      "scale": {
        "tier": "room",
        "cell": {
          "unit": "feet",
          "magnitude": 5
        }
      },
      "source": {
        "kind": "library",
        "libraryMapId": "lib-modern-platform",
        "version": "1"
      },
      "stack": null
    },
    {
      "backdrop": {
        "columns": 12,
        "gridVerified": true,
        "imageUrl": "/maps/library/rooftop-helipad.webp",
        "kind": "registered",
        "licence": {
          "attribution": null,
          "spdx": "CC0-1.0"
        },
        "nativeCellPx": 128,
        "rows": 8
      },
      "columns": 12,
      "id": "m-kessler-tower-helipad",
      "lattice": null,
      "name": "Kessler tower helipad",
      "ports": [],
      "provenance": "ai-generated",
      "rows": 8,
      "scale": {
        "tier": "room",
        "cell": {
          "unit": "feet",
          "magnitude": 5
        }
      },
      "source": {
        "kind": "library",
        "libraryMapId": "lib-rooftop-helipad",
        "version": "1"
      },
      "stack": null
    },
    {
      "backdrop": {
        "columns": 12,
        "gridVerified": true,
        "imageUrl": "/maps/library/office-floor.webp",
        "kind": "registered",
        "licence": {
          "attribution": null,
          "spdx": "CC0-1.0"
        },
        "nativeCellPx": 128,
        "rows": 8
      },
      "columns": 12,
      "id": "m-floor-30-open-plan-office",
      "lattice": null,
      "name": "Floor 30 — open-plan office",
      "ports": [],
      "provenance": "ai-generated",
      "rows": 8,
      "scale": {
        "tier": "room",
        "cell": {
          "unit": "feet",
          "magnitude": 5
        }
      },
      "source": {
        "kind": "library",
        "libraryMapId": "lib-office-floor",
        "version": "1"
      },
      "stack": null
    },
    {
      "backdrop": {
        "columns": 12,
        "gridVerified": true,
        "imageUrl": "/maps/library/cleanroom-lab.webp",
        "kind": "registered",
        "licence": {
          "attribution": null,
          "spdx": "CC0-1.0"
        },
        "nativeCellPx": 128,
        "rows": 8
      },
      "columns": 12,
      "id": "m-floor-31-the-cleanroom",
      "lattice": null,
      "name": "Floor 31 — the cleanroom",
      "ports": [],
      "provenance": "ai-generated",
      "rows": 8,
      "scale": {
        "tier": "room",
        "cell": {
          "unit": "feet",
          "magnitude": 5
        }
      },
      "source": {
        "kind": "library",
        "libraryMapId": "lib-cleanroom-lab",
        "version": "1"
      },
      "stack": null
    },
    {
      "backdrop": {
        "columns": 12,
        "gridVerified": true,
        "imageUrl": "/maps/library/bunker-corridor.webp",
        "kind": "registered",
        "licence": {
          "attribution": null,
          "spdx": "CC0-1.0"
        },
        "nativeCellPx": 128,
        "rows": 8
      },
      "columns": 12,
      "id": "m-the-black-site",
      "lattice": null,
      "name": "The black site",
      "ports": [],
      "provenance": "ai-generated",
      "rows": 8,
      "scale": {
        "tier": "room",
        "cell": {
          "unit": "feet",
          "magnitude": 5
        }
      },
      "source": {
        "kind": "library",
        "libraryMapId": "lib-bunker-corridor",
        "version": "1"
      },
      "stack": null
    }
  ],
  "provenance": "ai-generated",
  "rollTables": [
    {
      "id": "street-heat",
      "name": "Street heat",
      "entries": [
        {
          "name": "Ganger",
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "ganger"
          }
        },
        {
          "name": "Corp security",
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "corp-security"
          }
        },
        {
          "name": "Street blade",
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "street-samurai"
          }
        },
        {
          "name": "Security drone",
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "maintenance-drone"
          }
        },
        {
          "name": "Rain so hard the cameras can't see — advantage on Stealth for a minute",
          "stat": null
        },
        {
          "name": "A cop drone sweeps the block: everyone freezes or it calls it in",
          "stat": null
        }
      ]
    },
    {
      "id": "street-loot",
      "name": "Street loot",
      "entries": [
        {
          "name": "A credstick with 2d10 × 10 eddies (≈ gp)",
          "stat": null
        },
        {
          "name": "A stim injector (+1d6 temp HP, then 1 exhaustion)",
          "stat": null
        },
        {
          "name": "A Kessler employee keycard",
          "stat": null
        },
        {
          "name": "A smart pistol (+1, ignores light cover)",
          "stat": null
        },
        {
          "name": "An EMP grenade (drones and turrets in 2 squares are stunned a round)",
          "stat": null
        },
        {
          "name": "A burner phone with one number in it",
          "stat": null
        }
      ]
    }
  ]
}
