{
  "contents": [
    {
      "columns": 12,
      "contents": [
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-the-salvage-tug",
          "kind": "entrance",
          "name": "The salvage tug",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p4",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "L5"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-dock-at-the-clear-berth",
          "kind": "exit",
          "name": "Dock at the clear berth",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p5",
          "readAloud": "The docking clamps engage. The airlock beyond is already open.",
          "reveal": "always",
          "shape": [
            "K5"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-eva-to-the-breach",
          "kind": "exit",
          "name": "EVA to the breach",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p6",
          "readAloud": "A spacewalk along the hull to the burst section. Magnetic boots required.",
          "reveal": "always",
          "shape": [
            "B5"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Stays with the tug. Counts down the orbit clock over comms every hour. If the party is not back by the end, she has orders to leave.",
          "drawFrom": null,
          "id": "c-tug-pilot-ruiz",
          "kind": "note",
          "name": "Tug pilot Ruiz",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p7",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "L5"
          ],
          "stat": null,
          "tags": [
            "quest:Recover the black box and the lab data|The salvage contract: get the station's black box and the lab's data, and get back to the tug before the ring burns up. Ruiz will not wait."
          ]
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "EVA through the debris: DC 13 Dex save or 2d6 and tumble a square away.",
          "drawFrom": null,
          "hazard": {
            "damage": "2d6",
            "type": "bludgeoning",
            "save": {
              "stat": "dex",
              "dc": 13
            },
            "rearms": true,
            "detectDc": 11
          },
          "id": "c-debris-field",
          "kind": "hazard",
          "name": "Debris field",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p8",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "A4:C6"
          ],
          "stat": null,
          "tags": []
        }
      ],
      "edges": [],
      "mapId": "m-halcyon-ring-from-the-tug",
      "regions": [
        {
          "dmCue": null,
          "dmNotes": "The burst section (B5:C6) is the breached deck.",
          "id": "r-the-ring",
          "name": "The ring",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p1",
          "readAloud": "A wheel of steel a kilometre across, turning slowly against the stars. Half its windows are dark. One section has burst open like a flower.",
          "reveal": "on-entry",
          "shape": [
            "C2:J2",
            "C7:J7",
            "B3:B6",
            "K3:K6"
          ],
          "tags": []
        },
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-the-hub",
          "name": "The hub",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p2",
          "readAloud": "The central spindle, where the docking arms meet.",
          "reveal": "on-entry",
          "shape": [
            "E4:G5"
          ],
          "tags": []
        },
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-the-docking-spars",
          "name": "The docking spars",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p3",
          "readAloud": "Docking arms jut from the ring. One berth is clear.",
          "reveal": "on-entry",
          "shape": [
            "K3:K6"
          ],
          "tags": []
        }
      ],
      "rows": 8,
      "dmNotes": "ADVENTURE OVERVIEW. The research lab brought aboard 'Vireo samples' from a comet — eggs of a hull-crawler species. They hatched. The brood mother now nests in the reactor, using the crew as hosts (the hollow crewmen). Six-hour clock: the orbit decays. Restoring power at the reactor console (or killing the mother and restarting it) stabilises the orbit. Objectives for the full contract fee (2,000 credits ≈ gp): the black box (command deck), the Vireo data (medbay lab terminal), and survivors (Dr. Osei, hiding in hydroponics; Chief Hallan, sealed in the machine shop). Destroying the reactor (overload) is the nuclear option: 10 minutes to get off."
    },
    {
      "columns": 12,
      "contents": [
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-the-berth-airlock",
          "kind": "entrance",
          "name": "The berth airlock",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p4",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "K5"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-back-to-the-tug",
          "kind": "exit",
          "name": "Back to the tug",
          "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-north-into-the-concourse",
          "kind": "exit",
          "name": "North into the concourse",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p6",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "F1"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Motionless until someone comes within 2 squares; then they stand, and their mouths open far too wide.",
          "drawFrom": null,
          "id": "c-waiting-crewman-1",
          "kind": "creature",
          "name": "Waiting crewman 1",
          "provenance": "ai-generated",
          "publicName": "a crew member on a bench",
          "publicRef": "p7",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "D3"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "hollow-crewman"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Motionless until someone comes within 2 squares; then they stand, and their mouths open far too wide.",
          "drawFrom": null,
          "id": "c-waiting-crewman-2",
          "kind": "creature",
          "name": "Waiting crewman 2",
          "provenance": "ai-generated",
          "publicName": "a crew member on a bench",
          "publicRef": "p8",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "I7"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "hollow-crewman"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Empty. Something hatched in it.",
          "drawFrom": null,
          "id": "c-the-vireo-crate",
          "kind": "prop",
          "name": "The Vireo crate",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p9",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "G5"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Pressure suits (4), a toolkit, and a mag-light.",
          "drawFrom": "salvage",
          "id": "c-bay-locker",
          "kind": "loot",
          "name": "Bay locker",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p10",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "H3"
          ],
          "stat": null,
          "tags": [
            "item:Pressure suits (4) [treasure, worth: 50 credits]",
            "item:Toolkit",
            "item:Mag-light"
          ]
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-strobing-emergency-light",
          "kind": "light",
          "name": "Strobing emergency light",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p11",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "F2"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "A trader (Issue 411): stand beside them and open your Bag to buy and sell.",
          "drawFrom": null,
          "id": "c-supply-vending-unit",
          "kind": "creature",
          "name": "Supply vending unit",
          "provenance": "ai-generated",
          "publicName": "a vending unit still blinking",
          "publicRef": "p12",
          "readAloud": "A battered supply vendor bolted to the bulkhead flickers awake. 'WELCOME, CREW. CREDIT ACCEPTED.'",
          "reveal": "always",
          "shape": [
            "K5"
          ],
          "stat": {
            "packId": "dndmax.dogfood",
            "selector": "guard"
          },
          "tags": [
            "friendly",
            "trader",
            "currency:credits",
            "buys:30",
            "sells:Medkit (heals 2d4+2)@40x4",
            "sells:Stimpack (+1d6 temp HP)@30x4",
            "sells:Mag-light@5",
            "sells:Armour vest [+2 AC]@120x2",
            "sells:Pulse pistol@250x1",
            "sells:Frag grenade (3d6 in a 1-square burst)@60x3",
            "sells:Bypass kit [picks: 2]@50x1"
          ]
        }
      ],
      "edges": [],
      "mapId": "m-docking-bay-4",
      "regions": [
        {
          "dmCue": null,
          "dmNotes": "The crate held the Vireo samples. Investigation DC 12: claw marks, and a label 'VIREO — DO NOT OPEN IN ATMOSPHERE'.",
          "id": "r-the-bay-floor",
          "name": "The bay floor",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p1",
          "readAloud": "A cavernous bay, lit in strobing red. Emergency signs. A cargo crate in the middle, its lid peeled back from the inside. A smear of something dark leads to the north door.",
          "reveal": "on-entry",
          "shape": [
            "C4:J6"
          ],
          "tags": []
        },
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-the-north-airlock",
          "name": "The north airlock",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p2",
          "readAloud": "Doors to the station's interior.",
          "reveal": "on-entry",
          "shape": [
            "F1:G2"
          ],
          "tags": []
        },
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-the-crew-alcoves",
          "name": "The crew alcoves",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p3",
          "readAloud": "Benches for crew waiting for shuttles. Two of them are occupied.",
          "reveal": "on-entry",
          "shape": [
            "D3:E3",
            "H3:I3",
            "D7:E7",
            "H7:I7"
          ],
          "tags": []
        }
      ],
      "rows": 8,
      "dmNotes": "Empty but for evidence: scorched floor, a crate pried open from the INSIDE, and blood leading to the north door. Two hollow crewmen stand in the side alcoves, motionless until someone passes."
    },
    {
      "columns": 12,
      "contents": [
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-from-docking-bay-4",
          "kind": "entrance",
          "name": "From docking bay 4",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p3",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "F8"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-south-to-the-docking-bay",
          "kind": "exit",
          "name": "South to the docking bay",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p4",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "G8"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-command-deck",
          "kind": "exit",
          "name": "Command deck",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p5",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "F1"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-medical",
          "kind": "exit",
          "name": "Medical",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p6",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "A4"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-hydroponics",
          "kind": "exit",
          "name": "Hydroponics",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p7",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "L4"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-engineering-machine-shop",
          "kind": "exit",
          "name": "Engineering — machine shop",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p8",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "A5"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-crew-berths",
          "kind": "exit",
          "name": "Crew berths",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p9",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "L5"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-climb-down-the-lift-shaft-to-the-reactor",
          "kind": "exit",
          "name": "Climb down the lift shaft to the reactor",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p10",
          "readAloud": "Hand over hand down the cables into the dark. It is getting warmer.",
          "reveal": "always",
          "shape": [
            "G5"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-vent-brood-1",
          "kind": "creature",
          "name": "Vent brood 1",
          "provenance": "ai-generated",
          "publicName": "skittering in the vents",
          "publicRef": "p11",
          "readAloud": null,
          "reveal": "when-found",
          "shape": [
            "C3"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "crawler-brood"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-vent-brood-2",
          "kind": "creature",
          "name": "Vent brood 2",
          "provenance": "ai-generated",
          "publicName": "skittering in the vents",
          "publicRef": "p12",
          "readAloud": null,
          "reveal": "when-found",
          "shape": [
            "J3"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "crawler-brood"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-vent-brood-3",
          "kind": "creature",
          "name": "Vent brood 3",
          "provenance": "ai-generated",
          "publicName": "skittering in the vents",
          "publicRef": "p13",
          "readAloud": null,
          "reveal": "when-found",
          "shape": [
            "J7"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "crawler-brood"
          },
          "tags": []
        },
        {
          "behaviours": [
            {
              "id": "b-1",
              "on": "token-enters",
              "arrival": "walked-in",
              "autoFire": true,
              "does": {
                "kind": "say",
                "text": "The vent cover above you rattles, then falls."
              }
            },
            {
              "id": "b-2",
              "on": "token-enters",
              "arrival": "walked-in",
              "autoFire": true,
              "does": {
                "kind": "reveal",
                "contentId": "c-vent-brood-1"
              }
            },
            {
              "id": "b-3",
              "on": "token-enters",
              "arrival": "walked-in",
              "autoFire": true,
              "does": {
                "kind": "reveal",
                "contentId": "c-vent-brood-2"
              }
            },
            {
              "id": "b-4",
              "on": "token-enters",
              "arrival": "walked-in",
              "autoFire": true,
              "does": {
                "kind": "reveal",
                "contentId": "c-vent-brood-3"
              }
            }
          ],
          "dmCue": null,
          "dmNotes": "Something drops from the vents.",
          "drawFrom": null,
          "id": "c-concourse-crossing",
          "kind": "hazard",
          "name": "Concourse crossing",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p14",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "E6:H7"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-dead-lift-shaft",
          "kind": "terrain",
          "name": "Dead lift shaft",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p15",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "F4:G5"
          ],
          "stat": null,
          "tags": [
            "hazardous"
          ]
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Still works. 1 credit buys a 'Halcyon Cola'. Kicking it summons a drone.",
          "drawFrom": null,
          "id": "c-humming-vending-machine",
          "kind": "prop",
          "name": "Humming vending machine",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p16",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "C6"
          ],
          "stat": null,
          "tags": []
        }
      ],
      "edges": [],
      "mapId": "m-the-octagon-concourse",
      "regions": [
        {
          "dmCue": null,
          "dmNotes": "Things move in the vents above (obscured). Every crossing: roll on Station stalkers.",
          "id": "r-the-concourse",
          "name": "The concourse",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p1",
          "readAloud": "An eight-sided plaza with a dead lift in the middle. Signs point everywhere: COMMAND. MEDICAL. HYDROPONICS. ENGINEERING. REACTOR. Somewhere, a vending machine is still humming.",
          "reveal": "on-entry",
          "shape": [
            "C2:J7"
          ],
          "tags": []
        },
        {
          "dmCue": null,
          "dmNotes": "Climbing down the cables reaches the reactor (DC 14 Athletics).",
          "id": "r-the-lift-shaft",
          "name": "The lift shaft",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p2",
          "readAloud": "A lift shaft, doors pried open, cables hanging. It goes down a long way.",
          "reveal": "on-entry",
          "shape": [
            "F4:G5"
          ],
          "tags": []
        }
      ],
      "rows": 8,
      "dmNotes": "The hub. Every section opens off it. The central lift shaft (F4:G5) is dead without power. Use the 'station stalkers' chart every time the party crosses it."
    },
    {
      "columns": 12,
      "contents": [
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-from-the-concourse",
          "kind": "entrance",
          "name": "From the concourse",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p3",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "F8"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-back-to-the-concourse",
          "kind": "exit",
          "name": "Back to the concourse",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p4",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "G8"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Rolls on Station stalkers when the table opens.",
          "drawFrom": "station-stalkers",
          "id": "c-something-in-the-bridge-vents",
          "kind": "creature",
          "name": "Something in the bridge vents",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p5",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "E6"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "crawler-brood"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Disable with a DC 14 tech check at the security console (J7) or destroy it.",
          "drawFrom": null,
          "id": "c-bridge-turret",
          "kind": "creature",
          "name": "Bridge turret",
          "provenance": "ai-generated",
          "publicName": "a turret in the ceiling",
          "publicRef": "p6",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "F2"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "security-turret"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-hollow-navigator",
          "kind": "creature",
          "name": "Hollow navigator",
          "provenance": "ai-generated",
          "publicName": "a crewman at the nav station",
          "publicRef": "p7",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "D6"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "hollow-crewman"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "The station's flight recorder — first contract objective. Also reveals the brood mother is in the reactor.",
          "drawFrom": null,
          "id": "c-the-black-box",
          "kind": "loot",
          "name": "The black box",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p8",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "G5"
          ],
          "stat": null,
          "tags": [
            "item:The station's flight recorder [quest]",
            "container"
          ]
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Her last entry: 'It wears them. It wears them like coats. If you hear this — do not let it reach a planet. Burn the reactor.'",
          "drawFrom": null,
          "id": "c-captain-adair-s-log",
          "kind": "loot",
          "name": "Captain Adair's log",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p9",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "F3"
          ],
          "stat": null,
          "tags": [
            "item:Captain Adair's last log [quest]",
            "container"
          ]
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Two pulse rifles (1d10, range 12), a stun baton, and armour vests (+2 AC).",
          "drawFrom": "salvage",
          "id": "c-weapons-locker",
          "kind": "loot",
          "name": "Weapons locker",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p10",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "C2"
          ],
          "stat": null,
          "tags": [
            "item:Two pulse rifles (1d10, range 12)",
            "item:Stun baton (1d6, stuns) [weapon]",
            "item:Armour vests (2) [+2 AC]"
          ]
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-console-ring",
          "kind": "cover",
          "name": "Console ring",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p11",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "C3:D3",
            "I3:J3",
            "C7:D7",
            "I7:J7"
          ],
          "stat": null,
          "tags": [
            "heavy-cover"
          ]
        }
      ],
      "edges": [],
      "mapId": "m-command-deck",
      "regions": [
        {
          "dmCue": null,
          "dmNotes": "Black box: the holo table (F4:G5). Removing it takes 1 minute (DC 12 tech check), and the turret objects.",
          "id": "r-the-bridge",
          "name": "The bridge",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p1",
          "readAloud": "Consoles in a ring around a holo table. Every screen shows the same flashing warning: ORBIT DECAY — 06:00:00 — and counting down. The captain sits in her chair, facing the stars.",
          "reveal": "on-entry",
          "shape": [
            "C3:J7"
          ],
          "tags": []
        },
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-the-captain-s-ready-room",
          "name": "The captain's ready room",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p2",
          "readAloud": "A small office. A photo of a family on the desk.",
          "reveal": "on-entry",
          "shape": [
            "C2:D2"
          ],
          "tags": []
        }
      ],
      "rows": 8,
      "dmNotes": "The black box is in the central console. The captain's body is in her chair — she shot herself rather than be taken; her last log explains everything. A security turret still guards the bridge and does not recognise anyone."
    },
    {
      "columns": 12,
      "contents": [
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-from-the-concourse",
          "kind": "entrance",
          "name": "From the concourse",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p4",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "K4"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-back-to-the-concourse",
          "kind": "exit",
          "name": "Back to the concourse",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p5",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "L4"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Becomes a hull crawler two rounds after the pod is opened.",
          "drawFrom": null,
          "id": "c-technician-barros",
          "kind": "creature",
          "name": "Technician Barros",
          "provenance": "ai-generated",
          "publicName": "a man in the isolation pod",
          "publicRef": "p6",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "C5"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "hull-crawler"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-jar-hatchling-1",
          "kind": "creature",
          "name": "Jar hatchling 1",
          "provenance": "ai-generated",
          "publicName": "a broken sample jar",
          "publicRef": "p7",
          "readAloud": null,
          "reveal": "when-found",
          "shape": [
            "G5"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "crawler-brood"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-jar-hatchling-2",
          "kind": "creature",
          "name": "Jar hatchling 2",
          "provenance": "ai-generated",
          "publicName": "a broken sample jar",
          "publicRef": "p8",
          "readAloud": null,
          "reveal": "when-found",
          "shape": [
            "H6"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "crawler-brood"
          },
          "tags": []
        },
        {
          "behaviours": [
            {
              "id": "b-5",
              "on": "token-enters",
              "arrival": "walked-in",
              "autoFire": true,
              "does": {
                "kind": "say",
                "text": "The pod hisses open. Barros steps out, smiling — and keeps smiling, wider and wider."
              }
            }
          ],
          "dmCue": null,
          "dmNotes": "Opening the pod releases Barros.",
          "drawFrom": null,
          "id": "c-isolation-pod-release",
          "kind": "hazard",
          "name": "Isolation pod release",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p9",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "D5"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [
            {
              "id": "b-6",
              "on": "token-enters",
              "arrival": "walked-in",
              "autoFire": true,
              "does": {
                "kind": "reveal",
                "contentId": "c-jar-hatchling-1"
              }
            },
            {
              "id": "b-7",
              "on": "token-enters",
              "arrival": "walked-in",
              "autoFire": true,
              "does": {
                "kind": "reveal",
                "contentId": "c-jar-hatchling-2"
              }
            }
          ],
          "dmCue": null,
          "dmNotes": "Treading here wakes the hatchlings.",
          "drawFrom": null,
          "id": "c-broken-sample-jars",
          "kind": "hazard",
          "name": "Broken sample jars",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p10",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "G5:H6"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "The second contract objective: the full Vireo study — and proof the company knew what the eggs were.",
          "drawFrom": null,
          "id": "c-vireo-data-terminal",
          "kind": "loot",
          "name": "Vireo data terminal",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p11",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "J5"
          ],
          "stat": null,
          "tags": [
            "item:The full Vireo study [quest]",
            "container"
          ]
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Medkits (3), stimpacks (2, +1d6 temp HP), and an anti-parasite injector (cures a host if used within an hour of infection).",
          "drawFrom": "salvage",
          "id": "c-medical-supplies",
          "kind": "loot",
          "name": "Medical supplies",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p12",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "F4"
          ],
          "stat": null,
          "tags": [
            "item:Medkits (3) [heals 2d4+2]",
            "item:Stimpacks (2, +1d6 temp HP)",
            "item:Anti-parasite injector (cures a host)"
          ]
        }
      ],
      "edges": [
        {
          "id": "e-window-d4e",
          "kind": "window",
          "state": null,
          "runs": [
            {
              "first": {
                "x": 3,
                "y": 3,
                "side": "E"
              },
              "last": {
                "x": 3,
                "y": 5,
                "side": "E"
              }
            }
          ],
          "provenance": "ai-generated"
        }
      ],
      "mapId": "m-medbay-and-the-vireo-lab",
      "regions": [
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-the-ward",
          "name": "The ward",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p1",
          "readAloud": "Six beds, all with restraints, all empty. One restraint has been chewed through.",
          "reveal": "on-entry",
          "shape": [
            "B2:K3"
          ],
          "tags": []
        },
        {
          "dmCue": null,
          "dmNotes": "Technician Barros. It is not gone. If released, he becomes a hull crawler in two rounds.",
          "id": "r-the-isolation-pod",
          "name": "The isolation pod",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p2",
          "readAloud": "A glass box. A man inside it, pale and sweating, presses his hands to the glass. 'Please. It's gone now. Please let me out.'",
          "reveal": "on-entry",
          "shape": [
            "B4:D6"
          ],
          "tags": []
        },
        {
          "dmCue": null,
          "dmNotes": "The Vireo data: lab terminal (J5). DC 13 tech check, or Dr. Osei's password.",
          "id": "r-the-lab",
          "name": "The lab",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p3",
          "readAloud": "A surgery table, a lab terminal still glowing, and sample jars — most of them broken.",
          "reveal": "on-entry",
          "shape": [
            "E4:K6"
          ],
          "tags": []
        }
      ],
      "rows": 8,
      "dmNotes": "Dr. Osei ran the Vireo study from here. The isolation pod (B4:D5) holds the first host — still alive, still talking, begging to be let out. Do not let him out."
    },
    {
      "columns": 12,
      "contents": [
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-from-the-concourse",
          "kind": "entrance",
          "name": "From the concourse",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p4",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "B4"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-back-to-the-concourse",
          "kind": "exit",
          "name": "Back to the concourse",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p5",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "A4"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-service-hatch-to-the-crew-berths",
          "kind": "exit",
          "name": "Service hatch to the crew berths",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p6",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "F8"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-fungal-farmhand-1",
          "kind": "creature",
          "name": "Fungal farmhand 1",
          "provenance": "ai-generated",
          "publicName": "a mound of grey fungus",
          "publicRef": "p7",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "F4"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "fungal-shambler"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-fungal-farmhand-2",
          "kind": "creature",
          "name": "Fungal farmhand 2",
          "provenance": "ai-generated",
          "publicName": "a mound of grey fungus",
          "publicRef": "p8",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "D6"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "fungal-shambler"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-fungal-farmhand-3",
          "kind": "creature",
          "name": "Fungal farmhand 3",
          "provenance": "ai-generated",
          "publicName": "a mound of grey fungus",
          "publicRef": "p9",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "I3"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "fungal-shambler"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "The Vireo lead scientist. Guilt-wracked. Knows the brood mother is in the reactor, and that the creatures hate cold — venting the coolant (reactor) will slow them.",
          "drawFrom": null,
          "id": "c-dr-amara-osei",
          "kind": "note",
          "name": "Dr. Amara Osei",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p10",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "K5"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-spore-clouds",
          "kind": "terrain",
          "name": "Spore clouds",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p11",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "C2:E6",
            "H2:J6"
          ],
          "stat": null,
          "tags": [
            "obscured",
            "hazardous"
          ]
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-the-trench",
          "kind": "terrain",
          "name": "The trench",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p12",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "K2:K7"
          ],
          "stat": null,
          "tags": [
            "water"
          ]
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "The farm's seed bank, worth a fortune to any colony (500 gp equivalent).",
          "drawFrom": "salvage",
          "id": "c-seed-vault",
          "kind": "loot",
          "name": "Seed vault",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p13",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "B7"
          ],
          "stat": null,
          "tags": [
            "item:The colony seed bank [treasure, worth: 500 credits]"
          ]
        }
      ],
      "edges": [],
      "mapId": "m-hydroponics-farm",
      "regions": [
        {
          "dmCue": null,
          "dmNotes": "Spores: anyone breathing them without a suit must make a DC 11 Con save each round or be poisoned.",
          "id": "r-the-crop-beds",
          "name": "The crop beds",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p1",
          "readAloud": "Long beds of crops, grey with fungus. Spores drift in the air like snow.",
          "reveal": "on-entry",
          "shape": [
            "C2:E6",
            "H2:J6"
          ],
          "tags": []
        },
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-the-central-aisle",
          "name": "The central aisle",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p2",
          "readAloud": "A walkway between the beds, and on it, a man-shaped mound of fungus.",
          "reveal": "on-entry",
          "shape": [
            "F2:G7"
          ],
          "tags": []
        },
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-the-irrigation-trench",
          "name": "The irrigation trench",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p3",
          "readAloud": "A channel of murky water along the wall.",
          "reveal": "on-entry",
          "shape": [
            "K2:K7"
          ],
          "tags": []
        }
      ],
      "rows": 8,
      "dmNotes": "Dr. Osei is hiding in the irrigation trench (K3:K7), breathing through a reed of tubing. The crop beds are overgrown with a grey fungus the crawlers spread. The fungal shamblers are what used to be the farm crew."
    },
    {
      "columns": 12,
      "contents": [
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-from-the-concourse",
          "kind": "entrance",
          "name": "From the concourse",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p7",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "F1"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-back-to-the-concourse",
          "kind": "exit",
          "name": "Back to the concourse",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p8",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "G1"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-service-hatch-to-hydroponics",
          "kind": "exit",
          "name": "Service hatch to hydroponics",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p9",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "F8"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-cocooned-crewman-1",
          "kind": "creature",
          "name": "Cocooned crewman 1",
          "provenance": "ai-generated",
          "publicName": "a cocoon",
          "publicRef": "p10",
          "readAloud": null,
          "reveal": "when-found",
          "shape": [
            "C2"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "hollow-crewman"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-cocooned-crewman-2",
          "kind": "creature",
          "name": "Cocooned crewman 2",
          "provenance": "ai-generated",
          "publicName": "a cocoon",
          "publicRef": "p11",
          "readAloud": null,
          "reveal": "when-found",
          "shape": [
            "J2"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "hollow-crewman"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-cocooned-crewman-3",
          "kind": "creature",
          "name": "Cocooned crewman 3",
          "provenance": "ai-generated",
          "publicName": "a cocoon",
          "publicRef": "p12",
          "readAloud": null,
          "reveal": "when-found",
          "shape": [
            "C7"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "hollow-crewman"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-pod-d-hatchling-swarm",
          "kind": "creature",
          "name": "Pod D hatchling swarm",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p13",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "I7"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "crawler-brood"
          },
          "tags": []
        },
        {
          "behaviours": [
            {
              "id": "b-8",
              "on": "token-enters",
              "arrival": "walked-in",
              "autoFire": false,
              "does": {
                "kind": "say",
                "text": "The cocoons split, one after another, and the crew of Halcyon sit up in their bunks."
              }
            },
            {
              "id": "b-9",
              "on": "token-enters",
              "arrival": "walked-in",
              "autoFire": false,
              "does": {
                "kind": "reveal",
                "contentId": "c-cocooned-crewman-1"
              }
            },
            {
              "id": "b-10",
              "on": "token-enters",
              "arrival": "walked-in",
              "autoFire": false,
              "does": {
                "kind": "reveal",
                "contentId": "c-cocooned-crewman-2"
              }
            },
            {
              "id": "b-11",
              "on": "token-enters",
              "arrival": "walked-in",
              "autoFire": false,
              "does": {
                "kind": "reveal",
                "contentId": "c-cocooned-crewman-3"
              }
            }
          ],
          "dmCue": null,
          "dmNotes": "Disturbing the cocoons wakes the crew inside.",
          "drawFrom": null,
          "id": "c-cutting-the-cocoons",
          "kind": "hazard",
          "name": "Cutting the cocoons",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p14",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "E4:H6"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Personal effects, credits (75), and a crew keycard.",
          "drawFrom": "salvage",
          "id": "c-crew-lockers",
          "kind": "loot",
          "name": "Crew lockers",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p15",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "H3"
          ],
          "stat": null,
          "tags": [
            "coins:75 credits",
            "item:Crew keycard [key: keycard-1]"
          ]
        }
      ],
      "edges": [],
      "mapId": "m-crew-berths",
      "regions": [
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-the-berth-corridor",
          "name": "The berth corridor",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p1",
          "readAloud": "Four sleeping pods, each sealed in a grey, papery cocoon. One of them is breathing.",
          "reveal": "on-entry",
          "shape": [
            "E3:H7"
          ],
          "tags": []
        },
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-pod-a",
          "name": "Pod A",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p2",
          "readAloud": "A cocooned bunk.",
          "reveal": "on-entry",
          "shape": [
            "C2:D2"
          ],
          "tags": []
        },
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-pod-b",
          "name": "Pod B",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p3",
          "readAloud": "A cocooned bunk.",
          "reveal": "on-entry",
          "shape": [
            "I2:J2"
          ],
          "tags": []
        },
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-pod-c",
          "name": "Pod C",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p4",
          "readAloud": "A cocooned bunk.",
          "reveal": "on-entry",
          "shape": [
            "C6:D7"
          ],
          "tags": []
        },
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-pod-d",
          "name": "Pod D",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p5",
          "readAloud": "A cocooned bunk, torn open from inside.",
          "reveal": "on-entry",
          "shape": [
            "I6:J7"
          ],
          "tags": []
        },
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-the-washroom",
          "name": "The washroom",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p6",
          "readAloud": "Sinks and a mirror. Someone has written on the mirror in lipstick: IT'S IN THE VENTS.",
          "reveal": "on-entry",
          "shape": [
            "C4:D5"
          ],
          "tags": []
        }
      ],
      "rows": 8,
      "dmNotes": "Most of the crew were taken in their bunks. The pods are cocooned. Anyone who cuts one open finds a host — or, rarely, a survivor (roll a d6: on a 6, alive)."
    },
    {
      "columns": 12,
      "contents": [
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-the-welded-door-cut-through",
          "kind": "entrance",
          "name": "The welded door (cut through)",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p3",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "A5"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-back-to-the-concourse",
          "kind": "exit",
          "name": "Back to the concourse",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p4",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "A4"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-maintenance-crawlway-to-the-reactor",
          "kind": "exit",
          "name": "Maintenance crawlway to the reactor",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p5",
          "readAloud": "A cramped crawlway, hot and dark.",
          "reveal": "always",
          "shape": [
            "L5"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-crawlway-to-the-cargo-hold",
          "kind": "exit",
          "name": "Crawlway to the cargo hold",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p6",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "F8"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Barricaded. Knows the reactor codes, the coolant vent, and how to overload the core if it comes to that.",
          "drawFrom": null,
          "id": "c-chief-engineer-hallan",
          "kind": "note",
          "name": "Chief Engineer Hallan",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p7",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "J2"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-rogue-drone-1",
          "kind": "creature",
          "name": "Rogue drone 1",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p8",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "D5"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "maintenance-drone"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-rogue-drone-2",
          "kind": "creature",
          "name": "Rogue drone 2",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p9",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "H6"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "maintenance-drone"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-hallan-s-barricade",
          "kind": "cover",
          "name": "Hallan's barricade",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p10",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "I2:K3"
          ],
          "stat": null,
          "tags": [
            "total-cover"
          ]
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Anyone shoved under it when it cycles takes 4d6.",
          "drawFrom": null,
          "hazard": {
            "damage": "4d6",
            "type": "bludgeoning",
            "save": {
              "stat": "dex",
              "dc": 14,
              "half": true
            },
            "rearms": true,
            "detectDc": 12,
            "disarmDc": 14
          },
          "id": "c-the-heavy-press",
          "kind": "hazard",
          "name": "The heavy press",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p11",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "D4:E5"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "A flamethrower (2d6 fire in a 3-square cone, 5 uses), a plasma cutter, and two power cells.",
          "drawFrom": null,
          "id": "c-hallan-s-workbench",
          "kind": "loot",
          "name": "Hallan's workbench",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p12",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "C2"
          ],
          "stat": null,
          "tags": [
            "item:Flamethrower (2d6 fire in a 3-square cone, 5 uses)",
            "item:Plasma cutter (2d6 fire)",
            "item:Two power cells",
            "container"
          ]
        }
      ],
      "edges": [],
      "mapId": "m-engineering-machine-shop",
      "regions": [
        {
          "dmCue": null,
          "dmNotes": "Chief Hallan. Fights only if attacked. Has the reactor access codes.",
          "id": "r-the-shop-floor",
          "name": "The shop floor",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p1",
          "readAloud": "Lathes, workbenches, a heavy press in the middle of the room, scrap everywhere. A voice from behind a barricade: 'Stay where you are or I light you up.'",
          "reveal": "on-entry",
          "shape": [
            "B2:K7"
          ],
          "tags": []
        },
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-the-barricade",
          "name": "The barricade",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p2",
          "readAloud": "A fortress of welded steel plate around the big lathe.",
          "reveal": "on-entry",
          "shape": [
            "I2:K3"
          ],
          "tags": []
        }
      ],
      "rows": 8,
      "dmNotes": "Chief Engineer Hallan welded herself in here. She has built a flamethrower from a cutting torch and will not open up for anyone who can't prove they're not infected (an anti-parasite injector, or Osei's word)."
    },
    {
      "columns": 12,
      "contents": [
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-out-of-the-crawlway",
          "kind": "entrance",
          "name": "Out of the crawlway",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p2",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "F1"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-back-up-the-crawlway",
          "kind": "exit",
          "name": "Back up the crawlway",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p3",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "G1"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-cargo-lift-to-the-breached-deck",
          "kind": "exit",
          "name": "Cargo lift to the breached deck",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p4",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "F8"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-clutch-hatchling-1",
          "kind": "creature",
          "name": "Clutch hatchling 1",
          "provenance": "ai-generated",
          "publicName": "a pulsing patch of webbing",
          "publicRef": "p5",
          "readAloud": null,
          "reveal": "when-found",
          "shape": [
            "D4"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "crawler-brood"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-clutch-hatchling-2",
          "kind": "creature",
          "name": "Clutch hatchling 2",
          "provenance": "ai-generated",
          "publicName": "a pulsing patch of webbing",
          "publicRef": "p6",
          "readAloud": null,
          "reveal": "when-found",
          "shape": [
            "E6"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "crawler-brood"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-clutch-hatchling-3",
          "kind": "creature",
          "name": "Clutch hatchling 3",
          "provenance": "ai-generated",
          "publicName": "a pulsing patch of webbing",
          "publicRef": "p7",
          "readAloud": null,
          "reveal": "when-found",
          "shape": [
            "I4"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "crawler-brood"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-clutch-hatchling-4",
          "kind": "creature",
          "name": "Clutch hatchling 4",
          "provenance": "ai-generated",
          "publicName": "a pulsing patch of webbing",
          "publicRef": "p8",
          "readAloud": null,
          "reveal": "when-found",
          "shape": [
            "H6"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "crawler-brood"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-clutch-guardian",
          "kind": "creature",
          "name": "Clutch guardian",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p9",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "F5"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "hull-crawler"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "A powered loader. Someone who gets in (DC 12 tech) has AC 18, 40 HP, and fists that do 2d8.",
          "drawFrom": null,
          "id": "c-loader-mech",
          "kind": "prop",
          "name": "Loader mech",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p10",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "B7"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-webbing",
          "kind": "terrain",
          "name": "Webbing",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p11",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "D4:I6"
          ],
          "stat": null,
          "tags": [
            "difficult"
          ]
        },
        {
          "behaviours": [
            {
              "id": "b-12",
              "on": "token-enters",
              "arrival": "walked-in",
              "autoFire": true,
              "does": {
                "kind": "reveal",
                "contentId": "c-clutch-hatchling-1"
              }
            },
            {
              "id": "b-13",
              "on": "token-enters",
              "arrival": "walked-in",
              "autoFire": true,
              "does": {
                "kind": "reveal",
                "contentId": "c-clutch-hatchling-2"
              }
            },
            {
              "id": "b-14",
              "on": "token-enters",
              "arrival": "walked-in",
              "autoFire": true,
              "does": {
                "kind": "reveal",
                "contentId": "c-clutch-hatchling-3"
              }
            },
            {
              "id": "b-15",
              "on": "token-enters",
              "arrival": "walked-in",
              "autoFire": true,
              "does": {
                "kind": "reveal",
                "contentId": "c-clutch-hatchling-4"
              }
            }
          ],
          "dmCue": null,
          "dmNotes": "Pushing through wakes the clutch.",
          "drawFrom": null,
          "id": "c-the-webbed-crates",
          "kind": "hazard",
          "name": "The webbed crates",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p12",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "E5:H5"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-container-stacks",
          "kind": "cover",
          "name": "Container stacks",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p13",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "B2:C3",
            "J2:K3",
            "B6:C7",
            "J6:K7"
          ],
          "stat": null,
          "tags": [
            "total-cover"
          ]
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Mining charges (3; 4d6 in a 2-square burst), medkits, and a crate of credits for the station payroll (600).",
          "drawFrom": "salvage",
          "id": "c-manifested-cargo",
          "kind": "loot",
          "name": "Manifested cargo",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p14",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "K4"
          ],
          "stat": null,
          "tags": [
            "item:Mining charges (3; 4d6 in a 2-square burst)",
            "item:Medkits (2) [heals 2d4+2]",
            "coins:600 credits"
          ]
        }
      ],
      "edges": [],
      "mapId": "m-cargo-hold",
      "regions": [
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-the-cargo-hold",
          "name": "The cargo hold",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p1",
          "readAloud": "Shipping containers stacked two high, a loader mech slumped in the corner, and on every surface a grey webbing that pulses very slightly.",
          "reveal": "on-entry",
          "shape": [
            "B2:K7"
          ],
          "tags": []
        }
      ],
      "rows": 8,
      "dmNotes": "Supplies — and the nest of the brood mother's second clutch, among the crates."
    },
    {
      "columns": 12,
      "contents": [
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-where-you-climb-in",
          "kind": "entrance",
          "name": "Where you climb in",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p3",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "C5"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-eva-back-out-to-the-tug",
          "kind": "exit",
          "name": "EVA back out to the tug",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p4",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "E2"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-cargo-lift-down-to-the-hold",
          "kind": "exit",
          "name": "Cargo lift down to the hold",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p5",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "G8"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-hull-crawler",
          "kind": "creature",
          "name": "Hull crawler",
          "provenance": "ai-generated",
          "publicName": "something clinging to the ceiling",
          "publicRef": "p6",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "I4"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "hull-crawler"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Without a sealed suit: 2d6 a round. Unsecured creatures within 2 squares are pulled toward the hole (DC 13 Str save).",
          "drawFrom": null,
          "hazard": {
            "damage": "2d6",
            "type": "cold",
            "save": {
              "stat": "str",
              "dc": 13,
              "half": true
            },
            "condition": {
              "condition": "slowed",
              "duration": {
                "kind": "rounds",
                "rounds": 2
              }
            },
            "rearms": true
          },
          "id": "c-vacuum-at-the-breach",
          "kind": "hazard",
          "name": "Vacuum at the breach",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p7",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "D2:G3"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [
            {
              "id": "b-16",
              "on": "token-enters",
              "arrival": "walked-in",
              "autoFire": true,
              "does": {
                "kind": "say",
                "text": "The bulkhead slams down across the hole. Air roars back into the deck."
              }
            }
          ],
          "dmCue": null,
          "dmNotes": "Seals the breach and restores atmosphere.",
          "drawFrom": null,
          "id": "c-emergency-bulkhead-lever",
          "kind": "hazard",
          "name": "Emergency bulkhead lever",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p8",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "J6"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-frost",
          "kind": "terrain",
          "name": "Frost",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p9",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "B4:K7"
          ],
          "stat": null,
          "tags": [
            "ice"
          ]
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "A security officer frozen mid-run: a pulse pistol, a keycard, and 40 credits.",
          "drawFrom": "salvage",
          "id": "c-frozen-crewman",
          "kind": "loot",
          "name": "Frozen crewman",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p10",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "F6"
          ],
          "stat": null,
          "tags": [
            "item:Pulse pistol",
            "item:Security keycard [key: keycard-1 | keycard-2]",
            "coins:40 credits"
          ]
        }
      ],
      "edges": [],
      "mapId": "m-the-breached-deck",
      "regions": [
        {
          "dmCue": null,
          "dmNotes": "The orbit is visibly lower. Remind them of the clock.",
          "id": "r-the-deck",
          "name": "The deck",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p1",
          "readAloud": "Frost on every surface. Through a ragged hole in the hull, the curve of the planet, far too close.",
          "reveal": "on-entry",
          "shape": [
            "B4:K7"
          ],
          "tags": []
        },
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-the-breach",
          "name": "The breach",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p2",
          "readAloud": "A hole torn in the hull from the inside. Stars.",
          "reveal": "on-entry",
          "shape": [
            "D2:G3"
          ],
          "tags": []
        }
      ],
      "rows": 8,
      "dmNotes": "Where the hull burst. Vacuum at the hole (D2:G3) — anyone without a suit takes 2d6 a round. The emergency bulkhead can be sealed (lever at J6) to restore atmosphere to the rest of the deck."
    },
    {
      "columns": 12,
      "contents": [
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-bottom-of-the-lift-shaft",
          "kind": "entrance",
          "name": "Bottom of the lift shaft",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p4",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "F1"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-climb-back-up-the-shaft",
          "kind": "exit",
          "name": "Climb back up the shaft",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p5",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "G1"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-the-crawlway-to-engineering",
          "kind": "exit",
          "name": "The crawlway to engineering",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p6",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "A5"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": "Slowed by cold. Vent coolant at J7.",
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-the-brood-mother",
          "kind": "creature",
          "name": "The brood mother",
          "provenance": "ai-generated",
          "publicName": "something wrapped around the core",
          "publicRef": "p7",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "F4"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "brood-mother"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-tending-crewman-1",
          "kind": "creature",
          "name": "Tending crewman 1",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p8",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "D3"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "hollow-crewman"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-tending-crewman-2",
          "kind": "creature",
          "name": "Tending crewman 2",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p9",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "I6"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "hollow-crewman"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-brood-guard-1",
          "kind": "creature",
          "name": "Brood guard 1",
          "provenance": "ai-generated",
          "publicName": "a shadow on the catwalk",
          "publicRef": "p10",
          "readAloud": null,
          "reveal": "when-found",
          "shape": [
            "D6"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "hull-crawler"
          },
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-brood-guard-2",
          "kind": "creature",
          "name": "Brood guard 2",
          "provenance": "ai-generated",
          "publicName": "a shadow on the catwalk",
          "publicRef": "p11",
          "readAloud": null,
          "reveal": "when-found",
          "shape": [
            "I3"
          ],
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "hull-crawler"
          },
          "tags": []
        },
        {
          "behaviours": [
            {
              "id": "b-17",
              "on": "token-enters",
              "arrival": "walked-in",
              "autoFire": true,
              "does": {
                "kind": "say",
                "text": "Coolant screams out of the vents. Frost races across the floor, and the brood mother shrieks."
              }
            }
          ],
          "dmCue": null,
          "dmNotes": "Venting coolant: freezing for 3 rounds; the brood move at half speed.",
          "drawFrom": null,
          "id": "c-coolant-vent",
          "kind": "hazard",
          "name": "Coolant vent",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p12",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "J7"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [
            {
              "id": "b-18",
              "on": "token-enters",
              "arrival": "walked-in",
              "autoFire": true,
              "does": {
                "kind": "tell-dm",
                "text": "The reactor console. Hallan's codes or DC 16 tech to restart; DC 14 to overload."
              }
            }
          ],
          "dmCue": null,
          "dmNotes": "Restart power (stabilise the orbit) or set it to overload (10 minutes to get out).",
          "drawFrom": null,
          "id": "c-reactor-console",
          "kind": "hazard",
          "name": "Reactor console",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p13",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "C2"
          ],
          "stat": null,
          "tags": []
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-the-coolant-channel",
          "kind": "terrain",
          "name": "The coolant channel",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p14",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "B5:K5"
          ],
          "stat": null,
          "tags": [
            "hazardous"
          ]
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": "Among the shells, the crew's valuables, gathered like a magpie: 1,200 credits, a captain's ring, and the station's master keycard.",
          "drawFrom": null,
          "id": "c-the-brood-mother-s-nest",
          "kind": "loot",
          "name": "The brood mother's nest",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p15",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "H6"
          ],
          "stat": null,
          "tags": [
            "coins:1,200 credits",
            "item:Captain's ring [neck, worth: 200 credits]",
            "item:The station's master keycard",
            "container"
          ]
        },
        {
          "behaviours": [],
          "dmCue": null,
          "dmNotes": null,
          "drawFrom": null,
          "id": "c-reactor-glow",
          "kind": "light",
          "name": "Reactor glow",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p16",
          "readAloud": null,
          "reveal": "always",
          "shape": [
            "F5"
          ],
          "stat": null,
          "tags": []
        }
      ],
      "edges": [],
      "mapId": "m-the-reactor",
      "regions": [
        {
          "dmCue": null,
          "dmNotes": "The brood mother.",
          "id": "r-the-reactor-core",
          "name": "The reactor core",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p1",
          "readAloud": "The core glows blue through a cage of steel. Wrapped around it, pulsing in time with its hum, is something the size of a shuttle. It is mostly legs. It turns to look at you with far too many eyes.",
          "reveal": "on-entry",
          "shape": [
            "E3:H6"
          ],
          "tags": []
        },
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-the-catwalks",
          "name": "The catwalks",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p2",
          "readAloud": "Grated catwalks over a long drop.",
          "reveal": "on-entry",
          "shape": [
            "B2:K2",
            "B7:K7",
            "B3:B6",
            "K3:K6"
          ],
          "tags": []
        },
        {
          "dmCue": null,
          "dmNotes": null,
          "id": "r-the-coolant-channel",
          "name": "The coolant channel",
          "provenance": "ai-generated",
          "publicName": null,
          "publicRef": "p3",
          "readAloud": "A channel of blue coolant running across the room.",
          "reveal": "on-entry",
          "shape": [
            "B5:K5"
          ],
          "tags": []
        }
      ],
      "rows": 8,
      "dmNotes": "THE FINALE. The brood mother is coiled around the core (E3:H6). Two hollow crewmen tend her. The reactor console (C2) restarts power and stabilises the orbit — Hallan's codes, or DC 16 tech. Venting coolant (J7) makes the room freezing: the brood are slowed (half speed) for 3 rounds. Overloading the core (console, DC 14) destroys the station in 10 minutes."
    }
  ],
  "edges": [],
  "entry": {
    "placementId": "m-halcyon-ring-from-the-tug"
  },
  "kind": "adventure",
  "lattices": [],
  "links": [
    {
      "id": "l-1",
      "fromMapId": "m-halcyon-ring-from-the-tug",
      "toMapId": "m-docking-bay-4",
      "fromContentId": "c-dock-at-the-clear-berth",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-2",
      "fromMapId": "m-halcyon-ring-from-the-tug",
      "toMapId": "m-the-breached-deck",
      "fromContentId": "c-eva-to-the-breach",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-3",
      "fromMapId": "m-docking-bay-4",
      "toMapId": "m-halcyon-ring-from-the-tug",
      "fromContentId": "c-back-to-the-tug",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-4",
      "fromMapId": "m-docking-bay-4",
      "toMapId": "m-the-octagon-concourse",
      "fromContentId": "c-north-into-the-concourse",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-5",
      "fromMapId": "m-the-octagon-concourse",
      "toMapId": "m-docking-bay-4",
      "fromContentId": "c-south-to-the-docking-bay",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-6",
      "fromMapId": "m-the-octagon-concourse",
      "toMapId": "m-command-deck",
      "fromContentId": "c-command-deck",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-7",
      "fromMapId": "m-the-octagon-concourse",
      "toMapId": "m-medbay-and-the-vireo-lab",
      "fromContentId": "c-medical",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-8",
      "fromMapId": "m-the-octagon-concourse",
      "toMapId": "m-hydroponics-farm",
      "fromContentId": "c-hydroponics",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-9",
      "fromMapId": "m-the-octagon-concourse",
      "toMapId": "m-engineering-machine-shop",
      "fromContentId": "c-engineering-machine-shop",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-10",
      "fromMapId": "m-the-octagon-concourse",
      "toMapId": "m-crew-berths",
      "fromContentId": "c-crew-berths",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-11",
      "fromMapId": "m-the-octagon-concourse",
      "toMapId": "m-the-reactor",
      "fromContentId": "c-climb-down-the-lift-shaft-to-the-reactor",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-12",
      "fromMapId": "m-command-deck",
      "toMapId": "m-the-octagon-concourse",
      "fromContentId": "c-back-to-the-concourse",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-13",
      "fromMapId": "m-medbay-and-the-vireo-lab",
      "toMapId": "m-the-octagon-concourse",
      "fromContentId": "c-back-to-the-concourse",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-14",
      "fromMapId": "m-hydroponics-farm",
      "toMapId": "m-the-octagon-concourse",
      "fromContentId": "c-back-to-the-concourse",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-15",
      "fromMapId": "m-hydroponics-farm",
      "toMapId": "m-crew-berths",
      "fromContentId": "c-service-hatch-to-the-crew-berths",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-16",
      "fromMapId": "m-crew-berths",
      "toMapId": "m-the-octagon-concourse",
      "fromContentId": "c-back-to-the-concourse",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-17",
      "fromMapId": "m-crew-berths",
      "toMapId": "m-hydroponics-farm",
      "fromContentId": "c-service-hatch-to-hydroponics",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-18",
      "fromMapId": "m-engineering-machine-shop",
      "toMapId": "m-the-octagon-concourse",
      "fromContentId": "c-back-to-the-concourse",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-19",
      "fromMapId": "m-engineering-machine-shop",
      "toMapId": "m-the-reactor",
      "fromContentId": "c-maintenance-crawlway-to-the-reactor",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-20",
      "fromMapId": "m-engineering-machine-shop",
      "toMapId": "m-cargo-hold",
      "fromContentId": "c-crawlway-to-the-cargo-hold",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-21",
      "fromMapId": "m-cargo-hold",
      "toMapId": "m-engineering-machine-shop",
      "fromContentId": "c-back-up-the-crawlway",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-22",
      "fromMapId": "m-cargo-hold",
      "toMapId": "m-the-breached-deck",
      "fromContentId": "c-cargo-lift-to-the-breached-deck",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-23",
      "fromMapId": "m-the-breached-deck",
      "toMapId": "m-halcyon-ring-from-the-tug",
      "fromContentId": "c-eva-back-out-to-the-tug",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-24",
      "fromMapId": "m-the-breached-deck",
      "toMapId": "m-cargo-hold",
      "fromContentId": "c-cargo-lift-down-to-the-hold",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-25",
      "fromMapId": "m-the-reactor",
      "toMapId": "m-the-octagon-concourse",
      "fromContentId": "c-climb-back-up-the-shaft",
      "fromPort": null,
      "toPort": null
    },
    {
      "id": "l-26",
      "fromMapId": "m-the-reactor",
      "toMapId": "m-engineering-machine-shop",
      "fromContentId": "c-the-crawlway-to-engineering",
      "fromPort": null,
      "toPort": null
    }
  ],
  "manifest": {
    "authors": [
      "DnD Max Scenario Gallery"
    ],
    "engineMin": "0.1.0",
    "formatVersion": 1,
    "id": "gallery-halcyon-ring",
    "license": {
      "attribution": "DnD Max",
      "spdx": "CC0-1.0"
    },
    "name": "Dead Signal: Halcyon Ring",
    "requiresPack": [
      "dndmax.bestiary"
    ],
    "version": "1.0.0"
  },
  "maps": [
    {
      "backdrop": {
        "columns": 12,
        "gridVerified": true,
        "imageUrl": "/maps/library/orbit-ring-station.webp",
        "kind": "registered",
        "licence": {
          "attribution": null,
          "spdx": "CC0-1.0"
        },
        "nativeCellPx": 128,
        "rows": 8
      },
      "columns": 12,
      "id": "m-halcyon-ring-from-the-tug",
      "lattice": null,
      "name": "Halcyon Ring, from the tug",
      "ports": [],
      "provenance": "ai-generated",
      "rows": 8,
      "scale": {
        "tier": "orbit",
        "cell": {
          "unit": "survey-sector"
        }
      },
      "source": {
        "kind": "library",
        "libraryMapId": "lib-orbit-ring-station",
        "version": "1"
      },
      "stack": null
    },
    {
      "backdrop": {
        "columns": 12,
        "gridVerified": true,
        "imageUrl": "/maps/library/station-empty-bay.webp",
        "kind": "registered",
        "licence": {
          "attribution": null,
          "spdx": "CC0-1.0"
        },
        "nativeCellPx": 128,
        "rows": 8
      },
      "columns": 12,
      "id": "m-docking-bay-4",
      "lattice": null,
      "name": "Docking bay 4",
      "ports": [],
      "provenance": "ai-generated",
      "rows": 8,
      "scale": {
        "tier": "room",
        "cell": {
          "unit": "feet",
          "magnitude": 5
        }
      },
      "source": {
        "kind": "library",
        "libraryMapId": "lib-station-empty-bay",
        "version": "1"
      },
      "stack": null
    },
    {
      "backdrop": {
        "columns": 12,
        "gridVerified": true,
        "imageUrl": "/maps/library/station-octagon.webp",
        "kind": "registered",
        "licence": {
          "attribution": null,
          "spdx": "CC0-1.0"
        },
        "nativeCellPx": 128,
        "rows": 8
      },
      "columns": 12,
      "id": "m-the-octagon-concourse",
      "lattice": null,
      "name": "The Octagon concourse",
      "ports": [],
      "provenance": "ai-generated",
      "rows": 8,
      "scale": {
        "tier": "room",
        "cell": {
          "unit": "feet",
          "magnitude": 5
        }
      },
      "source": {
        "kind": "library",
        "libraryMapId": "lib-station-octagon",
        "version": "1"
      },
      "stack": null
    },
    {
      "backdrop": {
        "columns": 12,
        "gridVerified": true,
        "imageUrl": "/maps/library/station-command.webp",
        "kind": "registered",
        "licence": {
          "attribution": null,
          "spdx": "CC0-1.0"
        },
        "nativeCellPx": 128,
        "rows": 8
      },
      "columns": 12,
      "id": "m-command-deck",
      "lattice": null,
      "name": "Command deck",
      "ports": [],
      "provenance": "ai-generated",
      "rows": 8,
      "scale": {
        "tier": "room",
        "cell": {
          "unit": "feet",
          "magnitude": 5
        }
      },
      "source": {
        "kind": "library",
        "libraryMapId": "lib-station-command",
        "version": "1"
      },
      "stack": null
    },
    {
      "backdrop": {
        "columns": 12,
        "gridVerified": true,
        "imageUrl": "/maps/library/station-medbay.webp",
        "kind": "registered",
        "licence": {
          "attribution": null,
          "spdx": "CC0-1.0"
        },
        "nativeCellPx": 128,
        "rows": 8
      },
      "columns": 12,
      "id": "m-medbay-and-the-vireo-lab",
      "lattice": null,
      "name": "Medbay and the Vireo lab",
      "ports": [],
      "provenance": "ai-generated",
      "rows": 8,
      "scale": {
        "tier": "room",
        "cell": {
          "unit": "feet",
          "magnitude": 5
        }
      },
      "source": {
        "kind": "library",
        "libraryMapId": "lib-station-medbay",
        "version": "1"
      },
      "stack": null
    },
    {
      "backdrop": {
        "columns": 12,
        "gridVerified": true,
        "imageUrl": "/maps/library/station-hydroponics.webp",
        "kind": "registered",
        "licence": {
          "attribution": null,
          "spdx": "CC0-1.0"
        },
        "nativeCellPx": 128,
        "rows": 8
      },
      "columns": 12,
      "id": "m-hydroponics-farm",
      "lattice": null,
      "name": "Hydroponics farm",
      "ports": [],
      "provenance": "ai-generated",
      "rows": 8,
      "scale": {
        "tier": "room",
        "cell": {
          "unit": "feet",
          "magnitude": 5
        }
      },
      "source": {
        "kind": "library",
        "libraryMapId": "lib-station-hydroponics",
        "version": "1"
      },
      "stack": null
    },
    {
      "backdrop": {
        "columns": 12,
        "gridVerified": true,
        "imageUrl": "/maps/library/station-berths.webp",
        "kind": "registered",
        "licence": {
          "attribution": null,
          "spdx": "CC0-1.0"
        },
        "nativeCellPx": 128,
        "rows": 8
      },
      "columns": 12,
      "id": "m-crew-berths",
      "lattice": null,
      "name": "Crew berths",
      "ports": [],
      "provenance": "ai-generated",
      "rows": 8,
      "scale": {
        "tier": "room",
        "cell": {
          "unit": "feet",
          "magnitude": 5
        }
      },
      "source": {
        "kind": "library",
        "libraryMapId": "lib-station-berths",
        "version": "1"
      },
      "stack": null
    },
    {
      "backdrop": {
        "columns": 12,
        "gridVerified": true,
        "imageUrl": "/maps/library/station-machine-shop.webp",
        "kind": "registered",
        "licence": {
          "attribution": null,
          "spdx": "CC0-1.0"
        },
        "nativeCellPx": 128,
        "rows": 8
      },
      "columns": 12,
      "id": "m-engineering-machine-shop",
      "lattice": null,
      "name": "Engineering machine shop",
      "ports": [],
      "provenance": "ai-generated",
      "rows": 8,
      "scale": {
        "tier": "room",
        "cell": {
          "unit": "feet",
          "magnitude": 5
        }
      },
      "source": {
        "kind": "library",
        "libraryMapId": "lib-station-machine-shop",
        "version": "1"
      },
      "stack": null
    },
    {
      "backdrop": {
        "columns": 12,
        "gridVerified": true,
        "imageUrl": "/maps/library/station-cargo.webp",
        "kind": "registered",
        "licence": {
          "attribution": null,
          "spdx": "CC0-1.0"
        },
        "nativeCellPx": 128,
        "rows": 8
      },
      "columns": 12,
      "id": "m-cargo-hold",
      "lattice": null,
      "name": "Cargo hold",
      "ports": [],
      "provenance": "ai-generated",
      "rows": 8,
      "scale": {
        "tier": "room",
        "cell": {
          "unit": "feet",
          "magnitude": 5
        }
      },
      "source": {
        "kind": "library",
        "libraryMapId": "lib-station-cargo",
        "version": "1"
      },
      "stack": null
    },
    {
      "backdrop": {
        "columns": 12,
        "gridVerified": true,
        "imageUrl": "/maps/library/station-breach.webp",
        "kind": "registered",
        "licence": {
          "attribution": null,
          "spdx": "CC0-1.0"
        },
        "nativeCellPx": 128,
        "rows": 8
      },
      "columns": 12,
      "id": "m-the-breached-deck",
      "lattice": null,
      "name": "The breached deck",
      "ports": [],
      "provenance": "ai-generated",
      "rows": 8,
      "scale": {
        "tier": "room",
        "cell": {
          "unit": "feet",
          "magnitude": 5
        }
      },
      "source": {
        "kind": "library",
        "libraryMapId": "lib-station-breach",
        "version": "1"
      },
      "stack": null
    },
    {
      "backdrop": {
        "columns": 12,
        "gridVerified": true,
        "imageUrl": "/maps/library/station-reactor.webp",
        "kind": "registered",
        "licence": {
          "attribution": null,
          "spdx": "CC0-1.0"
        },
        "nativeCellPx": 128,
        "rows": 8
      },
      "columns": 12,
      "id": "m-the-reactor",
      "lattice": null,
      "name": "The reactor",
      "ports": [],
      "provenance": "ai-generated",
      "rows": 8,
      "scale": {
        "tier": "room",
        "cell": {
          "unit": "feet",
          "magnitude": 5
        }
      },
      "source": {
        "kind": "library",
        "libraryMapId": "lib-station-reactor",
        "version": "1"
      },
      "stack": null
    }
  ],
  "provenance": "ai-generated",
  "rollTables": [
    {
      "id": "station-stalkers",
      "name": "Station stalkers",
      "entries": [
        {
          "name": "Crawler brood",
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "crawler-brood"
          }
        },
        {
          "name": "Hollow crewman",
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "hollow-crewman"
          }
        },
        {
          "name": "Maintenance drone, malfunctioning",
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "maintenance-drone"
          }
        },
        {
          "name": "Hull crawler",
          "stat": {
            "packId": "dndmax.bestiary",
            "selector": "hull-crawler"
          }
        },
        {
          "name": "The lights die for a full minute",
          "stat": null
        },
        {
          "name": "A crew comm crackles: someone asking for help, a recording nine days old",
          "stat": null
        },
        {
          "name": "Orbit alarm: the clock jumps 15 minutes",
          "stat": null
        }
      ]
    },
    {
      "id": "salvage",
      "name": "Salvage",
      "entries": [
        {
          "name": "A medkit (heals 2d4+2, three uses)",
          "stat": null
        },
        {
          "name": "A charged power cell",
          "stat": null
        },
        {
          "name": "A crew keycard (one door level higher)",
          "stat": null
        },
        {
          "name": "A plasma cutter (2d6 fire at reach 1, cuts through doors)",
          "stat": null
        },
        {
          "name": "Ration bars and water: one day for the whole party",
          "stat": null
        },
        {
          "name": "A personal log that mentions the 'Vireo samples'",
          "stat": null
        }
      ]
    }
  ]
}
