{
  "schemaVersion": 3,
  "generated": "2026-09-16",
  "recordCount": 14,
  "model": "area -> room/sub-location -> services/features/resources/entities/quest steps -> access/links",
  "records": [
    {
      "id": "area.everbrook",
      "name": "Everbrook",
      "type": "starting_town",
      "requirements": [],
      "teleport": true,
      "source": "https://flatmmo.wiki/index.php/Everbrook",
      "coverage": "detailed",
      "gettingThere": "Default spawn and respawn location.",
      "externalConnections": [
        {
          "area": "Beach",
          "fromRoom": "everbrook.willow_trees",
          "method": "bridge",
          "requirements": [
            "Repair bridge with 100 Maple Planks and 500 Iron Nails"
          ]
        },
        {
          "area": "Sewer",
          "fromRoom": "everbrook.east_town_square",
          "method": "manhole",
          "requirements": []
        },
        {
          "area": "Thieves Hideout",
          "fromRoom": "everbrook.willow_oak_grove",
          "method": "trapdoor",
          "requirements": [
            "Wear a Thieves Hood"
          ]
        },
        {
          "area": "Mystic Vale",
          "fromRoom": "everbrook.path_to_mystic_vale",
          "method": "walk",
          "requirements": []
        },
        {
          "area": "Omboko",
          "fromRoom": "everbrook.docks",
          "method": "boat",
          "requirements": [
            "Have 25 Coins"
          ]
        },
        {
          "area": "Ghost Mansion",
          "fromRoom": "everbrook.cemetery",
          "method": "haunted_tombstones",
          "requirements": [
            "Use Haunted Birdnest"
          ]
        }
      ],
      "rooms": [
        {
          "id": "everbrook.spawn",
          "name": "Spawn Area",
          "kind": "outdoor",
          "services": [],
          "features": [
            "Wheat",
            "Normal Tree",
            "sign toward town"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [
            {
              "to": "everbrook.farmlands",
              "method": "walk",
              "direction": "west"
            },
            {
              "to": "everbrook.mining_entrance",
              "method": "walk",
              "direction": "north"
            }
          ],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "everbrook.farmlands",
          "name": "Farmlands",
          "kind": "outdoor",
          "services": [
            "fishing"
          ],
          "features": [
            "Farmers",
            "Chickens",
            "Cows",
            "Normal Tree",
            "Lobster Cage fishing spot"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [
            {
              "to": "everbrook.cow_farm",
              "method": "walk",
              "direction": "west"
            }
          ],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": null,
              "nodeType": "fishing_spot",
              "authority": "derived",
              "skill": "Fishing",
              "tool": "Lobster Cage",
              "note": "The v1.2 feature names the fishing method/spot but does not explicitly name the catch.",
              "evidenceFeature": "Lobster Cage fishing spot"
            }
          ],
          "monsterRefs": [
            {
              "monsterId": "monster.chicken",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            },
            {
              "monsterId": "monster.cow",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            },
            {
              "monsterId": "monster.farmer",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "everbrook.mini_sewer",
          "name": "Mini-sewer",
          "kind": "subarea",
          "services": [],
          "features": [
            "Spiders",
            "Rats"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [
            "Reached through a manhole; distinct from the larger Sewer area."
          ],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.rat",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            },
            {
              "monsterId": "monster.spider",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": [
            {
              "questId": "quest.drain_key",
              "step": 2,
              "authority": "derived",
              "confidence": "high"
            }
          ]
        },
        {
          "id": "everbrook.cow_farm",
          "name": "Cow Farm",
          "kind": "outdoor",
          "services": [
            "sleep",
            "shop",
            "travel"
          ],
          "features": [
            "Cows",
            "farmhouse",
            "beanstalk to Clouds after quest"
          ],
          "bedCount": 1,
          "npcs": [
            "everbrook.susan",
            "everbrook.bob_farmer"
          ],
          "accessRequirements": [],
          "links": [
            {
              "to": "everbrook.clouds",
              "method": "climb",
              "requirements": [
                "Complete Let There Be Light 2"
              ]
            }
          ],
          "notes": [],
          "bedStatus": "documented_present",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.cow",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": [
            {
              "questId": "quest.drain_key",
              "step": 3,
              "authority": "derived",
              "confidence": "high"
            },
            {
              "questId": "quest.let_there_be_light_2",
              "step": 4,
              "authority": "derived",
              "confidence": "high"
            }
          ]
        },
        {
          "id": "everbrook.clouds",
          "name": "Clouds",
          "kind": "subarea",
          "services": [
            "enchantment"
          ],
          "features": [
            "3 Cloud enemies",
            "Air Shrine",
            "Electric Shrine during Storm Scroll state"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [
            "Complete Let There Be Light 2"
          ],
          "links": [],
          "notes": [
            "Reached from Cow Farm by beanstalk."
          ],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.cloud",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "everbrook.mining_entrance",
          "name": "Mining Entrance",
          "kind": "outdoor",
          "services": [
            "shop",
            "mining"
          ],
          "features": [
            "Mine entrance",
            "General Store",
            "ore rocks",
            "trees",
            "well"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": [
            {
              "questId": "quest.the_3_gemstones",
              "step": 1,
              "authority": "derived",
              "confidence": "medium"
            },
            {
              "questId": "quest.the_3_gemstones",
              "step": 7,
              "authority": "derived",
              "confidence": "medium"
            },
            {
              "questId": "quest.desert_temple",
              "step": 3,
              "authority": "derived",
              "confidence": "medium"
            }
          ]
        },
        {
          "id": "everbrook.town_square",
          "name": "Town Square",
          "kind": "outdoor",
          "services": [
            "fishing",
            "stealing"
          ],
          "features": [
            "Shrimp/Anchovy fishing",
            "Oak Tree",
            "Citizen pickpocket",
            "Town Guard"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [
            {
              "to": "everbrook.mayors_house",
              "method": "enter"
            },
            {
              "to": "everbrook.docks",
              "method": "walk",
              "direction": "north"
            }
          ],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": "Shrimp",
              "nodeType": "fishing_spot",
              "authority": "derived",
              "skill": "Fishing",
              "evidenceFeature": "Shrimp/Anchovy fishing"
            },
            {
              "resource": "Anchovy",
              "nodeType": "fishing_spot",
              "authority": "derived",
              "skill": "Fishing",
              "evidenceFeature": "Shrimp/Anchovy fishing"
            }
          ],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "everbrook.mayors_house",
          "name": "Mayor's House",
          "kind": "interior",
          "services": [
            "sleep",
            "quest"
          ],
          "features": [],
          "bedCount": 1,
          "npcs": [
            "everbrook.mayor"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "documented_present",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": [
            {
              "questId": "quest.let_there_be_light",
              "step": 2,
              "authority": "derived",
              "confidence": "medium"
            }
          ]
        },
        {
          "id": "everbrook.docks",
          "name": "Docks",
          "kind": "outdoor",
          "services": [
            "fishing",
            "travel",
            "digging"
          ],
          "features": [
            "Sand Piles",
            "Sardine fishing"
          ],
          "bedCount": 0,
          "npcs": [
            "everbrook.ned"
          ],
          "accessRequirements": [],
          "links": [
            {
              "to": "omboko.tuna_fishing",
              "method": "boat",
              "requirements": [
                "Have 25 Coins"
              ],
              "note": "Ned the Boat Guy offers passage; wiki notes the 25 Coins need only be held."
            }
          ],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": "Sardine",
              "nodeType": "fishing_spot",
              "authority": "derived",
              "skill": "Fishing",
              "evidenceFeature": "Sardine fishing"
            },
            {
              "resource": "Sand",
              "nodeType": "dig_node",
              "authority": "derived",
              "evidenceFeature": "Sand Piles",
              "activity": "digging"
            }
          ],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "everbrook.east_town_square",
          "name": "East Town Square",
          "kind": "outdoor",
          "services": [],
          "features": [
            "Town Guard",
            "Chicken",
            "Little Timmy",
            "Ali",
            "entrances to Bank, Fisherman's Shop and Cemetery"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [
            {
              "to": "everbrook.bank",
              "method": "enter"
            },
            {
              "to": "everbrook.fishermans_shop",
              "method": "enter"
            },
            {
              "to": "everbrook.cemetery",
              "method": "walk",
              "direction": "north"
            },
            {
              "to": "sewer.entrance",
              "method": "manhole"
            }
          ],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.chicken",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "everbrook.bank",
          "name": "Bank",
          "kind": "interior",
          "services": [
            "bank",
            "healing_torch"
          ],
          "features": [
            "Banking",
            "Oak Sacred Heart healing torch"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "everbrook.fishermans_shop",
          "name": "Fisherman's Shop",
          "kind": "interior",
          "services": [
            "sleep",
            "shop"
          ],
          "features": [
            "Spiders",
            "fishing-related shop"
          ],
          "bedCount": 1,
          "npcs": [
            "everbrook.fisherman"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "documented_present",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.spider",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "everbrook.cemetery",
          "name": "Cemetery",
          "kind": "outdoor",
          "services": [
            "worship_refill",
            "travel"
          ],
          "features": [
            "Haunted Tree",
            "Ghosts"
          ],
          "bedCount": 0,
          "npcs": [
            "everbrook.crying_girl"
          ],
          "accessRequirements": [],
          "links": [
            {
              "to": "ghost_mansion.entrance",
              "method": "haunted_tombstones",
              "requirements": [
                "Use Haunted Birdnest to haunt Everbrook tombstones"
              ]
            }
          ],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.ghost",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": [
            {
              "questId": "quest.lost_cat",
              "step": 1,
              "authority": "derived",
              "confidence": "high"
            },
            {
              "questId": "quest.lost_cat",
              "step": 4,
              "authority": "derived",
              "confidence": "high"
            },
            {
              "questId": "quest.sewer_doll",
              "step": 1,
              "authority": "derived",
              "confidence": "high"
            },
            {
              "questId": "quest.sewer_doll",
              "step": 3,
              "authority": "derived",
              "confidence": "high"
            }
          ]
        },
        {
          "id": "everbrook.chicken_pen",
          "name": "Chicken Pen",
          "kind": "outdoor",
          "services": [
            "quest"
          ],
          "features": [
            "Chickens",
            "Tavern entrance"
          ],
          "bedCount": 0,
          "npcs": [
            "everbrook.chicken_farmer"
          ],
          "accessRequirements": [],
          "links": [
            {
              "to": "everbrook.pig_farm",
              "method": "walk",
              "direction": "north"
            },
            {
              "to": "everbrook.tavern",
              "method": "enter"
            }
          ],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.chicken",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": [
            {
              "questId": "quest.chicken_slaughter",
              "step": 1,
              "authority": "derived",
              "confidence": "high"
            },
            {
              "questId": "quest.chicken_slaughter",
              "step": 2,
              "authority": "derived",
              "confidence": "high"
            },
            {
              "questId": "quest.chicken_slaughter",
              "step": 3,
              "authority": "derived",
              "confidence": "high"
            }
          ]
        },
        {
          "id": "everbrook.pig_farm",
          "name": "Pig Farm",
          "kind": "outdoor",
          "services": [],
          "features": [
            "3 Pigs"
          ],
          "bedCount": 0,
          "npcs": [
            "everbrook.the_bacon"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.pig",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "everbrook.tavern",
          "name": "Tavern",
          "kind": "interior",
          "services": [
            "shop"
          ],
          "features": [
            "Rat",
            "Guard",
            "infinite Beer Mugs"
          ],
          "bedCount": 0,
          "npcs": [
            "everbrook.bartender"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.rat",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "everbrook.wheat_fields",
          "name": "Wheat Fields",
          "kind": "outdoor",
          "services": [
            "farming",
            "bank",
            "stealing"
          ],
          "features": [
            "Farming Plot",
            "infinite Wheat",
            "Farmers",
            "Express Bank"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [
            {
              "to": "everbrook.chefs_house",
              "method": "walk",
              "direction": "east"
            }
          ],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": null,
              "nodeType": "farming_plot",
              "authority": "derived",
              "skill": "Farming",
              "evidenceFeature": "Farming Plot"
            },
            {
              "resource": "Wheat",
              "nodeType": "ground_resource",
              "authority": "derived",
              "evidenceFeature": "infinite Wheat"
            }
          ],
          "monsterRefs": [
            {
              "monsterId": "monster.farmer",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "everbrook.chefs_house",
          "name": "Chef's House Exterior",
          "kind": "outdoor",
          "services": [
            "stealing"
          ],
          "features": [
            "2 Farmers",
            "Stall Guard",
            "Master Farmer",
            "level-5 stealing stall"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [
            {
              "to": "everbrook.chefs_house_inside",
              "method": "enter"
            }
          ],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.farmer",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            },
            {
              "monsterId": "monster.master_farmer",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "everbrook.chefs_house_inside",
          "name": "Inside Chef's House",
          "kind": "interior",
          "services": [
            "sleep",
            "shop",
            "cooking"
          ],
          "features": [
            "Cutting board",
            "2 ovens"
          ],
          "bedCount": 1,
          "npcs": [
            "everbrook.chef"
          ],
          "accessRequirements": [],
          "links": [
            {
              "to": "everbrook.chefs_backdoor",
              "method": "backdoor",
              "requirements": [
                "Bake 1 perfect pie"
              ]
            }
          ],
          "notes": [],
          "bedStatus": "documented_present",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": [
            {
              "questId": "quest.shrimp_sandwich",
              "step": 1,
              "authority": "derived",
              "confidence": "high"
            },
            {
              "questId": "quest.shrimp_sandwich",
              "step": 2,
              "authority": "derived",
              "confidence": "high"
            },
            {
              "questId": "quest.volcano_bridge",
              "step": 4,
              "authority": "derived",
              "confidence": "high"
            },
            {
              "questId": "quest.volcano_bridge",
              "step": 5,
              "authority": "derived",
              "confidence": "medium"
            }
          ]
        },
        {
          "id": "everbrook.chefs_backdoor",
          "name": "Chef's Backdoor",
          "kind": "interior",
          "services": [
            "bank",
            "cooking",
            "stealing"
          ],
          "features": [
            "5 ovens",
            "Stealing chest",
            "Chef's Ink"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "everbrook.sewer_entrance",
          "name": "Sewers Entrance",
          "kind": "transition",
          "services": [
            "travel"
          ],
          "features": [
            "Manhole to Sewer"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [
            {
              "to": "sewer.entrance",
              "method": "manhole"
            }
          ],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "everbrook.willow_trees",
          "name": "Willow Trees",
          "kind": "outdoor",
          "services": [],
          "features": [
            "Willow Trees",
            "Archer Goblin"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [
            {
              "to": "beach.bridge",
              "method": "walk",
              "direction": "south"
            },
            {
              "to": "everbrook.willow_oak_grove",
              "method": "walk",
              "direction": "east"
            }
          ],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.archer_goblin",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "everbrook.willow_oak_grove",
          "name": "Willow & Oak Grove",
          "kind": "outdoor",
          "services": [],
          "features": [
            "Willow Trees",
            "Oak Trees",
            "Bear",
            "Cat Lady",
            "near Thieves Hideout entrance"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [
            {
              "to": "thieves_hideout.entrance",
              "method": "trapdoor",
              "requirements": [
                "Wear a Thieves Hood"
              ]
            },
            {
              "to": "everbrook.maple_tree_area",
              "method": "walk",
              "direction": "south"
            }
          ],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.bear",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "everbrook.maple_tree_area",
          "name": "Maple Tree Area",
          "kind": "outdoor",
          "services": [],
          "features": [
            "Maple/Oak/Normal Trees",
            "Bears",
            "Tree Stump"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [
            {
              "to": "everbrook.forest_spirit",
              "method": "break_tree_stump",
              "requirements": [
                "Woodcutting 50",
                "Axe"
              ]
            }
          ],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.bear",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "everbrook.forest_spirit",
          "name": "Forest Spirit",
          "kind": "subarea",
          "services": [
            "reward_exchange"
          ],
          "features": [
            "Forest Spirit",
            "Evil Tree point redemption"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [
            "Woodcutting 50",
            "Break Tree Stump with an axe"
          ],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "everbrook.path_to_mystic_vale",
          "name": "Path to Mystic Vale",
          "kind": "outdoor",
          "services": [],
          "features": [
            "Mage NPC marking Mystic Vale entrance"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [
            {
              "to": "mystic_vale.starting_area",
              "method": "walk",
              "direction": "east"
            }
          ],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        }
      ],
      "npcs": [
        {
          "id": "everbrook.susan",
          "name": "Susan",
          "roomId": "everbrook.cow_farm",
          "functions": [
            "new_player_tips"
          ]
        },
        {
          "id": "everbrook.bob_farmer",
          "name": "Bob the Farmer",
          "roomId": "everbrook.cow_farm",
          "functions": [
            "shop"
          ],
          "details": "Sells the same items as the General Store."
        },
        {
          "id": "everbrook.mayor",
          "name": "Everbrook Mayor",
          "roomId": "everbrook.mayors_house",
          "functions": [
            "quest",
            "talk"
          ]
        },
        {
          "id": "everbrook.ned",
          "name": "Ned the Boat Guy",
          "roomId": "everbrook.docks",
          "functions": [
            "travel"
          ],
          "details": "Boat passage to Omboko for 25 Coins; current wiki says the coins only need to be held."
        },
        {
          "id": "everbrook.fisherman",
          "name": "Fisherman",
          "roomId": "everbrook.fishermans_shop",
          "functions": [
            "shop"
          ],
          "details": "Sells fishing-related items."
        },
        {
          "id": "everbrook.crying_girl",
          "name": "Crying Girl",
          "roomId": "everbrook.cemetery",
          "functions": [
            "quest",
            "talk"
          ]
        },
        {
          "id": "everbrook.chicken_farmer",
          "name": "Chicken Farmer",
          "roomId": "everbrook.chicken_pen",
          "functions": [
            "quest",
            "talk"
          ]
        },
        {
          "id": "everbrook.the_bacon",
          "name": "The Bacon",
          "roomId": "everbrook.pig_farm",
          "functions": [
            "talk"
          ]
        },
        {
          "id": "everbrook.bartender",
          "name": "Bartender",
          "roomId": "everbrook.tavern",
          "functions": [
            "shop"
          ]
        },
        {
          "id": "everbrook.chef",
          "name": "Chef",
          "roomId": "everbrook.chefs_house_inside",
          "functions": [
            "shop",
            "quest",
            "cooking"
          ]
        }
      ]
    },
    {
      "id": "area.mystic_vale",
      "name": "Mystic Vale",
      "type": "magical_town",
      "requirements": [],
      "teleport": true,
      "source": "https://flatmmo.wiki/index.php/Mystic_Vale",
      "coverage": "detailed",
      "gettingThere": "Walk east through the Everbrook Outskirts or use the Worship teleport.",
      "externalConnections": [
        {
          "area": "Everbrook",
          "fromRoom": "mystic_vale.starting_area",
          "method": "walk",
          "requirements": []
        }
      ],
      "rooms": [
        {
          "id": "mystic_vale.starting_area",
          "name": "Starting Area",
          "kind": "outdoor",
          "services": [
            "enchantment",
            "boss_access"
          ],
          "features": [
            "Damage Orb 1 altar",
            "Deranged Mage boss entrance"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [
            {
              "to": "mystic_vale.locked_house",
              "method": "walk",
              "direction": "east"
            }
          ],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.deranged_mage",
              "relation": "access_point",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "mystic_vale.locked_house",
          "name": "Locked House Area",
          "kind": "outdoor",
          "services": [
            "combat",
            "stealing"
          ],
          "features": [
            "Guard Mage",
            "Magic Tree",
            "Mage pickpocket"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [
            {
              "to": "mystic_vale.cemetery",
              "method": "walk",
              "direction": "south"
            },
            {
              "to": "mystic_vale.central",
              "method": "walk",
              "direction": "north"
            },
            {
              "to": "mystic_vale.locked_house_interior",
              "method": "enter",
              "requirements": [
                "Deranged Mage key"
              ]
            }
          ],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.guard_mage",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "mystic_vale.locked_house_interior",
          "name": "Locked House Interior",
          "kind": "interior",
          "services": [],
          "features": [
            "Chest with Stardust and Blue Mage Silk"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [
            "Defeat Deranged Mage and loot the key"
          ],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "mystic_vale.cemetery",
          "name": "Cemetery",
          "kind": "outdoor",
          "services": [
            "combat",
            "woodcutting"
          ],
          "features": [
            "Haunted Tree",
            "Magic Trees",
            "Ghosts"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": "Haunted Tree",
              "nodeType": "tree",
              "authority": "derived",
              "skill": "Woodcutting",
              "evidenceFeature": "Haunted Tree"
            },
            {
              "resource": "Magic Tree",
              "nodeType": "tree",
              "authority": "derived",
              "skill": "Woodcutting",
              "evidenceFeature": "Magic Trees"
            }
          ],
          "monsterRefs": [
            {
              "monsterId": "monster.ghost",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "mystic_vale.central",
          "name": "Mystic Vale Central",
          "kind": "outdoor",
          "services": [],
          "features": [
            "Bank",
            "Mayor's House",
            "Hairdresser",
            "hidden level-90 Stealing chest route"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [
            {
              "to": "mystic_vale.bank",
              "method": "enter"
            },
            {
              "to": "mystic_vale.mayor_house",
              "method": "enter"
            },
            {
              "to": "mystic_vale.hairdresser",
              "method": "through_mayor_house"
            },
            {
              "to": "mystic_vale.orb_pile",
              "method": "walk",
              "direction": "west"
            },
            {
              "to": "mystic_vale.shops",
              "method": "walk",
              "direction": "east"
            }
          ],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "mystic_vale.hairdresser",
          "name": "Mystic Vale Hairdresser",
          "kind": "interior",
          "services": [
            "appearance_change"
          ],
          "features": [],
          "bedCount": 0,
          "npcs": [
            "mystic_vale.hairdresser_npc"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "mystic_vale.bank",
          "name": "Mystic Vale Bank",
          "kind": "interior",
          "services": [
            "bank",
            "healing_torch"
          ],
          "features": [
            "Magic Sacred Heart healing torch"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "mystic_vale.mayor_house",
          "name": "Mystic Vale Mayor's House",
          "kind": "interior",
          "services": [
            "sleep",
            "quest",
            "achievement"
          ],
          "features": [],
          "bedCount": 1,
          "npcs": [
            "mystic_vale.mayor"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "documented_present",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": [
            {
              "questId": "quest.let_there_be_light",
              "step": 2,
              "authority": "derived",
              "confidence": "medium"
            }
          ]
        },
        {
          "id": "mystic_vale.orb_pile",
          "name": "Orb Pile",
          "kind": "outdoor",
          "services": [
            "digging",
            "combat"
          ],
          "features": [
            "Dig Unpowered Orbs with a Shovel",
            "3 Guard Mages"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": "Unpowered Orb",
              "nodeType": "dig_node",
              "authority": "derived",
              "tool": "Shovel",
              "evidenceFeature": "Dig Unpowered Orbs with a Shovel",
              "activity": "digging"
            }
          ],
          "monsterRefs": [
            {
              "monsterId": "monster.guard_mage",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "mystic_vale.shops",
          "name": "Mystic Vale Shops",
          "kind": "outdoor",
          "services": [
            "shop"
          ],
          "features": [
            "Magic Shop",
            "General Supply Shop",
            "Chest"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [
            {
              "to": "mystic_vale.magic_shop",
              "method": "enter"
            },
            {
              "to": "mystic_vale.general_shop",
              "method": "enter"
            },
            {
              "to": "mystic_vale.ladder_to_farm",
              "method": "walk",
              "direction": "east"
            }
          ],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "mystic_vale.magic_shop",
          "name": "Magic Shop",
          "kind": "interior",
          "services": [
            "shop"
          ],
          "features": [
            "Staves",
            "Magic Orbs"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "mystic_vale.general_shop",
          "name": "General Supply Shop",
          "kind": "interior",
          "services": [
            "shop"
          ],
          "features": [
            "Buckets",
            "Matches",
            "Shovels",
            "secret passage and free-orb chest"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "mystic_vale.ladder_to_farm",
          "name": "Ladder to the Farm",
          "kind": "outdoor",
          "services": [],
          "features": [
            "Mage",
            "Witch's House"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [
            {
              "to": "mystic_vale.farm",
              "method": "ladder"
            },
            {
              "to": "mystic_vale.witches_house",
              "method": "enter"
            }
          ],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.mage",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "mystic_vale.witches_house",
          "name": "Witch's House",
          "kind": "interior",
          "services": [
            "talk"
          ],
          "features": [],
          "bedCount": 0,
          "npcs": [
            "mystic_vale.witch"
          ],
          "accessRequirements": [],
          "links": [
            {
              "to": "mystic_vale.witches_basement",
              "method": "ladder"
            }
          ],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "mystic_vale.witches_basement",
          "name": "Witch's Basement / Mask Combiner",
          "kind": "interior",
          "services": [
            "mask_trade"
          ],
          "features": [],
          "bedCount": 0,
          "npcs": [
            "mystic_vale.hunter"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "mystic_vale.farm",
          "name": "Mystic Vale Farm",
          "kind": "underground",
          "services": [
            "farming",
            "bank",
            "quest"
          ],
          "features": [
            "Unlockable farming plot"
          ],
          "bedCount": 0,
          "npcs": [
            "mystic_vale.zapto"
          ],
          "accessRequirements": [],
          "links": [
            {
              "to": "mystic_vale.wall_of_mages",
              "method": "walk",
              "direction": "east"
            },
            {
              "to": "mystic_vale.shops",
              "method": "walk",
              "direction": "west"
            }
          ],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": null,
              "nodeType": "farming_plot",
              "authority": "derived",
              "skill": "Farming",
              "evidenceFeature": "Unlockable farming plot"
            }
          ],
          "monsterRefs": [],
          "questStepRefs": [
            {
              "questId": "quest.let_there_be_light_2",
              "step": 1,
              "authority": "derived",
              "confidence": "high"
            },
            {
              "questId": "quest.let_there_be_light_2",
              "step": 3,
              "authority": "derived",
              "confidence": "high"
            },
            {
              "questId": "quest.let_there_be_light",
              "step": 1,
              "authority": "derived",
              "confidence": "high"
            },
            {
              "questId": "quest.let_there_be_light",
              "step": 3,
              "authority": "derived",
              "confidence": "medium"
            }
          ]
        },
        {
          "id": "mystic_vale.wall_of_mages",
          "name": "Wall of Mage Guards",
          "kind": "outdoor",
          "services": [
            "combat"
          ],
          "features": [
            "Mage guards",
            "Dwarf Researcher",
            "Magic Trees"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [
            {
              "to": "mystic_vale.red_mages",
              "method": "walk",
              "direction": "east"
            }
          ],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "mystic_vale.red_mages",
          "name": "Red Mages",
          "kind": "outdoor",
          "services": [
            "combat"
          ],
          "features": [
            "3 aggressive Red Mages"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [
            {
              "to": "mystic_vale.ogres",
              "method": "walk",
              "direction": "north"
            }
          ],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.red_mage",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": [
            {
              "questId": "quest.the_3_gemstones",
              "step": 5,
              "authority": "derived",
              "confidence": "high"
            }
          ]
        },
        {
          "id": "mystic_vale.ogres",
          "name": "Ogres",
          "kind": "outdoor",
          "services": [
            "combat"
          ],
          "features": [
            "Ogres",
            "Machete fence route for safespot access"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.ogre",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        }
      ],
      "npcs": [
        {
          "id": "mystic_vale.hairdresser_npc",
          "name": "Hairdresser",
          "roomId": "mystic_vale.hairdresser",
          "functions": [
            "appearance_change"
          ]
        },
        {
          "id": "mystic_vale.mayor",
          "name": "Blue Mayor Mage",
          "roomId": "mystic_vale.mayor_house",
          "functions": [
            "talk",
            "quest"
          ]
        },
        {
          "id": "mystic_vale.zapto",
          "name": "Zapto",
          "roomId": "mystic_vale.farm",
          "functions": [
            "quest"
          ]
        },
        {
          "id": "mystic_vale.witch",
          "name": "Witch",
          "roomId": "mystic_vale.witches_house",
          "functions": [
            "talk"
          ]
        },
        {
          "id": "mystic_vale.hunter",
          "name": "Hunter",
          "roomId": "mystic_vale.witches_basement",
          "functions": [
            "hunting_mask_trade"
          ]
        },
        {
          "id": "mystic_vale.gray_mage",
          "name": "Gray Mage",
          "roomId": "mystic_vale.starting_area",
          "functions": [
            "pickpocket"
          ]
        },
        {
          "id": "mystic_vale.guard_mage",
          "name": "Guard Mage",
          "roomId": "mystic_vale.wall_of_mages",
          "functions": [
            "talk",
            "combat"
          ]
        }
      ]
    },
    {
      "id": "area.dock_haven",
      "name": "Dock Haven",
      "type": "fishing_town",
      "requirements": [],
      "teleport": true,
      "source": "https://flatmmo.wiki/index.php/Dock_Haven",
      "coverage": "detailed",
      "gettingThere": "Teleport or take the boat from Beach for 100 Coins.",
      "externalConnections": [
        {
          "area": "Beach",
          "fromRoom": "dock_haven.dock",
          "method": "boat",
          "requirements": []
        },
        {
          "area": "Pirate Isle",
          "fromRoom": "dock_haven.centre",
          "method": "swim",
          "requirements": [
            "Watcher-related access/progression"
          ]
        },
        {
          "area": "Atlas",
          "fromRoom": "dock_haven.vortex",
          "method": "vortex",
          "requirements": [
            "Create/unlock the Vortex route"
          ]
        }
      ],
      "rooms": [
        {
          "id": "dock_haven.dock",
          "name": "Dock",
          "kind": "outdoor",
          "services": [
            "fishing",
            "woodcutting",
            "enchantment",
            "travel"
          ],
          "features": [
            "Mangrove Trees",
            "Water Orb altar",
            "Shark fishing"
          ],
          "bedCount": 0,
          "npcs": [
            "dock_haven.dockmen"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": "Mangrove Tree",
              "nodeType": "tree",
              "authority": "derived",
              "skill": "Woodcutting",
              "evidenceFeature": "Mangrove Trees"
            },
            {
              "resource": "Shark",
              "nodeType": "fishing_spot",
              "authority": "derived",
              "skill": "Fishing",
              "evidenceFeature": "Shark fishing"
            }
          ],
          "monsterRefs": [],
          "questStepRefs": [
            {
              "questId": "quest.let_there_be_light_2",
              "step": 2,
              "authority": "derived",
              "confidence": "high"
            }
          ]
        },
        {
          "id": "dock_haven.centre",
          "name": "Dock Haven Centre",
          "kind": "outdoor",
          "services": [
            "bank",
            "shop",
            "travel",
            "quest"
          ],
          "features": [
            "Mangrove Tree",
            "Bank entrance",
            "Fishing Shop entrance"
          ],
          "bedCount": 0,
          "npcs": [
            "dock_haven.watcher",
            "dock_haven.roger"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": [
            {
              "questId": "quest.saving_marin",
              "step": 1,
              "authority": "derived",
              "confidence": "medium"
            },
            {
              "questId": "quest.saving_marin",
              "step": 9,
              "authority": "derived",
              "confidence": "high"
            }
          ]
        },
        {
          "id": "dock_haven.bank",
          "name": "Dock Haven Bank",
          "kind": "interior",
          "services": [
            "bank",
            "healing_torch"
          ],
          "features": [
            "Mangrove Sacred Heart healing torch"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": [
            {
              "questId": "quest.saving_marin",
              "step": 3,
              "authority": "derived",
              "confidence": "partial"
            }
          ]
        },
        {
          "id": "dock_haven.seagulls",
          "name": "Dock Haven Seagulls / Water Spirit",
          "kind": "outdoor",
          "services": [
            "combat",
            "stealing",
            "fishing"
          ],
          "features": [
            "Seagulls",
            "Water Spirit",
            "stealing stall",
            "Lobster Cage"
          ],
          "bedCount": 0,
          "npcs": [
            "dock_haven.stubby"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": null,
              "nodeType": "fishing_spot",
              "authority": "derived",
              "skill": "Fishing",
              "tool": "Lobster Cage",
              "note": "The room feature identifies a Lobster Cage fishing interaction but not the catch by name.",
              "evidenceFeature": "Lobster Cage"
            }
          ],
          "monsterRefs": [
            {
              "monsterId": "monster.seagull",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "dock_haven.vortex",
          "name": "Vortex",
          "kind": "transition",
          "services": [
            "travel"
          ],
          "features": [
            "Link to Atlas"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [
            {
              "to": "atlas.vortex",
              "method": "vortex"
            }
          ],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "dock_haven.fishing_shop",
          "name": "Dock Haven Fishing Shop",
          "kind": "interior",
          "services": [
            "shop"
          ],
          "features": [
            "Fishing tools",
            "cooked fish"
          ],
          "bedCount": 0,
          "npcs": [
            "dock_haven.happy_jack"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "dock_haven.lochness",
          "name": "Dock Haven Lochness",
          "kind": "minigame",
          "services": [
            "minigame"
          ],
          "features": [
            "Lochness minigame"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [
            "Fishing Rod",
            "Fishing Net",
            "Ranged weapon",
            "Arrows"
          ],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.lochness_monster",
              "relation": "minigame_access",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        }
      ],
      "npcs": [
        {
          "id": "dock_haven.dockmen",
          "name": "Dockmen",
          "roomId": "dock_haven.dock",
          "functions": [
            "travel"
          ],
          "details": "Return/travel to Beach."
        },
        {
          "id": "dock_haven.watcher",
          "name": "Watcher",
          "roomId": "dock_haven.centre",
          "functions": [
            "quest",
            "travel_unlock"
          ],
          "details": "Quest NPC; enables swim access toward Pirate Isle."
        },
        {
          "id": "dock_haven.roger",
          "name": "Roger",
          "roomId": "dock_haven.centre",
          "functions": [
            "talk"
          ]
        },
        {
          "id": "dock_haven.stubby",
          "name": "Stubby",
          "roomId": "dock_haven.seagulls",
          "functions": [
            "talk"
          ]
        },
        {
          "id": "dock_haven.happy_jack",
          "name": "Happy Jack",
          "roomId": "dock_haven.fishing_shop",
          "functions": [
            "shop"
          ]
        }
      ]
    },
    {
      "id": "area.ghost_mansion",
      "name": "Ghost Mansion",
      "type": "haunted_area",
      "requirements": [
        "Haunted Birdnest route or Phantos Teleport Scroll"
      ],
      "teleport": true,
      "source": "https://flatmmo.wiki/index.php/Ghost_Mansion",
      "coverage": "detailed",
      "gettingThere": "Use a Haunted Birdnest to haunt the Everbrook Cemetery tombstones, or use a Phantos Teleport Scroll.",
      "externalConnections": [
        {
          "area": "Everbrook",
          "fromRoom": "ghost_mansion.entrance",
          "method": "tombstone",
          "requirements": []
        }
      ],
      "rooms": [
        {
          "id": "ghost_mansion.entrance",
          "name": "Ghost Mansion Area Entrance",
          "kind": "outdoor",
          "services": [
            "travel"
          ],
          "features": [
            "Tombstone back to Everbrook Cemetery"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "ghost_mansion.large_ghosts",
          "name": "Large Ghosts",
          "kind": "outdoor",
          "services": [
            "combat"
          ],
          "features": [
            "Large Ghosts",
            "dead trees"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "ghost_mansion.swinging_tree",
          "name": "Swinging Tree",
          "kind": "outdoor",
          "services": [
            "quest"
          ],
          "features": [
            "Vreya",
            "route gate to mansion/forest"
          ],
          "bedCount": 0,
          "npcs": [
            "ghost_mansion.vreya"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "ghost_mansion.haunted_woods_entrance",
          "name": "Haunted Woods Entrance",
          "kind": "outdoor",
          "services": [],
          "features": [
            "dead trees",
            "path into Haunted Woods"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "ghost_mansion.haunted_woods",
          "name": "Haunted Woods",
          "kind": "outdoor",
          "services": [
            "combat",
            "stealing",
            "quest"
          ],
          "features": [
            "Zombies",
            "Ghosts of players",
            "5 stealing chests",
            "Vreya chase"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "ghost_mansion.haunted_bridge_entrance",
          "name": "Haunted Bridge Entrance",
          "kind": "outdoor",
          "services": [],
          "features": [],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "ghost_mansion.haunted_bridge",
          "name": "Haunted Bridge",
          "kind": "outdoor",
          "services": [
            "achievement"
          ],
          "features": [
            "Phantos Teleport Scroll achievement interaction"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "ghost_mansion.mansion_entrance",
          "name": "Ghost Mansion Entrance",
          "kind": "outdoor",
          "services": [],
          "features": [],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [
            "Phantos Mansion Entrance Key from Haunted Skeletons"
          ],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "ghost_mansion.cemetery",
          "name": "Ghost Mansion Cemetery",
          "kind": "outdoor",
          "services": [
            "worship_refill",
            "combat"
          ],
          "features": [
            "Haunted Tree",
            "Haunted Skeleton summoning",
            "disturbed dirt"
          ],
          "bedCount": 0,
          "npcs": [
            "ghost_mansion.priest"
          ],
          "accessRequirements": [],
          "links": [
            {
              "to": "ghost_mansion.under_cemetery",
              "method": "collapse_floor",
              "requirements": [
                "Granite Boots",
                "Stomp disturbed dirt"
              ]
            }
          ],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "ghost_mansion.under_cemetery",
          "name": "Under Cemetery",
          "kind": "underground",
          "services": [
            "combat",
            "stealing"
          ],
          "features": [
            "Gargoyle",
            "level-70 Stealing chest",
            "Granite Gloves"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "ghost_mansion.bank",
          "name": "Ghost Mansion Bank",
          "kind": "interior",
          "services": [
            "bank",
            "enchantment",
            "stealing"
          ],
          "features": [
            "Damage Orb 3 altar",
            "Ghostly Bats",
            "stairs"
          ],
          "bedCount": 0,
          "npcs": [
            "ghost_mansion.enchanter",
            "ghost_mansion.banker",
            "ghost_mansion.ghost_thief"
          ],
          "accessRequirements": [
            "100 Spirit Energy to unlock bank",
            "500 Spirit Energy to unlock Enchantment altar"
          ],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "ghost_mansion.shops",
          "name": "Ghost Mansion Shops",
          "kind": "interior",
          "services": [
            "shop",
            "boss_access"
          ],
          "features": [
            "3 shops",
            "boss entrance"
          ],
          "bedCount": 0,
          "npcs": [
            "ghost_mansion.badge_shop",
            "ghost_mansion.potion_shop",
            "ghost_mansion.thief_shop"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "ghost_mansion.library",
          "name": "Ghost Mansion Library",
          "kind": "interior",
          "services": [
            "stealing",
            "quest"
          ],
          "features": [
            "level-68 Stealing chest",
            "Mysterious Bookcase",
            "Teleport Scroll Book quest"
          ],
          "bedCount": 0,
          "npcs": [
            "ghost_mansion.librarian"
          ],
          "accessRequirements": [],
          "links": [
            {
              "to": "ghost_mansion.living_gargoyles",
              "method": "mysterious_book"
            }
          ],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "ghost_mansion.living_gargoyles",
          "name": "Library Living Gargoyles",
          "kind": "subarea",
          "services": [
            "combat"
          ],
          "features": [
            "3 Gargoyles"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        }
      ],
      "npcs": [
        {
          "id": "ghost_mansion.vreya",
          "name": "Vreya",
          "roomId": "ghost_mansion.swinging_tree",
          "functions": [
            "access_gate",
            "quest"
          ]
        },
        {
          "id": "ghost_mansion.priest",
          "name": "Ghost Priest",
          "roomId": "ghost_mansion.cemetery",
          "functions": [
            "talk"
          ]
        },
        {
          "id": "ghost_mansion.enchanter",
          "name": "Enchanter",
          "roomId": "ghost_mansion.bank",
          "functions": [
            "unlock_enchantment_altar"
          ]
        },
        {
          "id": "ghost_mansion.banker",
          "name": "Banker",
          "roomId": "ghost_mansion.bank",
          "functions": [
            "bank",
            "unlock_bank"
          ]
        },
        {
          "id": "ghost_mansion.ghost_thief",
          "name": "Ghost Thief",
          "roomId": "ghost_mansion.bank",
          "functions": [
            "pickpocket"
          ]
        },
        {
          "id": "ghost_mansion.librarian",
          "name": "Ghost Librarian",
          "roomId": "ghost_mansion.library",
          "functions": [
            "quest",
            "unlock_teleport_scroll_book"
          ]
        },
        {
          "id": "ghost_mansion.badge_shop",
          "name": "Ghost Shopkeeper Badge",
          "roomId": "ghost_mansion.shops",
          "functions": [
            "shop"
          ],
          "details": "Sells/unlocks Invisibility Badge."
        },
        {
          "id": "ghost_mansion.potion_shop",
          "name": "Ghost Shopkeeper Potion",
          "roomId": "ghost_mansion.shops",
          "functions": [
            "shop"
          ],
          "details": "Sells Blessed Potion."
        },
        {
          "id": "ghost_mansion.thief_shop",
          "name": "Ghost Shopkeeper Thief",
          "roomId": "ghost_mansion.shops",
          "functions": [
            "shop"
          ],
          "details": "Sells Ghost Peppers."
        }
      ]
    },
    {
      "id": "area.thieves_hideout",
      "name": "Thieves Hideout",
      "type": "hideout",
      "requirements": [
        "Wear a Thieves Hood for the normal trapdoor entrance"
      ],
      "teleport": true,
      "source": "https://flatmmo.wiki/index.php/Thieves_Hideout",
      "coverage": "detailed",
      "gettingThere": "Wear a Thieves Hood and use the trapdoor near Everbrook outskirts, or use the alternate ladder from the Beach quicksand route.",
      "externalConnections": [
        {
          "area": "Everbrook",
          "fromRoom": "thieves_hideout.entrance",
          "method": "exit_south",
          "requirements": []
        },
        {
          "area": "Beach",
          "fromRoom": "thieves_hideout.entrance",
          "method": "quicksand_ladder",
          "requirements": []
        }
      ],
      "rooms": [
        {
          "id": "thieves_hideout.thief_trees",
          "name": "Thief Trees",
          "kind": "outdoor",
          "services": [],
          "features": [
            "Normal Trees",
            "2 Thieves",
            "Lumberjack"
          ],
          "bedCount": 0,
          "npcs": [
            "thieves_hideout.lumberjack"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "thieves_hideout.entrance",
          "name": "Thief Hideout Entrance",
          "kind": "transition",
          "services": [
            "shop"
          ],
          "features": [
            "Thieves",
            "Gold Knife Thief",
            "Thief Guard",
            "Knife shop"
          ],
          "bedCount": 0,
          "npcs": [
            "thieves_hideout.guard"
          ],
          "accessRequirements": [
            "Wear a Thieves Hood for normal entrance"
          ],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.thief",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "thieves_hideout.main_room",
          "name": "Thieves Hideout",
          "kind": "interior",
          "services": [
            "sleep",
            "quest",
            "combat"
          ],
          "features": [
            "3 Thieves"
          ],
          "bedCount": 4,
          "npcs": [
            "thieves_hideout.brown_thief"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "documented_present",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.thief",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": [
            {
              "questId": "quest.thieves_hideout_1",
              "step": 1,
              "authority": "derived",
              "confidence": "high"
            },
            {
              "questId": "quest.thieves_hideout_1",
              "step": 2,
              "authority": "derived",
              "confidence": "high"
            },
            {
              "questId": "quest.thieves_hideout_1",
              "step": 3,
              "authority": "derived",
              "confidence": "high"
            }
          ]
        },
        {
          "id": "thieves_hideout.locked_room",
          "name": "Thief Locked Room",
          "kind": "interior",
          "services": [
            "combat"
          ],
          "features": [
            "2 Thieves",
            "locked door",
            "ladder to floor 2"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.thief",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "thieves_hideout.floor2",
          "name": "Thief Hideout Floor 2",
          "kind": "interior",
          "services": [
            "combat",
            "quest"
          ],
          "features": [
            "Archer Thieves",
            "Brown Thief"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.archer_thief",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "thieves_hideout.demon",
          "name": "Thief Demon",
          "kind": "interior",
          "services": [
            "combat",
            "chest"
          ],
          "features": [
            "Demon",
            "chest unlocks after Demon dies"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": [
            {
              "questId": "quest.thieves_hideout_2",
              "step": 3,
              "authority": "derived",
              "confidence": "high"
            },
            {
              "questId": "quest.thieves_hideout_2",
              "step": 4,
              "authority": "derived",
              "confidence": "high"
            }
          ]
        },
        {
          "id": "thieves_hideout.bank_shop",
          "name": "Thief Bank and Shop",
          "kind": "interior",
          "services": [
            "bank",
            "shop",
            "fishing",
            "healing_torch"
          ],
          "features": [
            "Eel fishing",
            "Archery Shop",
            "Willow Sacred Heart healing torch"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": "Eel",
              "nodeType": "fishing_spot",
              "authority": "derived",
              "skill": "Fishing",
              "evidenceFeature": "Eel fishing"
            }
          ],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "thieves_hideout.fat_guy",
          "name": "Thief Fat Guy",
          "kind": "interior",
          "services": [
            "quest",
            "shop"
          ],
          "features": [
            "Bully Thief",
            "Silent Shop",
            "ladder gated by quest"
          ],
          "bedCount": 0,
          "npcs": [
            "thieves_hideout.bully_thief"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.bully_thief",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "thieves_hideout.basement",
          "name": "Thief Fat Friends Basement",
          "kind": "interior",
          "services": [
            "combat",
            "stealing"
          ],
          "features": [
            "Barbed Wire",
            "Hunter",
            "Bully Thieves",
            "hidden stealing chest"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.bully_thief",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        }
      ],
      "npcs": [
        {
          "id": "thieves_hideout.lumberjack",
          "name": "Lumberjack",
          "roomId": "thieves_hideout.thief_trees",
          "functions": [
            "talk"
          ]
        },
        {
          "id": "thieves_hideout.guard",
          "name": "Thief Guard",
          "roomId": "thieves_hideout.entrance",
          "functions": [
            "access_gate",
            "shop"
          ]
        },
        {
          "id": "thieves_hideout.brown_thief",
          "name": "Brown Thief",
          "roomId": "thieves_hideout.main_room",
          "functions": [
            "quest"
          ]
        },
        {
          "id": "thieves_hideout.bully_thief",
          "name": "Bully Thief",
          "roomId": "thieves_hideout.fat_guy",
          "functions": [
            "quest",
            "combat"
          ]
        }
      ]
    },
    {
      "id": "area.sewer",
      "name": "Sewer",
      "type": "everbrook_subarea",
      "requirements": [],
      "teleport": false,
      "source": "https://flatmmo.wiki/index.php/Sewer",
      "coverage": "detailed",
      "gettingThere": "Use the manhole in Everbrook's central/east-town area.",
      "externalConnections": [
        {
          "area": "Everbrook",
          "fromRoom": "sewer.entrance",
          "method": "ladder",
          "requirements": []
        }
      ],
      "rooms": [
        {
          "id": "sewer.entrance",
          "name": "Sewer Entrance",
          "kind": "underground",
          "services": [
            "combat",
            "talk"
          ],
          "features": [
            "Demon",
            "Spiders"
          ],
          "bedCount": 0,
          "npcs": [
            "sewer.researcher1"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.demon",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            },
            {
              "monsterId": "monster.spider",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "sewer.hunter",
          "name": "Sewer Hunter",
          "kind": "underground",
          "services": [
            "combat",
            "hunting"
          ],
          "features": [
            "Snakes"
          ],
          "bedCount": 0,
          "npcs": [
            "sewer.hunter_npc"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.snake",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "sewer.rats",
          "name": "Sewer Rats",
          "kind": "underground",
          "services": [
            "combat"
          ],
          "features": [
            "Rats",
            "Giant Rat"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.rat",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            },
            {
              "monsterId": "monster.giant_rat",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "sewer.gold_ore",
          "name": "Sewer Gold Ore",
          "kind": "underground",
          "services": [
            "mining",
            "quest",
            "combat"
          ],
          "features": [
            "Gold Ore",
            "pipe with Sewer Doll",
            "2 aggressive Goblins"
          ],
          "bedCount": 0,
          "npcs": [
            "sewer.scared_researcher"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": "Gold Ore",
              "nodeType": "ore",
              "authority": "derived",
              "skill": "Mining",
              "evidenceFeature": "Gold Ore"
            }
          ],
          "monsterRefs": [
            {
              "monsterId": "monster.goblin",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": [
            {
              "questId": "quest.sewer_doll",
              "step": 2,
              "authority": "derived",
              "confidence": "high"
            }
          ]
        },
        {
          "id": "sewer.goblins",
          "name": "Sewer Goblins",
          "kind": "underground",
          "services": [
            "combat"
          ],
          "features": [
            "4 aggressive Goblins"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.goblin",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "sewer.giant_spiders",
          "name": "Sewer Giant Spiders",
          "kind": "underground",
          "services": [
            "combat"
          ],
          "features": [
            "Giant Spiders",
            "Silkfang boss hole"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [
            {
              "to": "sewer.silkfang",
              "method": "walk",
              "direction": "south"
            }
          ],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.silkfang",
              "relation": "access_point",
              "authority": "derived",
              "confidence": "high"
            },
            {
              "monsterId": "monster.giant_spider",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "sewer.silkfang",
          "name": "Silkfang Boss",
          "kind": "boss_room",
          "services": [
            "boss"
          ],
          "features": [
            "Silkfang",
            "Baby Silkfang"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.silkfang",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            },
            {
              "monsterId": "monster.baby_silkfang",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": [
            {
              "questId": "quest.drain_key",
              "step": 4,
              "authority": "derived",
              "confidence": "high"
            }
          ]
        },
        {
          "id": "sewer.eels",
          "name": "Sewer Eels",
          "kind": "underground",
          "services": [
            "fishing",
            "talk"
          ],
          "features": [
            "Eel fishing",
            "possible Three-eyed Fish"
          ],
          "bedCount": 0,
          "npcs": [
            "sewer.researcher2"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": "Eel",
              "nodeType": "fishing_spot",
              "authority": "derived",
              "skill": "Fishing",
              "evidenceFeature": "Eel fishing"
            },
            {
              "resource": "Three-eyed Fish",
              "nodeType": "rare_fishing_output",
              "authority": "derived",
              "skill": "Fishing",
              "note": "Marked possible in the source-derived room feature.",
              "evidenceFeature": "possible Three-eyed Fish"
            }
          ],
          "monsterRefs": [],
          "questStepRefs": []
        }
      ],
      "npcs": [
        {
          "id": "sewer.researcher1",
          "name": "Researcher 1",
          "roomId": "sewer.entrance",
          "functions": [
            "talk"
          ]
        },
        {
          "id": "sewer.hunter_npc",
          "name": "Hunter",
          "roomId": "sewer.hunter",
          "functions": [
            "hunting"
          ]
        },
        {
          "id": "sewer.scared_researcher",
          "name": "Scared Researcher",
          "roomId": "sewer.gold_ore",
          "functions": [
            "talk"
          ]
        },
        {
          "id": "sewer.researcher2",
          "name": "Researcher 2",
          "roomId": "sewer.eels",
          "functions": [
            "talk"
          ]
        }
      ]
    },
    {
      "id": "area.omboko",
      "name": "Omboko",
      "type": "jungle",
      "requirements": [],
      "teleport": true,
      "source": "https://flatmmo.wiki/index.php/Omboko",
      "coverage": "detailed",
      "gettingThere": "Take Ned's boat from Everbrook while holding 25 Coins, or use the Worship teleport to Omboko Village.",
      "externalConnections": [
        {
          "area": "Everbrook",
          "fromRoom": "omboko.tuna_fishing",
          "method": "boat",
          "requirements": []
        },
        {
          "area": "Volcano",
          "fromRoom": "omboko.volcano_entrance",
          "method": "mine_wall",
          "requirements": [
            "Pickaxe"
          ]
        }
      ],
      "rooms": [
        {
          "id": "omboko.tuna_fishing",
          "name": "Tuna Fishing",
          "kind": "outdoor",
          "services": [
            "fishing",
            "travel"
          ],
          "features": [
            "Tuna fishing with Harpoon"
          ],
          "bedCount": 0,
          "npcs": [
            "omboko.dockmen"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": "Tuna",
              "nodeType": "fishing_spot",
              "authority": "derived",
              "skill": "Fishing",
              "tool": "Harpoon",
              "evidenceFeature": "Tuna fishing with Harpoon"
            }
          ],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "omboko.jungle_beetles",
          "name": "Jungle Beetles",
          "kind": "outdoor",
          "services": [
            "combat",
            "woodcutting",
            "hunting"
          ],
          "features": [
            "Beetles",
            "Bamboo"
          ],
          "bedCount": 0,
          "npcs": [
            "omboko.hunter"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": "Bamboo",
              "nodeType": "resource",
              "authority": "derived",
              "skill": "Woodcutting",
              "evidenceFeature": "Bamboo"
            }
          ],
          "monsterRefs": [
            {
              "monsterId": "monster.beetle",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "omboko.mini_thief",
          "name": "Jungle Mini Thief",
          "kind": "outdoor",
          "services": [
            "quest",
            "woodcutting",
            "gathering"
          ],
          "features": [
            "Bamboo",
            "Sugarcane"
          ],
          "bedCount": 0,
          "npcs": [
            "omboko.mini_thief_npc"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": "Bamboo",
              "nodeType": "resource",
              "authority": "derived",
              "skill": "Woodcutting",
              "evidenceFeature": "Bamboo"
            },
            {
              "resource": "Sugarcane",
              "nodeType": "ground_resource",
              "authority": "derived",
              "evidenceFeature": "Sugarcane"
            }
          ],
          "monsterRefs": [],
          "questStepRefs": [
            {
              "questId": "quest.thieves_hideout_2",
              "step": 1,
              "authority": "derived",
              "confidence": "high"
            },
            {
              "questId": "quest.thieves_hideout_2",
              "step": 5,
              "authority": "derived",
              "confidence": "high"
            }
          ]
        },
        {
          "id": "omboko.jungle_river",
          "name": "Jungle River",
          "kind": "outdoor",
          "services": [
            "combat",
            "woodcutting",
            "gathering"
          ],
          "features": [
            "Jungle Tribesman",
            "Gorilla",
            "Bamboo",
            "Sugarcane"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": "Bamboo",
              "nodeType": "resource",
              "authority": "derived",
              "skill": "Woodcutting",
              "evidenceFeature": "Bamboo"
            },
            {
              "resource": "Sugarcane",
              "nodeType": "ground_resource",
              "authority": "derived",
              "evidenceFeature": "Sugarcane"
            }
          ],
          "monsterRefs": [
            {
              "monsterId": "monster.gorilla",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "omboko.lion",
          "name": "Lion",
          "kind": "outdoor",
          "services": [
            "combat",
            "talk"
          ],
          "features": [
            "Caged Lion"
          ],
          "bedCount": 0,
          "npcs": [
            "omboko.lion_catcher"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "omboko.tigers",
          "name": "Jungle Tigers",
          "kind": "outdoor",
          "services": [
            "combat"
          ],
          "features": [
            "Aggressive Tigers"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.tiger",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": [
            {
              "questId": "quest.the_3_gemstones",
              "step": 4,
              "authority": "derived",
              "confidence": "high"
            }
          ]
        },
        {
          "id": "omboko.jungle_enchanting",
          "name": "Jungle Enchanting",
          "kind": "outdoor",
          "services": [
            "enchantment",
            "talk"
          ],
          "features": [
            "Grass Orb altar"
          ],
          "bedCount": 0,
          "npcs": [
            "omboko.dwarf_enchant"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "omboko.jungle_sign",
          "name": "Jungle Sign",
          "kind": "outdoor",
          "services": [],
          "features": [
            "Deep Jungle warning sign"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "omboko.jungle_puzzle",
          "name": "Jungle Puzzle",
          "kind": "puzzle",
          "services": [
            "puzzle"
          ],
          "features": [
            "Follow 3 embers from middle torch"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "omboko.entrance",
          "name": "Omboko Entrance",
          "kind": "outdoor",
          "services": [],
          "features": [
            "Tribesman"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "omboko.bondfire",
          "name": "Omboko Bondfire",
          "kind": "outdoor",
          "services": [
            "community_project"
          ],
          "features": [
            "Burn logs for Bondfire points"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "omboko.village",
          "name": "Omboko Village",
          "kind": "outdoor",
          "services": [
            "bank",
            "quest",
            "craft_service",
            "combat"
          ],
          "features": [
            "Gorilla",
            "Bank entrance",
            "Paper Maker"
          ],
          "bedCount": 0,
          "npcs": [
            "omboko.paper_maker"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.gorilla",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": [
            {
              "questId": "quest.healing_torches",
              "step": 2,
              "authority": "derived",
              "confidence": "high"
            },
            {
              "questId": "quest.healing_torches",
              "step": 3,
              "authority": "derived",
              "confidence": "high"
            }
          ]
        },
        {
          "id": "omboko.fire_spirit",
          "name": "Omboko Fire Spirit",
          "kind": "outdoor",
          "services": [
            "reward_exchange",
            "combat"
          ],
          "features": [
            "Gorillas"
          ],
          "bedCount": 0,
          "npcs": [
            "omboko.fire_spirit_npc"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.gorilla",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "omboko.bank",
          "name": "Omboko Bank",
          "kind": "interior",
          "services": [
            "bank",
            "healing_torch"
          ],
          "features": [
            "Bamboo Sacred Heart healing torch"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": [
            {
              "questId": "quest.healing_torches",
              "step": 5,
              "authority": "derived",
              "confidence": "medium"
            }
          ]
        },
        {
          "id": "omboko.shop_outside",
          "name": "Omboko Shop (Outside)",
          "kind": "outdoor",
          "services": [
            "sleep",
            "woodcutting",
            "stealing",
            "combat"
          ],
          "features": [
            "Gorilla",
            "Trible Fellers",
            "Bamboo",
            "Machete-access stealing chest"
          ],
          "bedCount": 1,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "documented_present",
          "resourceNodes": [
            {
              "resource": "Bamboo",
              "nodeType": "resource",
              "authority": "derived",
              "skill": "Woodcutting",
              "evidenceFeature": "Bamboo"
            }
          ],
          "monsterRefs": [
            {
              "monsterId": "monster.gorilla",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            },
            {
              "monsterId": "monster.trible_feller",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "omboko.ents",
          "name": "Omboko Ents",
          "kind": "outdoor",
          "services": [
            "combat",
            "woodcutting"
          ],
          "features": [
            "Druid",
            "Ent",
            "Bamboo"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": "Bamboo",
              "nodeType": "resource",
              "authority": "derived",
              "skill": "Woodcutting",
              "evidenceFeature": "Bamboo"
            }
          ],
          "monsterRefs": [
            {
              "monsterId": "monster.druid",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            },
            {
              "monsterId": "monster.ent",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "omboko.sick_ent",
          "name": "Sick Ent / Giant Ent",
          "kind": "outdoor",
          "services": [
            "quest"
          ],
          "features": [
            "Healing Torches quest start"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": [
            {
              "questId": "quest.healing_torches",
              "step": 1,
              "authority": "derived",
              "confidence": "high"
            }
          ]
        },
        {
          "id": "omboko.shop_inside",
          "name": "Omboko Shop (Inside)",
          "kind": "interior",
          "services": [
            "shop",
            "combat"
          ],
          "features": [
            "2 Shopkeepers",
            "Gorilla"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.gorilla",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "omboko.cemetery",
          "name": "Omboko Cemetery",
          "kind": "outdoor",
          "services": [
            "worship_refill",
            "woodcutting"
          ],
          "features": [
            "Haunted Tree"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": "Haunted Tree",
              "nodeType": "tree",
              "authority": "derived",
              "skill": "Woodcutting",
              "evidenceFeature": "Haunted Tree"
            }
          ],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "omboko.cemetery_wall",
          "name": "Cemetery Wall",
          "kind": "outdoor",
          "services": [],
          "features": [
            "Deep-jungle access gate"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [
            "Machete",
            "Woodcutting 80"
          ],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "omboko.thorn_enchanting",
          "name": "Thorn Enchanting",
          "kind": "outdoor",
          "services": [
            "enchantment",
            "bundle"
          ],
          "features": [
            "Thorn Leaf Orb altar or Jungle Bundle state"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [
            "Machete",
            "Woodcutting 80",
            "Jungle Bundle for altar availability"
          ],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "omboko.cemetery_shaman",
          "name": "Cemetery Shaman",
          "kind": "outdoor",
          "services": [
            "combat"
          ],
          "features": [
            "Shaman"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.shamen",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "omboko.piranhas",
          "name": "Omboko Piranhas",
          "kind": "outdoor",
          "services": [
            "farming",
            "fishing"
          ],
          "features": [
            "Farming plot",
            "Piranha fishing"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": null,
              "nodeType": "farming_plot",
              "authority": "derived",
              "skill": "Farming",
              "evidenceFeature": "Farming plot"
            },
            {
              "resource": "Piranha",
              "nodeType": "fishing_spot",
              "authority": "derived",
              "skill": "Fishing",
              "evidenceFeature": "Piranha fishing"
            }
          ],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "omboko.volcano_entrance",
          "name": "Volcano Entrance / Well",
          "kind": "transition",
          "services": [
            "travel"
          ],
          "features": [
            "Rock wall to Volcano",
            "well to dungeon"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [
            {
              "to": "volcano.entrance",
              "method": "mine_wall",
              "requirements": [
                "Pickaxe"
              ]
            },
            {
              "to": "omboko.dungeon",
              "method": "climb_down_well"
            }
          ],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "omboko.dungeon",
          "name": "The Dungeon",
          "kind": "underground",
          "services": [],
          "features": [
            "ladder out",
            "trapdoor deeper"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "omboko.dungeon_entrance",
          "name": "Dungeon Entrance",
          "kind": "underground",
          "services": [],
          "features": [],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "omboko.dungeon_bats",
          "name": "Dungeon Bats",
          "kind": "underground",
          "services": [
            "combat",
            "firemaking"
          ],
          "features": [
            "Bats",
            "lightable torch"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.bat",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "omboko.dungeon_anglerfish",
          "name": "Dungeon Anglerfish",
          "kind": "underground",
          "services": [
            "fishing"
          ],
          "features": [
            "Anglerfish fishing with Fishing Rod + Cave Bait"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": "Anglerfish",
              "nodeType": "fishing_spot",
              "authority": "derived",
              "skill": "Fishing",
              "tool": "Fishing Rod",
              "bait": "Cave Bait",
              "evidenceFeature": "Anglerfish fishing with Fishing Rod + Cave Bait"
            }
          ],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "omboko.dungeon_boss_entrance",
          "name": "Dungeon Bat Boss Entrance",
          "kind": "underground",
          "services": [
            "boss_access"
          ],
          "features": [
            "Noctyrix entrance",
            "torch"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.noctyrix",
              "relation": "access_point",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "omboko.dungeon_cave_beetles",
          "name": "Dungeon Cave Beetles",
          "kind": "underground",
          "services": [
            "combat"
          ],
          "features": [
            "Cave Beetles",
            "Cave Bait drops"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.cave_beetle",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "omboko.dungeon_four_torches",
          "name": "Dungeon 4 Torches",
          "kind": "underground",
          "services": [
            "firemaking",
            "stealing"
          ],
          "features": [
            "4 lightable torches",
            "dig center for silver chest"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        }
      ],
      "npcs": [
        {
          "id": "omboko.dockmen",
          "name": "Dockmen",
          "roomId": "omboko.tuna_fishing",
          "functions": [
            "travel"
          ],
          "details": "Travel back to Everbrook."
        },
        {
          "id": "omboko.hunter",
          "name": "Hunter",
          "roomId": "omboko.jungle_beetles",
          "functions": [
            "hunting"
          ]
        },
        {
          "id": "omboko.mini_thief_npc",
          "name": "Mini Thief",
          "roomId": "omboko.mini_thief",
          "functions": [
            "quest"
          ]
        },
        {
          "id": "omboko.lion_catcher",
          "name": "Lion Catcher",
          "roomId": "omboko.lion",
          "functions": [
            "talk"
          ]
        },
        {
          "id": "omboko.dwarf_enchant",
          "name": "Dwarf",
          "roomId": "omboko.jungle_enchanting",
          "functions": [
            "talk"
          ]
        },
        {
          "id": "omboko.paper_maker",
          "name": "Paper Maker",
          "roomId": "omboko.village",
          "functions": [
            "craft_service"
          ],
          "details": "Makes Paper from 100 Bamboo Strips and 1,000 Coins."
        },
        {
          "id": "omboko.fire_spirit_npc",
          "name": "Fire Spirit",
          "roomId": "omboko.fire_spirit",
          "functions": [
            "reward_exchange"
          ],
          "details": "Trades Bondfire points for rewards."
        }
      ]
    },
    {
      "id": "area.pirate_isle",
      "name": "Pirate Isle",
      "type": "pirate_island_ship",
      "requirements": [
        "Saving Marin progression / repaired access route"
      ],
      "teleport": false,
      "source": "https://flatmmo.wiki/index.php/Pirate_Isle",
      "coverage": "detailed",
      "gettingThere": "After Saving Marin, use the quicksand/cracked-rock route; Dock Haven swimming is part of the initial quest route.",
      "externalConnections": [
        {
          "area": "Desert",
          "fromRoom": "pirate_isle.ship_mast",
          "method": "captain",
          "requirements": []
        },
        {
          "area": "Beach",
          "fromRoom": "pirate_isle.quicksand",
          "method": "quicksand_route",
          "requirements": []
        },
        {
          "area": "Dock Haven",
          "fromRoom": "pirate_isle.beach",
          "method": "swim",
          "requirements": [
            "Relevant quest/access progression"
          ]
        }
      ],
      "rooms": [
        {
          "id": "pirate_isle.beach",
          "name": "Pirate Beach",
          "kind": "outdoor",
          "services": [
            "combat",
            "gathering"
          ],
          "features": [
            "Infinite Glass",
            "2 Pirates",
            "Crab",
            "Worship Points drained to 0 on arrival"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": "Glass",
              "nodeType": "ground_resource",
              "authority": "derived",
              "evidenceFeature": "Infinite Glass"
            }
          ],
          "monsterRefs": [
            {
              "monsterId": "monster.pirate",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            },
            {
              "monsterId": "monster.crab",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": [
            {
              "questId": "quest.saving_marin",
              "step": 4,
              "authority": "derived",
              "confidence": "partial"
            }
          ]
        },
        {
          "id": "pirate_isle.ship",
          "name": "Pirate Ship",
          "kind": "outdoor",
          "services": [
            "travel",
            "construction"
          ],
          "features": [
            "Quicksand entry",
            "bridge to ship"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [
            "Bridge can be built with 100 Mangrove Planks and 500 Nails"
          ],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "pirate_isle.ship_top",
          "name": "Pirate Ship (Top)",
          "kind": "outdoor",
          "services": [
            "shop",
            "enchantment",
            "talk"
          ],
          "features": [
            "Damage Orb 2 shrine"
          ],
          "bedCount": 0,
          "npcs": [
            "pirate_isle.donny",
            "pirate_isle.retired_pirate"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": [
            {
              "questId": "quest.saving_marin",
              "step": 9,
              "authority": "derived",
              "confidence": "high"
            }
          ]
        },
        {
          "id": "pirate_isle.ship_mast",
          "name": "Pirate Ship (Mast)",
          "kind": "outdoor",
          "services": [
            "combat",
            "travel"
          ],
          "features": [
            "Upper Pirates"
          ],
          "bedCount": 0,
          "npcs": [
            "pirate_isle.captain"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.upper_pirate",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "pirate_isle.ship_inside",
          "name": "Pirate Ship (Inside)",
          "kind": "interior",
          "services": [
            "combat",
            "chest",
            "forging"
          ],
          "features": [
            "2 Pirates",
            "kill-gated chest",
            "Anvil"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.pirate",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "pirate_isle.quicksand",
          "name": "Quicksand",
          "kind": "subarea",
          "services": [
            "quest",
            "travel"
          ],
          "features": [
            "Marin",
            "ladder"
          ],
          "bedCount": 0,
          "npcs": [
            "pirate_isle.marin"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": [
            {
              "questId": "quest.saving_marin",
              "step": 2,
              "authority": "derived",
              "confidence": "high"
            },
            {
              "questId": "quest.saving_marin",
              "step": 8,
              "authority": "derived",
              "confidence": "medium"
            }
          ]
        }
      ],
      "npcs": [
        {
          "id": "pirate_isle.retired_pirate",
          "name": "Retired Pirate",
          "roomId": "pirate_isle.ship_top",
          "functions": [
            "talk",
            "quest"
          ]
        },
        {
          "id": "pirate_isle.donny",
          "name": "Donny",
          "roomId": "pirate_isle.ship_top",
          "functions": [
            "shop"
          ],
          "details": "Sells fishing cages and scimitars."
        },
        {
          "id": "pirate_isle.captain",
          "name": "Captain",
          "roomId": "pirate_isle.ship_mast",
          "functions": [
            "travel"
          ],
          "details": "Takes players to the Desert."
        },
        {
          "id": "pirate_isle.marin",
          "name": "Marin",
          "roomId": "pirate_isle.quicksand",
          "functions": [
            "quest"
          ]
        }
      ]
    },
    {
      "id": "area.hell",
      "name": "Hell",
      "type": "hellish_area",
      "requirements": [
        "Bury a Demon Bone in a cemetery or dig with a Hell Shovel from a cemetery"
      ],
      "teleport": false,
      "source": "https://flatmmo.wiki/index.php/Hell",
      "coverage": "detailed",
      "gettingThere": "Enter from a cemetery by burying a Demon Bone or using a Hell Shovel.",
      "externalConnections": [],
      "rooms": [
        {
          "id": "hell.layer1",
          "name": "Layer 1 / Starting Area",
          "kind": "underground",
          "services": [
            "fishing",
            "enchantment",
            "combat"
          ],
          "features": [
            "2 Flufflares",
            "Fire Orb shrine",
            "Lava Eel fishing"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": "Lava Eel",
              "nodeType": "fishing_spot",
              "authority": "derived",
              "skill": "Fishing",
              "evidenceFeature": "Lava Eel fishing"
            }
          ],
          "monsterRefs": [
            {
              "monsterId": "monster.flufflare",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "hell.gem_converter",
          "name": "Gem Converter",
          "kind": "underground",
          "services": [
            "mining",
            "combat",
            "conversion"
          ],
          "features": [
            "Promethium Ore",
            "Titanium Ore",
            "Lava Rockys",
            "Gem converter"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": "Promethium Ore",
              "nodeType": "ore",
              "authority": "derived",
              "skill": "Mining",
              "evidenceFeature": "Promethium Ore"
            },
            {
              "resource": "Titanium Ore",
              "nodeType": "ore",
              "authority": "derived",
              "skill": "Mining",
              "evidenceFeature": "Titanium Ore"
            }
          ],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "hell.layer2",
          "name": "Layer 2 / Bone Room",
          "kind": "underground",
          "services": [
            "gathering"
          ],
          "features": [
            "3 respawning Bones"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": "Bones",
              "nodeType": "ground_resource",
              "authority": "derived",
              "evidenceFeature": "3 respawning Bones"
            }
          ],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "hell.layer2_2",
          "name": "Layer 2.2 / Hell Goblins",
          "kind": "underground",
          "services": [
            "combat"
          ],
          "features": [
            "Aggressive Hell Goblins",
            "Stone Boots drop chance"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.hell_goblin",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "hell.layer3",
          "name": "Layer 3",
          "kind": "underground",
          "services": [
            "digging",
            "boss_access"
          ],
          "features": [
            "Hell Shovel",
            "passive heat damage",
            "Hell Boss access"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [
            "Stone Boots prevent periodic damage here"
          ],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": "Hell Shovel",
              "nodeType": "ground_item",
              "authority": "derived",
              "evidenceFeature": "Hell Shovel"
            }
          ],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "hell.boss",
          "name": "Hell Boss",
          "kind": "boss_room",
          "services": [
            "boss"
          ],
          "features": [],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [
            "15,000 Coins in bank"
          ],
          "links": [],
          "notes": [
            "Dying in the encounter loses the 15,000 Coins."
          ],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "hell.charcoal_wall",
          "name": "Layer 3.1 / Charcoal Wall",
          "kind": "underground",
          "services": [
            "mining",
            "shop"
          ],
          "features": [
            "Charcoal wall",
            "Dwarf sells Stone Boots"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [
            "Mining 50",
            "2,000 Coins per Charcoal"
          ],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": "Charcoal",
              "nodeType": "mining_wall",
              "authority": "derived",
              "skill": "Mining",
              "level": 50,
              "note": "Room access records Mining 50; room feature records the Charcoal wall.",
              "evidenceFeature": "Charcoal wall"
            }
          ],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "hell.layer4",
          "name": "Layer 4",
          "kind": "underground",
          "services": [
            "combat"
          ],
          "features": [
            "Aggressive Demons"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "hell.layer4_1",
          "name": "Layer 4.1",
          "kind": "underground",
          "services": [
            "combat"
          ],
          "features": [
            "Aggressive Hell Slimes"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "hell.layer5",
          "name": "Layer 5",
          "kind": "underground",
          "services": [
            "combat"
          ],
          "features": [
            "Aggressive Black Demons"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [
            "Worship 60"
          ],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "hell.layer5_1",
          "name": "Layer 5.1",
          "kind": "underground",
          "services": [
            "combat"
          ],
          "features": [
            "Ancient Monks"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [
            "Worship 60"
          ],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "hell.layer6",
          "name": "Layer 6",
          "kind": "underground",
          "services": [],
          "features": [],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [
            "Worship 75"
          ],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "hell.layer6_1",
          "name": "Layer 6.1",
          "kind": "underground",
          "services": [
            "combat"
          ],
          "features": [
            "Hell Monks",
            "Dragon Mace drop"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [
            "Worship 75"
          ],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        }
      ],
      "npcs": [
        {
          "id": "hell.charcoal_dwarf",
          "name": "Charcoal Wall Dwarf",
          "roomId": "hell.charcoal_wall",
          "functions": [
            "shop",
            "talk"
          ],
          "details": "Sells Stone Boots for 100,000 Coins."
        }
      ]
    },
    {
      "id": "area.beach",
      "name": "Beach",
      "type": "sandy_area",
      "requirements": [
        "Repair bridge from Everbrook with 100 Maple Planks and 500 Iron Nails"
      ],
      "teleport": false,
      "source": "https://flatmmo.wiki/index.php/Beach",
      "coverage": "detailed",
      "gettingThere": "Repair and cross the bridge south of the Everbrook Willow Trees.",
      "externalConnections": [
        {
          "area": "Everbrook",
          "fromRoom": "beach.bridge",
          "method": "bridge",
          "requirements": []
        },
        {
          "area": "Dock Haven",
          "fromRoom": "beach.boat",
          "method": "boat",
          "requirements": [
            "100 Coins"
          ]
        },
        {
          "area": "Thieves Hideout",
          "fromRoom": "beach.quicksand_thief_entrance",
          "method": "ladder",
          "requirements": []
        }
      ],
      "rooms": [
        {
          "id": "beach.bridge",
          "name": "Bridge",
          "kind": "transition",
          "services": [
            "construction",
            "travel"
          ],
          "features": [
            "Broken/repairable bridge"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [
            "100 Maple Planks",
            "500 Iron Nails"
          ],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "beach.greenhouse",
          "name": "Greenhouse",
          "kind": "outdoor",
          "services": [
            "bundle"
          ],
          "features": [
            "Farmer Bundle / Greenhouse unlock"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "beach.greenhouse_inside",
          "name": "Greenhouse Inside",
          "kind": "interior",
          "services": [
            "farming",
            "bank",
            "contracts"
          ],
          "features": [
            "4 Mushroom Plots",
            "ladder to basement"
          ],
          "bedCount": 0,
          "npcs": [
            "beach.bob_farmer"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": null,
              "nodeType": "farming_plot",
              "authority": "derived",
              "skill": "Farming",
              "note": "Four separate Mushroom plots are documented.",
              "evidenceFeature": "4 Mushroom Plots"
            }
          ],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "beach.greenhouse_basement",
          "name": "Greenhouse Basement",
          "kind": "underground",
          "services": [
            "combat"
          ],
          "features": [
            "4 Mushrooms",
            "Farming/Brewing drops"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [
            "Show Moss to Bob the Farmer"
          ],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "beach.sandpile",
          "name": "Beach Sandpile",
          "kind": "outdoor",
          "services": [
            "digging",
            "talk"
          ],
          "features": [
            "Sandpiles"
          ],
          "bedCount": 0,
          "npcs": [
            "beach.julie",
            "beach.teddy",
            "beach.supervisor"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": "Sand",
              "nodeType": "dig_node",
              "authority": "derived",
              "evidenceFeature": "Sandpiles",
              "activity": "digging"
            }
          ],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "beach.quicksand",
          "name": "Beach Quicksand",
          "kind": "outdoor",
          "services": [
            "combat"
          ],
          "features": [
            "Crab",
            "quicksand entrance"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.crab",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "beach.boat",
          "name": "Beach Boat",
          "kind": "outdoor",
          "services": [
            "combat",
            "travel",
            "woodcutting"
          ],
          "features": [
            "Crocodiles",
            "Mangrove Tree"
          ],
          "bedCount": 0,
          "npcs": [
            "beach.dockman",
            "beach.dwarf"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": "Mangrove Tree",
              "nodeType": "tree",
              "authority": "derived",
              "skill": "Woodcutting",
              "evidenceFeature": "Mangrove Tree"
            }
          ],
          "monsterRefs": [
            {
              "monsterId": "monster.crocodile",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": [
            {
              "questId": "quest.the_3_gemstones",
              "step": 6,
              "authority": "derived",
              "confidence": "high"
            }
          ]
        },
        {
          "id": "beach.quicksand_cave",
          "name": "Quicksand Cave",
          "kind": "underground",
          "services": [
            "combat"
          ],
          "features": [
            "Crabs"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.crab",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "beach.cracked_rock",
          "name": "Cracked Rock",
          "kind": "underground",
          "services": [
            "quest"
          ],
          "features": [
            "Saving Marin cracked-rock obstacle"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "beach.quicksand_crabs",
          "name": "Quicksand Crabs",
          "kind": "underground",
          "services": [
            "combat"
          ],
          "features": [
            "Crabs"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.crab",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "beach.quicksand_giant_spiders",
          "name": "Quicksand Giant Spiders",
          "kind": "underground",
          "services": [
            "combat",
            "mining"
          ],
          "features": [
            "Giant Spiders",
            "Gold Ore",
            "Silver Ore",
            "Beach exit route"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": "Gold Ore",
              "nodeType": "ore",
              "authority": "derived",
              "skill": "Mining",
              "evidenceFeature": "Gold Ore"
            },
            {
              "resource": "Silver Ore",
              "nodeType": "ore",
              "authority": "derived",
              "skill": "Mining",
              "evidenceFeature": "Silver Ore"
            }
          ],
          "monsterRefs": [
            {
              "monsterId": "monster.giant_spider",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "beach.quicksand_more_ores",
          "name": "Quicksand More Ores",
          "kind": "underground",
          "services": [
            "mining",
            "fishing"
          ],
          "features": [
            "Giant Copper",
            "Giant Iron",
            "Lobster Cage"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": "Copper Ore",
              "nodeType": "giant_ore",
              "authority": "derived",
              "skill": "Mining",
              "evidenceFeature": "Giant Copper"
            },
            {
              "resource": "Iron Ore",
              "nodeType": "giant_ore",
              "authority": "derived",
              "skill": "Mining",
              "evidenceFeature": "Giant Iron"
            },
            {
              "resource": null,
              "nodeType": "fishing_spot",
              "authority": "derived",
              "skill": "Fishing",
              "tool": "Lobster Cage",
              "evidenceFeature": "Lobster Cage"
            }
          ],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "beach.quicksand_thief_entrance",
          "name": "Quicksand Thief Entrance",
          "kind": "underground",
          "services": [
            "combat",
            "travel"
          ],
          "features": [
            "Thief",
            "key for Hideout locked door"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [
            {
              "to": "thieves_hideout.entrance",
              "method": "ladder"
            }
          ],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.thief",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        }
      ],
      "npcs": [
        {
          "id": "beach.bob_farmer",
          "name": "Bob the Farmer",
          "roomId": "beach.greenhouse_inside",
          "functions": [
            "farming_contracts",
            "talk"
          ]
        },
        {
          "id": "beach.julie",
          "name": "Julie",
          "roomId": "beach.sandpile",
          "functions": [
            "talk"
          ]
        },
        {
          "id": "beach.teddy",
          "name": "Teddy",
          "roomId": "beach.sandpile",
          "functions": [
            "talk"
          ]
        },
        {
          "id": "beach.supervisor",
          "name": "Supervisor",
          "roomId": "beach.sandpile",
          "functions": [
            "talk"
          ]
        },
        {
          "id": "beach.dockman",
          "name": "Dockman",
          "roomId": "beach.boat",
          "functions": [
            "travel"
          ],
          "details": "Boat to Dock Haven for 100 Coins."
        },
        {
          "id": "beach.dwarf",
          "name": "Dwarf",
          "roomId": "beach.boat",
          "functions": [
            "talk"
          ]
        }
      ]
    },
    {
      "id": "area.volcano",
      "name": "Volcano",
      "type": "hot_area",
      "requirements": [
        "Pickaxe to break entrance wall"
      ],
      "teleport": false,
      "source": "https://flatmmo.wiki/index.php/Volcano",
      "coverage": "detailed",
      "gettingThere": "From Omboko Piranhas/Farm, go north to the Volcano Entrance and mine the rock wall.",
      "externalConnections": [
        {
          "area": "Omboko",
          "fromRoom": "volcano.entrance",
          "method": "exit_south",
          "requirements": []
        },
        {
          "area": "Omboko Dungeon",
          "fromRoom": "volcano.entrance",
          "method": "well",
          "requirements": []
        }
      ],
      "rooms": [
        {
          "id": "volcano.entrance",
          "name": "Volcano Entrance",
          "kind": "transition",
          "services": [
            "travel",
            "talk"
          ],
          "features": [
            "Rock wall gate"
          ],
          "bedCount": 0,
          "npcs": [
            "volcano.dwarf",
            "volcano.tribesman"
          ],
          "accessRequirements": [
            "Pickaxe to mine the wall"
          ],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "volcano.lizards",
          "name": "Volcanic Lizards",
          "kind": "outdoor",
          "services": [
            "combat"
          ],
          "features": [
            "Volcanic Lizards",
            "burn damage begins"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [
            "Stone Boots prevent standard burn damage"
          ],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.lizard",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "volcano.graphite",
          "name": "Graphite Room",
          "kind": "outdoor",
          "services": [
            "mining",
            "combat"
          ],
          "features": [
            "Graphite",
            "Giant Silver Ore",
            "Volcanic Rocky"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [
            "Mining 70 for Graphite"
          ],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": "Graphite",
              "nodeType": "resource",
              "authority": "derived",
              "skill": "Mining",
              "level": 70,
              "note": "Room access records Mining 70 for Graphite.",
              "evidenceFeature": "Graphite"
            },
            {
              "resource": "Silver Ore",
              "nodeType": "giant_ore",
              "authority": "derived",
              "skill": "Mining",
              "evidenceFeature": "Giant Silver Ore"
            }
          ],
          "monsterRefs": [
            {
              "monsterId": "monster.volcanic_rocky",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "volcano.ancient",
          "name": "Ancient / Lava Bucket Area",
          "kind": "outdoor",
          "services": [
            "forging",
            "fishing"
          ],
          "features": [
            "Fill Graphite Bucket for 10,000 Coins",
            "Lava Eel fishing",
            "ladder down"
          ],
          "bedCount": 0,
          "npcs": [
            "volcano.lava_ali"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": "Lava Eel",
              "nodeType": "fishing_spot",
              "authority": "derived",
              "skill": "Fishing",
              "evidenceFeature": "Lava Eel fishing"
            }
          ],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "volcano.bridge",
          "name": "Bridge",
          "kind": "outdoor",
          "services": [
            "quest",
            "gathering"
          ],
          "features": [
            "Nethergrass",
            "Volcanic Rocky"
          ],
          "bedCount": 0,
          "npcs": [
            "volcano.volcanic_rocky"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": "Nethergrass",
              "nodeType": "ground_resource",
              "authority": "derived",
              "evidenceFeature": "Nethergrass"
            }
          ],
          "monsterRefs": [
            {
              "monsterId": "monster.volcanic_rocky",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": [
            {
              "questId": "quest.volcano_bridge",
              "step": 1,
              "authority": "derived",
              "confidence": "high"
            },
            {
              "questId": "quest.volcano_bridge",
              "step": 2,
              "authority": "derived",
              "confidence": "high"
            },
            {
              "questId": "quest.volcano_bridge",
              "step": 3,
              "authority": "derived",
              "confidence": "high"
            },
            {
              "questId": "quest.volcano_bridge",
              "step": 5,
              "authority": "derived",
              "confidence": "medium"
            },
            {
              "questId": "quest.volcano_bridge",
              "step": 6,
              "authority": "derived",
              "confidence": "medium"
            }
          ]
        },
        {
          "id": "volcano.lava_altar",
          "name": "Lava Enchantment Altar",
          "kind": "deep_area",
          "services": [
            "enchantment",
            "combat",
            "fishing",
            "mining",
            "bundle"
          ],
          "features": [
            "Lava Orb altar",
            "Flamesters",
            "Lava Eels",
            "Hot Berries",
            "Graphite",
            "Volcano Bundle"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [
            "Stone Boots do not prevent this room's damage; Frozen Berries are documented as the protection method."
          ],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": "Lava Eel",
              "nodeType": "fishing_spot",
              "authority": "derived",
              "skill": "Fishing",
              "evidenceFeature": "Lava Eels"
            },
            {
              "resource": "Hot Berries",
              "nodeType": "ground_resource",
              "authority": "derived",
              "evidenceFeature": "Hot Berries"
            },
            {
              "resource": "Graphite",
              "nodeType": "resource",
              "authority": "derived",
              "skill": "Mining",
              "evidenceFeature": "Graphite"
            }
          ],
          "monsterRefs": [
            {
              "monsterId": "monster.flamester",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        }
      ],
      "npcs": [
        {
          "id": "volcano.dwarf",
          "name": "Dwarf",
          "roomId": "volcano.entrance",
          "functions": [
            "talk"
          ]
        },
        {
          "id": "volcano.tribesman",
          "name": "Tribesman",
          "roomId": "volcano.entrance",
          "functions": [
            "talk"
          ]
        },
        {
          "id": "volcano.volcanic_rocky",
          "name": "Volcanic Rocky",
          "roomId": "volcano.bridge",
          "functions": [
            "quest",
            "talk"
          ]
        },
        {
          "id": "volcano.lava_ali",
          "name": "Lava Ali",
          "roomId": "volcano.ancient",
          "functions": [
            "talk"
          ]
        }
      ]
    },
    {
      "id": "area.frostvale",
      "name": "Frostvale",
      "type": "snowy_region",
      "requirements": [
        "Complete Desert Temple for train access/progression",
        "Cold-resistant armour strongly recommended"
      ],
      "teleport": true,
      "source": "https://flatmmo.wiki/index.php/Frostvale",
      "coverage": "detailed",
      "gettingThere": "Take the train from the Desert, then head north; Worship teleport is also documented.",
      "externalConnections": [
        {
          "area": "Desert",
          "fromRoom": "frostvale.train_station",
          "method": "train",
          "requirements": []
        }
      ],
      "rooms": [
        {
          "id": "frostvale.center",
          "name": "Frostvale Center",
          "kind": "outdoor",
          "services": [
            "travel",
            "shop",
            "bank"
          ],
          "features": [
            "Main hub",
            "Highlander"
          ],
          "bedCount": 0,
          "npcs": [
            "frostvale.highlander"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "frostvale.bank",
          "name": "Frostvale Bank",
          "kind": "interior",
          "services": [
            "bank",
            "healing_torch"
          ],
          "features": [
            "Pine Sacred Heart healing torch",
            "cold-safe room"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "frostvale.general_store",
          "name": "Frostvale General Store",
          "kind": "interior",
          "services": [
            "shop"
          ],
          "features": [
            "Bear Fur",
            "Wolf Fur",
            "logs",
            "buckets",
            "cold-safe room"
          ],
          "bedCount": 0,
          "npcs": [
            "frostvale.storekeeper"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "frostvale.northern_entrance",
          "name": "Frostvale Northern Entrance",
          "kind": "interior",
          "services": [
            "sleep",
            "travel"
          ],
          "features": [
            "cold-safe room",
            "locked Mount Frostvale door"
          ],
          "bedCount": 1,
          "npcs": [],
          "accessRequirements": [
            "Complete Mayor quest to unlock Mount Frostvale door"
          ],
          "links": [],
          "notes": [],
          "bedStatus": "documented_present",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": [
            {
              "questId": "quest.mount_frostvale",
              "step": 6,
              "authority": "derived",
              "confidence": "high"
            }
          ]
        },
        {
          "id": "frostvale.mount",
          "name": "Mount Frostvale",
          "kind": "outdoor",
          "services": [
            "enchantment",
            "stealing",
            "woodcutting"
          ],
          "features": [
            "Ice Orb altar",
            "level-69 stall",
            "Ice Ogre",
            "Snowy Pine Tree"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": "Snowy Pine Tree",
              "nodeType": "tree",
              "authority": "derived",
              "skill": "Woodcutting",
              "evidenceFeature": "Snowy Pine Tree"
            }
          ],
          "monsterRefs": [
            {
              "monsterId": "monster.ice_ogre",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "frostvale.polar_bear_path",
          "name": "Polar Bear Path",
          "kind": "outdoor",
          "services": [
            "firemaking",
            "travel"
          ],
          "features": [
            "unlit fire",
            "Polar Bear Catcher",
            "cave entrance"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "frostvale.mount_sign",
          "name": "Mount Frostvale Sign",
          "kind": "outdoor",
          "services": [],
          "features": [
            "Mount Highlander",
            "warning to bring Hot Berries"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "frostvale.yeti_path",
          "name": "Yeti Path",
          "kind": "outdoor",
          "services": [
            "combat"
          ],
          "features": [
            "2 aggressive Yetis"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "frostvale.ladder",
          "name": "Mount Ladder",
          "kind": "outdoor",
          "services": [],
          "features": [
            "2 Pine Trees",
            "ladder"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "frostvale.down_ladder",
          "name": "Down the Ladder",
          "kind": "cave",
          "services": [
            "stealing"
          ],
          "features": [
            "Stealing chest",
            "cold-safe"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "frostvale.ice_golem_path",
          "name": "Ice Golem Path",
          "kind": "outdoor",
          "services": [
            "combat"
          ],
          "features": [
            "2 aggressive Ice Golems"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [
            "Kill 10 Ice Golems to continue"
          ],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "frostvale.mount_shop",
          "name": "Mount Frostvale Shop",
          "kind": "outdoor",
          "services": [
            "shop"
          ],
          "features": [
            "Freeze Badge and supplies"
          ],
          "bedCount": 0,
          "npcs": [
            "frostvale.mount_highlander"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "frostvale.northern_fields",
          "name": "Northern Fields",
          "kind": "outdoor",
          "services": [
            "combat",
            "woodcutting"
          ],
          "features": [
            "Pine Trees",
            "Ice Beetle",
            "Wolves",
            "Cave 1 entrance"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": "Pine Tree",
              "nodeType": "tree",
              "authority": "derived",
              "skill": "Woodcutting",
              "evidenceFeature": "Pine Trees"
            }
          ],
          "monsterRefs": [
            {
              "monsterId": "monster.ice_beetle",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            },
            {
              "monsterId": "monster.wolf",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "frostvale.train_station",
          "name": "Train Station",
          "kind": "transition",
          "services": [
            "travel"
          ],
          "features": [
            "cold-safe"
          ],
          "bedCount": 0,
          "npcs": [
            "frostvale.train_engineer"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "frostvale.cave1",
          "name": "Cave 1",
          "kind": "cave",
          "services": [
            "combat",
            "stealing"
          ],
          "features": [
            "Iceflares",
            "level-66 Stealing chest"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.iceflare",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "frostvale.cave2",
          "name": "Cave 2",
          "kind": "cave",
          "services": [
            "combat",
            "stealing"
          ],
          "features": [
            "Ice Ogres",
            "level-70 Stealing chest",
            "route to Mayor's House"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.ice_ogre",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "frostvale.mayors_house",
          "name": "Mayor's House",
          "kind": "interior",
          "services": [
            "sleep",
            "quest"
          ],
          "features": [
            "Pine Log piles",
            "cold-safe"
          ],
          "bedCount": 1,
          "npcs": [
            "frostvale.mayor"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "documented_present",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": [
            {
              "questId": "quest.mount_frostvale",
              "step": 2,
              "authority": "derived",
              "confidence": "high"
            },
            {
              "questId": "quest.mount_frostvale",
              "step": 3,
              "authority": "derived",
              "confidence": "high"
            },
            {
              "questId": "quest.mount_frostvale",
              "step": 4,
              "authority": "derived",
              "confidence": "high"
            },
            {
              "questId": "quest.mount_frostvale",
              "step": 5,
              "authority": "derived",
              "confidence": "high"
            }
          ]
        },
        {
          "id": "frostvale.polar_bear_cave",
          "name": "Polar Bear Cave",
          "kind": "cave",
          "services": [
            "combat"
          ],
          "features": [
            "Caged Polar Bear",
            "cold-safe"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "frostvale.waterfall",
          "name": "Frostvale Waterfall",
          "kind": "outdoor",
          "services": [
            "fishing",
            "combat"
          ],
          "features": [
            "2 Ice Beetles",
            "Lobster Cage"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": null,
              "nodeType": "fishing_spot",
              "authority": "derived",
              "skill": "Fishing",
              "tool": "Lobster Cage",
              "evidenceFeature": "Lobster Cage"
            }
          ],
          "monsterRefs": [
            {
              "monsterId": "monster.ice_beetle",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        },
        {
          "id": "frostvale.river",
          "name": "Frostvale River",
          "kind": "outdoor",
          "services": [
            "fishing",
            "quest"
          ],
          "features": [
            "Arctic Cod fishing",
            "bridge",
            "route to Cave 2/Mayor"
          ],
          "bedCount": 0,
          "npcs": [
            "frostvale.frostboot"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": "Arctic Cod",
              "nodeType": "fishing_spot",
              "authority": "derived",
              "skill": "Fishing",
              "evidenceFeature": "Arctic Cod fishing"
            }
          ],
          "monsterRefs": [],
          "questStepRefs": [
            {
              "questId": "quest.mount_frostvale",
              "step": 1,
              "authority": "derived",
              "confidence": "high"
            },
            {
              "questId": "quest.mount_frostvale",
              "step": 6,
              "authority": "derived",
              "confidence": "high"
            }
          ]
        },
        {
          "id": "frostvale.cemetery",
          "name": "Frostvale Cemetery",
          "kind": "outdoor",
          "services": [
            "worship_refill",
            "combat"
          ],
          "features": [
            "2 Ice Ghosts",
            "Snowman Priest"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [
            {
              "monsterId": "monster.ice_ghost",
              "relation": "present",
              "authority": "derived",
              "confidence": "high"
            }
          ],
          "questStepRefs": []
        }
      ],
      "npcs": [
        {
          "id": "frostvale.highlander",
          "name": "Highlander",
          "roomId": "frostvale.center",
          "functions": [
            "talk"
          ]
        },
        {
          "id": "frostvale.storekeeper",
          "name": "General Store Keeper",
          "roomId": "frostvale.general_store",
          "functions": [
            "shop"
          ]
        },
        {
          "id": "frostvale.mount_highlander",
          "name": "Mount Highlander",
          "roomId": "frostvale.mount_shop",
          "functions": [
            "shop"
          ]
        },
        {
          "id": "frostvale.train_engineer",
          "name": "Train Engineer",
          "roomId": "frostvale.train_station",
          "functions": [
            "travel"
          ],
          "details": "Returns players to the Desert."
        },
        {
          "id": "frostvale.mayor",
          "name": "Frostvale Mayor",
          "roomId": "frostvale.mayors_house",
          "functions": [
            "quest",
            "talk"
          ]
        },
        {
          "id": "frostvale.frostboot",
          "name": "FrostBoot",
          "roomId": "frostvale.river",
          "functions": [
            "quest"
          ]
        }
      ],
      "environment": {
        "hazard": "cold_damage",
        "mitigation": [
          "Full Bear Armour reduces cold damage to 5 per tick",
          "Full Wolf Fur Armour reduces cold damage to 0"
        ]
      }
    },
    {
      "id": "area.atlas",
      "name": "Atlas",
      "type": "underwater_area",
      "requirements": [
        "Oxygen Tank",
        "Unlock the Vortex route"
      ],
      "teleport": "Atlas Teleport Scroll",
      "source": "https://flatmmo.wiki/index.php/Atlas",
      "coverage": "detailed",
      "gettingThere": "Unlock the Dock Haven Vortex route by preparing Spicy Tuna and feeding the sharks; wear an Oxygen Tank.",
      "externalConnections": [
        {
          "area": "Dock Haven",
          "fromRoom": "atlas.vortex",
          "method": "vortex",
          "requirements": []
        }
      ],
      "rooms": [
        {
          "id": "atlas.vortex",
          "name": "Vortex",
          "kind": "transition",
          "services": [
            "travel"
          ],
          "features": [
            "Link between Dock Haven and Atlas"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "atlas.vortex_under",
          "name": "Vortex (Under)",
          "kind": "underwater",
          "services": [
            "mining",
            "stealing"
          ],
          "features": [
            "Clay rocks",
            "Seaweed",
            "Stealing chest"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": "Clay",
              "nodeType": "resource",
              "authority": "derived",
              "skill": "Mining",
              "evidenceFeature": "Clay rocks"
            },
            {
              "resource": "Seaweed",
              "nodeType": "ground_resource",
              "authority": "derived",
              "evidenceFeature": "Seaweed"
            }
          ],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "atlas.ocean_crabs",
          "name": "Ocean Crabs",
          "kind": "underwater",
          "services": [
            "combat",
            "gathering"
          ],
          "features": [
            "Ocean Crabs",
            "infinite Lobster Cage item",
            "Red Seaweed artifact interaction"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": "Lobster Cage",
              "nodeType": "ground_item",
              "authority": "derived",
              "evidenceFeature": "infinite Lobster Cage item"
            }
          ],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "atlas.agility_course",
          "name": "Tuna + Agility Course",
          "kind": "underwater",
          "services": [
            "agility"
          ],
          "features": [
            "Agility course start"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "atlas.shark_sardine",
          "name": "Shark and Sardine",
          "kind": "underwater",
          "services": [
            "combat"
          ],
          "features": [
            "Sardines",
            "Sharks"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "atlas.shark_minigame",
          "name": "Shark Attack Minigame",
          "kind": "underwater",
          "services": [
            "minigame",
            "travel"
          ],
          "features": [
            "Gate to Atlas Town"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [
            "Beat Shark Attack minigame once to proceed"
          ],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "atlas.entrance",
          "name": "Atlas Entrance",
          "kind": "underwater_town",
          "services": [
            "trade"
          ],
          "features": [
            "Water Page trade",
            "swim-through hole"
          ],
          "bedCount": 0,
          "npcs": [
            "atlas.page_mermaid"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "atlas.cook_shop",
          "name": "Atlas Cook Shop",
          "kind": "interior",
          "services": [
            "food",
            "quest"
          ],
          "features": [
            "Infinite Sardine Sushi",
            "Lobster Cage"
          ],
          "bedCount": 0,
          "npcs": [
            "atlas.cook"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "atlas.ali",
          "name": "Atlas Ali",
          "kind": "underwater_town",
          "services": [
            "shop"
          ],
          "features": [
            "Flippers for 500,000 Coins"
          ],
          "bedCount": 0,
          "npcs": [
            "atlas.ali_npc"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "atlas.seaweed",
          "name": "Atlas Seaweed",
          "kind": "underwater_town",
          "services": [
            "farming"
          ],
          "features": [
            "High Quality Seaweed"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [
            "Farming 75 for High Quality Seaweed"
          ],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": "High Quality Seaweed",
              "nodeType": "resource",
              "authority": "derived",
              "skill": "Farming",
              "level": 75,
              "note": "Room access records Farming 75.",
              "evidenceFeature": "High Quality Seaweed"
            }
          ],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "atlas.shop",
          "name": "Atlas Shop",
          "kind": "interior",
          "services": [
            "shop"
          ],
          "features": [],
          "bedCount": 0,
          "npcs": [
            "atlas.general_store"
          ],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "atlas.puzzle",
          "name": "Atlas Puzzle",
          "kind": "puzzle",
          "services": [
            "puzzle"
          ],
          "features": [
            "5 holes; first four must be entered in sequence"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "atlas.puzzle_rooms",
          "name": "Atlas Puzzle Rooms",
          "kind": "puzzle",
          "services": [
            "puzzle"
          ],
          "features": [
            "Required sequence 1 → 2 → 3 → 4"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "atlas.swordfish",
          "name": "Atlas Puzzle Swordfish",
          "kind": "underwater",
          "services": [
            "combat"
          ],
          "features": [
            "Caged Swordfish",
            "Spear recommended/required by source"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "atlas.clay",
          "name": "Atlas Clay",
          "kind": "underwater",
          "services": [
            "mining",
            "stealing",
            "combat"
          ],
          "features": [
            "Clay",
            "Stealing chest",
            "Atlas Guard"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [
            {
              "resource": "Clay",
              "nodeType": "resource",
              "authority": "derived",
              "skill": "Mining",
              "evidenceFeature": "Clay"
            }
          ],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "atlas.weapon_enchant",
          "name": "Atlas Weapon Enchant",
          "kind": "underwater",
          "services": [
            "enchantment",
            "combat",
            "travel"
          ],
          "features": [
            "Trident enchantment",
            "Electric Eels",
            "Crab Rave entrance",
            "Palace entrance"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "atlas.palace_entrance",
          "name": "Atlas Palace Entrance",
          "kind": "interior",
          "services": [
            "repair",
            "talk"
          ],
          "features": [
            "Titanium Prayer Statue",
            "Waitresses"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "atlas.palace_king",
          "name": "Atlas Palace King",
          "kind": "interior",
          "services": [],
          "features": [
            "King content marked in-development on source page"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [
            "Source page explicitly labels this room IN DEV."
          ],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        }
      ],
      "npcs": [
        {
          "id": "atlas.page_mermaid",
          "name": "Water Page Mermaid",
          "roomId": "atlas.entrance",
          "functions": [
            "trade"
          ],
          "details": "Trades a held page type for Water Pages."
        },
        {
          "id": "atlas.cook",
          "name": "Cook",
          "roomId": "atlas.cook_shop",
          "functions": [
            "talk",
            "food_related"
          ]
        },
        {
          "id": "atlas.ali_npc",
          "name": "Ali",
          "roomId": "atlas.ali",
          "functions": [
            "shop"
          ],
          "details": "Sells Flippers for 500,000 Coins."
        },
        {
          "id": "atlas.general_store",
          "name": "General Store",
          "roomId": "atlas.shop",
          "functions": [
            "shop"
          ],
          "details": "Fishing tools and raw fish."
        }
      ]
    },
    {
      "id": "area.desert",
      "name": "Desert",
      "type": "hot_region",
      "requirements": [
        "Water Buckets are documented as normally needed for heat survival"
      ],
      "teleport": true,
      "source": "https://flatmmo.wiki/index.php/Desert",
      "coverage": "partial",
      "gettingThere": "Take the Pirate Ship from Pirate Isle, or use the Worship teleport to Jafa Outpost.",
      "externalConnections": [
        {
          "area": "Pirate Isle",
          "fromRoom": "desert.jafa_outpost",
          "method": "pirate_ship_route",
          "requirements": []
        },
        {
          "area": "Frostvale",
          "fromRoom": "desert.train_connection",
          "method": "train",
          "requirements": [
            "Relevant Desert Temple progression"
          ]
        }
      ],
      "rooms": [
        {
          "id": "desert.jafa_outpost",
          "name": "Jafa Outpost",
          "kind": "town",
          "services": [
            "teleport_destination"
          ],
          "features": [
            "Documented Worship teleport destination"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        },
        {
          "id": "desert.train_connection",
          "name": "Desert Train Connection",
          "kind": "transition",
          "services": [
            "travel"
          ],
          "features": [
            "Train route to Frostvale"
          ],
          "bedCount": 0,
          "npcs": [],
          "accessRequirements": [],
          "links": [],
          "notes": [
            "Exact room naming/details are not normalized in this pass."
          ],
          "bedStatus": "not_documented",
          "resourceNodes": [],
          "monsterRefs": [],
          "questStepRefs": []
        }
      ],
      "npcs": [],
      "notes": [
        "Direct rendered Desert page was blocked by an interstitial during this pass, so internal-room coverage is intentionally partial."
      ]
    }
  ],
  "indexes": {
    "beds": [
      {
        "area": "Everbrook",
        "room": "Cow Farm",
        "roomId": "everbrook.cow_farm",
        "bedCount": 1
      },
      {
        "area": "Everbrook",
        "room": "Mayor's House",
        "roomId": "everbrook.mayors_house",
        "bedCount": 1
      },
      {
        "area": "Everbrook",
        "room": "Fisherman's Shop",
        "roomId": "everbrook.fishermans_shop",
        "bedCount": 1
      },
      {
        "area": "Everbrook",
        "room": "Inside Chef's House",
        "roomId": "everbrook.chefs_house_inside",
        "bedCount": 1
      },
      {
        "area": "Mystic Vale",
        "room": "Mystic Vale Mayor's House",
        "roomId": "mystic_vale.mayor_house",
        "bedCount": 1
      },
      {
        "area": "Thieves Hideout",
        "room": "Thieves Hideout",
        "roomId": "thieves_hideout.main_room",
        "bedCount": 4
      },
      {
        "area": "Omboko",
        "room": "Omboko Shop (Outside)",
        "roomId": "omboko.shop_outside",
        "bedCount": 1
      },
      {
        "area": "Frostvale",
        "room": "Frostvale Northern Entrance",
        "roomId": "frostvale.northern_entrance",
        "bedCount": 1
      },
      {
        "area": "Frostvale",
        "room": "Mayor's House",
        "roomId": "frostvale.mayors_house",
        "bedCount": 1
      }
    ],
    "banks": [
      {
        "area": "Everbrook",
        "room": "Bank",
        "roomId": "everbrook.bank"
      },
      {
        "area": "Everbrook",
        "room": "Wheat Fields",
        "roomId": "everbrook.wheat_fields"
      },
      {
        "area": "Everbrook",
        "room": "Chef's Backdoor",
        "roomId": "everbrook.chefs_backdoor"
      },
      {
        "area": "Mystic Vale",
        "room": "Mystic Vale Bank",
        "roomId": "mystic_vale.bank"
      },
      {
        "area": "Mystic Vale",
        "room": "Mystic Vale Farm",
        "roomId": "mystic_vale.farm"
      },
      {
        "area": "Dock Haven",
        "room": "Dock Haven Centre",
        "roomId": "dock_haven.centre"
      },
      {
        "area": "Dock Haven",
        "room": "Dock Haven Bank",
        "roomId": "dock_haven.bank"
      },
      {
        "area": "Ghost Mansion",
        "room": "Ghost Mansion Bank",
        "roomId": "ghost_mansion.bank"
      },
      {
        "area": "Thieves Hideout",
        "room": "Thief Bank and Shop",
        "roomId": "thieves_hideout.bank_shop"
      },
      {
        "area": "Omboko",
        "room": "Omboko Village",
        "roomId": "omboko.village"
      },
      {
        "area": "Omboko",
        "room": "Omboko Bank",
        "roomId": "omboko.bank"
      },
      {
        "area": "Beach",
        "room": "Greenhouse Inside",
        "roomId": "beach.greenhouse_inside"
      },
      {
        "area": "Frostvale",
        "room": "Frostvale Center",
        "roomId": "frostvale.center"
      },
      {
        "area": "Frostvale",
        "room": "Frostvale Bank",
        "roomId": "frostvale.bank"
      }
    ],
    "shops": [
      {
        "area": "Everbrook",
        "room": "Cow Farm",
        "roomId": "everbrook.cow_farm"
      },
      {
        "area": "Everbrook",
        "room": "Mining Entrance",
        "roomId": "everbrook.mining_entrance"
      },
      {
        "area": "Everbrook",
        "room": "Fisherman's Shop",
        "roomId": "everbrook.fishermans_shop"
      },
      {
        "area": "Everbrook",
        "room": "Tavern",
        "roomId": "everbrook.tavern"
      },
      {
        "area": "Everbrook",
        "room": "Inside Chef's House",
        "roomId": "everbrook.chefs_house_inside"
      },
      {
        "area": "Mystic Vale",
        "room": "Mystic Vale Shops",
        "roomId": "mystic_vale.shops"
      },
      {
        "area": "Mystic Vale",
        "room": "Magic Shop",
        "roomId": "mystic_vale.magic_shop"
      },
      {
        "area": "Mystic Vale",
        "room": "General Supply Shop",
        "roomId": "mystic_vale.general_shop"
      },
      {
        "area": "Dock Haven",
        "room": "Dock Haven Centre",
        "roomId": "dock_haven.centre"
      },
      {
        "area": "Dock Haven",
        "room": "Dock Haven Fishing Shop",
        "roomId": "dock_haven.fishing_shop"
      },
      {
        "area": "Ghost Mansion",
        "room": "Ghost Mansion Shops",
        "roomId": "ghost_mansion.shops"
      },
      {
        "area": "Thieves Hideout",
        "room": "Thief Hideout Entrance",
        "roomId": "thieves_hideout.entrance"
      },
      {
        "area": "Thieves Hideout",
        "room": "Thief Bank and Shop",
        "roomId": "thieves_hideout.bank_shop"
      },
      {
        "area": "Thieves Hideout",
        "room": "Thief Fat Guy",
        "roomId": "thieves_hideout.fat_guy"
      },
      {
        "area": "Omboko",
        "room": "Omboko Shop (Inside)",
        "roomId": "omboko.shop_inside"
      },
      {
        "area": "Pirate Isle",
        "room": "Pirate Ship (Top)",
        "roomId": "pirate_isle.ship_top"
      },
      {
        "area": "Hell",
        "room": "Layer 3.1 / Charcoal Wall",
        "roomId": "hell.charcoal_wall"
      },
      {
        "area": "Frostvale",
        "room": "Frostvale Center",
        "roomId": "frostvale.center"
      },
      {
        "area": "Frostvale",
        "room": "Frostvale General Store",
        "roomId": "frostvale.general_store"
      },
      {
        "area": "Frostvale",
        "room": "Mount Frostvale Shop",
        "roomId": "frostvale.mount_shop"
      },
      {
        "area": "Atlas",
        "room": "Atlas Ali",
        "roomId": "atlas.ali"
      },
      {
        "area": "Atlas",
        "room": "Atlas Shop",
        "roomId": "atlas.shop"
      }
    ],
    "worshipRefills": [
      {
        "area": "Everbrook",
        "room": "Cemetery",
        "roomId": "everbrook.cemetery"
      },
      {
        "area": "Ghost Mansion",
        "room": "Ghost Mansion Cemetery",
        "roomId": "ghost_mansion.cemetery"
      },
      {
        "area": "Omboko",
        "room": "Omboko Cemetery",
        "roomId": "omboko.cemetery"
      },
      {
        "area": "Frostvale",
        "room": "Frostvale Cemetery",
        "roomId": "frostvale.cemetery"
      }
    ],
    "enchantmentLocations": [
      {
        "area": "Everbrook",
        "room": "Clouds",
        "roomId": "everbrook.clouds"
      },
      {
        "area": "Mystic Vale",
        "room": "Starting Area",
        "roomId": "mystic_vale.starting_area"
      },
      {
        "area": "Dock Haven",
        "room": "Dock",
        "roomId": "dock_haven.dock"
      },
      {
        "area": "Ghost Mansion",
        "room": "Ghost Mansion Bank",
        "roomId": "ghost_mansion.bank"
      },
      {
        "area": "Omboko",
        "room": "Jungle Enchanting",
        "roomId": "omboko.jungle_enchanting"
      },
      {
        "area": "Omboko",
        "room": "Thorn Enchanting",
        "roomId": "omboko.thorn_enchanting"
      },
      {
        "area": "Pirate Isle",
        "room": "Pirate Ship (Top)",
        "roomId": "pirate_isle.ship_top"
      },
      {
        "area": "Hell",
        "room": "Layer 1 / Starting Area",
        "roomId": "hell.layer1"
      },
      {
        "area": "Volcano",
        "room": "Lava Enchantment Altar",
        "roomId": "volcano.lava_altar"
      },
      {
        "area": "Frostvale",
        "room": "Mount Frostvale",
        "roomId": "frostvale.mount"
      },
      {
        "area": "Atlas",
        "room": "Atlas Weapon Enchant",
        "roomId": "atlas.weapon_enchant"
      }
    ],
    "travelNpcs": [
      {
        "area": "Everbrook",
        "npc": "Ned the Boat Guy",
        "roomId": "everbrook.docks",
        "details": "Boat passage to Omboko for 25 Coins; current wiki says the coins only need to be held."
      },
      {
        "area": "Dock Haven",
        "npc": "Dockmen",
        "roomId": "dock_haven.dock",
        "details": "Return/travel to Beach."
      },
      {
        "area": "Omboko",
        "npc": "Dockmen",
        "roomId": "omboko.tuna_fishing",
        "details": "Travel back to Everbrook."
      },
      {
        "area": "Pirate Isle",
        "npc": "Captain",
        "roomId": "pirate_isle.ship_mast",
        "details": "Takes players to the Desert."
      },
      {
        "area": "Beach",
        "npc": "Dockman",
        "roomId": "beach.boat",
        "details": "Boat to Dock Haven for 100 Coins."
      },
      {
        "area": "Frostvale",
        "npc": "Train Engineer",
        "roomId": "frostvale.train_station",
        "details": "Returns players to the Desert."
      }
    ],
    "resources": [
      {
        "areaId": "area.everbrook",
        "area": "Everbrook",
        "roomId": "everbrook.farmlands",
        "room": "Farmlands",
        "nodeIndex": 1,
        "resource": null,
        "nodeType": "fishing_spot",
        "authority": "derived",
        "skill": "Fishing",
        "tool": "Lobster Cage",
        "note": "The v1.2 feature names the fishing method/spot but does not explicitly name the catch.",
        "evidenceFeature": "Lobster Cage fishing spot"
      },
      {
        "areaId": "area.everbrook",
        "area": "Everbrook",
        "roomId": "everbrook.town_square",
        "room": "Town Square",
        "nodeIndex": 1,
        "resource": "Shrimp",
        "nodeType": "fishing_spot",
        "authority": "derived",
        "skill": "Fishing",
        "evidenceFeature": "Shrimp/Anchovy fishing"
      },
      {
        "areaId": "area.everbrook",
        "area": "Everbrook",
        "roomId": "everbrook.town_square",
        "room": "Town Square",
        "nodeIndex": 2,
        "resource": "Anchovy",
        "nodeType": "fishing_spot",
        "authority": "derived",
        "skill": "Fishing",
        "evidenceFeature": "Shrimp/Anchovy fishing"
      },
      {
        "areaId": "area.everbrook",
        "area": "Everbrook",
        "roomId": "everbrook.docks",
        "room": "Docks",
        "nodeIndex": 1,
        "resource": "Sardine",
        "nodeType": "fishing_spot",
        "authority": "derived",
        "skill": "Fishing",
        "evidenceFeature": "Sardine fishing"
      },
      {
        "areaId": "area.everbrook",
        "area": "Everbrook",
        "roomId": "everbrook.docks",
        "room": "Docks",
        "nodeIndex": 2,
        "resource": "Sand",
        "nodeType": "dig_node",
        "authority": "derived",
        "evidenceFeature": "Sand Piles",
        "activity": "digging"
      },
      {
        "areaId": "area.everbrook",
        "area": "Everbrook",
        "roomId": "everbrook.wheat_fields",
        "room": "Wheat Fields",
        "nodeIndex": 1,
        "resource": null,
        "nodeType": "farming_plot",
        "authority": "derived",
        "skill": "Farming",
        "evidenceFeature": "Farming Plot"
      },
      {
        "areaId": "area.everbrook",
        "area": "Everbrook",
        "roomId": "everbrook.wheat_fields",
        "room": "Wheat Fields",
        "nodeIndex": 2,
        "resource": "Wheat",
        "nodeType": "ground_resource",
        "authority": "derived",
        "evidenceFeature": "infinite Wheat"
      },
      {
        "areaId": "area.mystic_vale",
        "area": "Mystic Vale",
        "roomId": "mystic_vale.cemetery",
        "room": "Cemetery",
        "nodeIndex": 1,
        "resource": "Haunted Tree",
        "nodeType": "tree",
        "authority": "derived",
        "skill": "Woodcutting",
        "evidenceFeature": "Haunted Tree"
      },
      {
        "areaId": "area.mystic_vale",
        "area": "Mystic Vale",
        "roomId": "mystic_vale.cemetery",
        "room": "Cemetery",
        "nodeIndex": 2,
        "resource": "Magic Tree",
        "nodeType": "tree",
        "authority": "derived",
        "skill": "Woodcutting",
        "evidenceFeature": "Magic Trees"
      },
      {
        "areaId": "area.mystic_vale",
        "area": "Mystic Vale",
        "roomId": "mystic_vale.orb_pile",
        "room": "Orb Pile",
        "nodeIndex": 1,
        "resource": "Unpowered Orb",
        "nodeType": "dig_node",
        "authority": "derived",
        "tool": "Shovel",
        "evidenceFeature": "Dig Unpowered Orbs with a Shovel",
        "activity": "digging"
      },
      {
        "areaId": "area.mystic_vale",
        "area": "Mystic Vale",
        "roomId": "mystic_vale.farm",
        "room": "Mystic Vale Farm",
        "nodeIndex": 1,
        "resource": null,
        "nodeType": "farming_plot",
        "authority": "derived",
        "skill": "Farming",
        "evidenceFeature": "Unlockable farming plot"
      },
      {
        "areaId": "area.dock_haven",
        "area": "Dock Haven",
        "roomId": "dock_haven.dock",
        "room": "Dock",
        "nodeIndex": 1,
        "resource": "Mangrove Tree",
        "nodeType": "tree",
        "authority": "derived",
        "skill": "Woodcutting",
        "evidenceFeature": "Mangrove Trees"
      },
      {
        "areaId": "area.dock_haven",
        "area": "Dock Haven",
        "roomId": "dock_haven.dock",
        "room": "Dock",
        "nodeIndex": 2,
        "resource": "Shark",
        "nodeType": "fishing_spot",
        "authority": "derived",
        "skill": "Fishing",
        "evidenceFeature": "Shark fishing"
      },
      {
        "areaId": "area.dock_haven",
        "area": "Dock Haven",
        "roomId": "dock_haven.seagulls",
        "room": "Dock Haven Seagulls / Water Spirit",
        "nodeIndex": 1,
        "resource": null,
        "nodeType": "fishing_spot",
        "authority": "derived",
        "skill": "Fishing",
        "tool": "Lobster Cage",
        "note": "The room feature identifies a Lobster Cage fishing interaction but not the catch by name.",
        "evidenceFeature": "Lobster Cage"
      },
      {
        "areaId": "area.thieves_hideout",
        "area": "Thieves Hideout",
        "roomId": "thieves_hideout.bank_shop",
        "room": "Thief Bank and Shop",
        "nodeIndex": 1,
        "resource": "Eel",
        "nodeType": "fishing_spot",
        "authority": "derived",
        "skill": "Fishing",
        "evidenceFeature": "Eel fishing"
      },
      {
        "areaId": "area.sewer",
        "area": "Sewer",
        "roomId": "sewer.gold_ore",
        "room": "Sewer Gold Ore",
        "nodeIndex": 1,
        "resource": "Gold Ore",
        "nodeType": "ore",
        "authority": "derived",
        "skill": "Mining",
        "evidenceFeature": "Gold Ore"
      },
      {
        "areaId": "area.sewer",
        "area": "Sewer",
        "roomId": "sewer.eels",
        "room": "Sewer Eels",
        "nodeIndex": 1,
        "resource": "Eel",
        "nodeType": "fishing_spot",
        "authority": "derived",
        "skill": "Fishing",
        "evidenceFeature": "Eel fishing"
      },
      {
        "areaId": "area.sewer",
        "area": "Sewer",
        "roomId": "sewer.eels",
        "room": "Sewer Eels",
        "nodeIndex": 2,
        "resource": "Three-eyed Fish",
        "nodeType": "rare_fishing_output",
        "authority": "derived",
        "skill": "Fishing",
        "note": "Marked possible in the source-derived room feature.",
        "evidenceFeature": "possible Three-eyed Fish"
      },
      {
        "areaId": "area.omboko",
        "area": "Omboko",
        "roomId": "omboko.tuna_fishing",
        "room": "Tuna Fishing",
        "nodeIndex": 1,
        "resource": "Tuna",
        "nodeType": "fishing_spot",
        "authority": "derived",
        "skill": "Fishing",
        "tool": "Harpoon",
        "evidenceFeature": "Tuna fishing with Harpoon"
      },
      {
        "areaId": "area.omboko",
        "area": "Omboko",
        "roomId": "omboko.jungle_beetles",
        "room": "Jungle Beetles",
        "nodeIndex": 1,
        "resource": "Bamboo",
        "nodeType": "resource",
        "authority": "derived",
        "skill": "Woodcutting",
        "evidenceFeature": "Bamboo"
      },
      {
        "areaId": "area.omboko",
        "area": "Omboko",
        "roomId": "omboko.mini_thief",
        "room": "Jungle Mini Thief",
        "nodeIndex": 1,
        "resource": "Bamboo",
        "nodeType": "resource",
        "authority": "derived",
        "skill": "Woodcutting",
        "evidenceFeature": "Bamboo"
      },
      {
        "areaId": "area.omboko",
        "area": "Omboko",
        "roomId": "omboko.mini_thief",
        "room": "Jungle Mini Thief",
        "nodeIndex": 2,
        "resource": "Sugarcane",
        "nodeType": "ground_resource",
        "authority": "derived",
        "evidenceFeature": "Sugarcane"
      },
      {
        "areaId": "area.omboko",
        "area": "Omboko",
        "roomId": "omboko.jungle_river",
        "room": "Jungle River",
        "nodeIndex": 1,
        "resource": "Bamboo",
        "nodeType": "resource",
        "authority": "derived",
        "skill": "Woodcutting",
        "evidenceFeature": "Bamboo"
      },
      {
        "areaId": "area.omboko",
        "area": "Omboko",
        "roomId": "omboko.jungle_river",
        "room": "Jungle River",
        "nodeIndex": 2,
        "resource": "Sugarcane",
        "nodeType": "ground_resource",
        "authority": "derived",
        "evidenceFeature": "Sugarcane"
      },
      {
        "areaId": "area.omboko",
        "area": "Omboko",
        "roomId": "omboko.shop_outside",
        "room": "Omboko Shop (Outside)",
        "nodeIndex": 1,
        "resource": "Bamboo",
        "nodeType": "resource",
        "authority": "derived",
        "skill": "Woodcutting",
        "evidenceFeature": "Bamboo"
      },
      {
        "areaId": "area.omboko",
        "area": "Omboko",
        "roomId": "omboko.ents",
        "room": "Omboko Ents",
        "nodeIndex": 1,
        "resource": "Bamboo",
        "nodeType": "resource",
        "authority": "derived",
        "skill": "Woodcutting",
        "evidenceFeature": "Bamboo"
      },
      {
        "areaId": "area.omboko",
        "area": "Omboko",
        "roomId": "omboko.cemetery",
        "room": "Omboko Cemetery",
        "nodeIndex": 1,
        "resource": "Haunted Tree",
        "nodeType": "tree",
        "authority": "derived",
        "skill": "Woodcutting",
        "evidenceFeature": "Haunted Tree"
      },
      {
        "areaId": "area.omboko",
        "area": "Omboko",
        "roomId": "omboko.piranhas",
        "room": "Omboko Piranhas",
        "nodeIndex": 1,
        "resource": null,
        "nodeType": "farming_plot",
        "authority": "derived",
        "skill": "Farming",
        "evidenceFeature": "Farming plot"
      },
      {
        "areaId": "area.omboko",
        "area": "Omboko",
        "roomId": "omboko.piranhas",
        "room": "Omboko Piranhas",
        "nodeIndex": 2,
        "resource": "Piranha",
        "nodeType": "fishing_spot",
        "authority": "derived",
        "skill": "Fishing",
        "evidenceFeature": "Piranha fishing"
      },
      {
        "areaId": "area.omboko",
        "area": "Omboko",
        "roomId": "omboko.dungeon_anglerfish",
        "room": "Dungeon Anglerfish",
        "nodeIndex": 1,
        "resource": "Anglerfish",
        "nodeType": "fishing_spot",
        "authority": "derived",
        "skill": "Fishing",
        "tool": "Fishing Rod",
        "bait": "Cave Bait",
        "evidenceFeature": "Anglerfish fishing with Fishing Rod + Cave Bait"
      },
      {
        "areaId": "area.pirate_isle",
        "area": "Pirate Isle",
        "roomId": "pirate_isle.beach",
        "room": "Pirate Beach",
        "nodeIndex": 1,
        "resource": "Glass",
        "nodeType": "ground_resource",
        "authority": "derived",
        "evidenceFeature": "Infinite Glass"
      },
      {
        "areaId": "area.hell",
        "area": "Hell",
        "roomId": "hell.layer1",
        "room": "Layer 1 / Starting Area",
        "nodeIndex": 1,
        "resource": "Lava Eel",
        "nodeType": "fishing_spot",
        "authority": "derived",
        "skill": "Fishing",
        "evidenceFeature": "Lava Eel fishing"
      },
      {
        "areaId": "area.hell",
        "area": "Hell",
        "roomId": "hell.gem_converter",
        "room": "Gem Converter",
        "nodeIndex": 1,
        "resource": "Promethium Ore",
        "nodeType": "ore",
        "authority": "derived",
        "skill": "Mining",
        "evidenceFeature": "Promethium Ore"
      },
      {
        "areaId": "area.hell",
        "area": "Hell",
        "roomId": "hell.gem_converter",
        "room": "Gem Converter",
        "nodeIndex": 2,
        "resource": "Titanium Ore",
        "nodeType": "ore",
        "authority": "derived",
        "skill": "Mining",
        "evidenceFeature": "Titanium Ore"
      },
      {
        "areaId": "area.hell",
        "area": "Hell",
        "roomId": "hell.layer2",
        "room": "Layer 2 / Bone Room",
        "nodeIndex": 1,
        "resource": "Bones",
        "nodeType": "ground_resource",
        "authority": "derived",
        "evidenceFeature": "3 respawning Bones"
      },
      {
        "areaId": "area.hell",
        "area": "Hell",
        "roomId": "hell.layer3",
        "room": "Layer 3",
        "nodeIndex": 1,
        "resource": "Hell Shovel",
        "nodeType": "ground_item",
        "authority": "derived",
        "evidenceFeature": "Hell Shovel"
      },
      {
        "areaId": "area.hell",
        "area": "Hell",
        "roomId": "hell.charcoal_wall",
        "room": "Layer 3.1 / Charcoal Wall",
        "nodeIndex": 1,
        "resource": "Charcoal",
        "nodeType": "mining_wall",
        "authority": "derived",
        "skill": "Mining",
        "level": 50,
        "note": "Room access records Mining 50; room feature records the Charcoal wall.",
        "evidenceFeature": "Charcoal wall"
      },
      {
        "areaId": "area.beach",
        "area": "Beach",
        "roomId": "beach.greenhouse_inside",
        "room": "Greenhouse Inside",
        "nodeIndex": 1,
        "resource": null,
        "nodeType": "farming_plot",
        "authority": "derived",
        "skill": "Farming",
        "note": "Four separate Mushroom plots are documented.",
        "evidenceFeature": "4 Mushroom Plots"
      },
      {
        "areaId": "area.beach",
        "area": "Beach",
        "roomId": "beach.sandpile",
        "room": "Beach Sandpile",
        "nodeIndex": 1,
        "resource": "Sand",
        "nodeType": "dig_node",
        "authority": "derived",
        "evidenceFeature": "Sandpiles",
        "activity": "digging"
      },
      {
        "areaId": "area.beach",
        "area": "Beach",
        "roomId": "beach.boat",
        "room": "Beach Boat",
        "nodeIndex": 1,
        "resource": "Mangrove Tree",
        "nodeType": "tree",
        "authority": "derived",
        "skill": "Woodcutting",
        "evidenceFeature": "Mangrove Tree"
      },
      {
        "areaId": "area.beach",
        "area": "Beach",
        "roomId": "beach.quicksand_giant_spiders",
        "room": "Quicksand Giant Spiders",
        "nodeIndex": 1,
        "resource": "Gold Ore",
        "nodeType": "ore",
        "authority": "derived",
        "skill": "Mining",
        "evidenceFeature": "Gold Ore"
      },
      {
        "areaId": "area.beach",
        "area": "Beach",
        "roomId": "beach.quicksand_giant_spiders",
        "room": "Quicksand Giant Spiders",
        "nodeIndex": 2,
        "resource": "Silver Ore",
        "nodeType": "ore",
        "authority": "derived",
        "skill": "Mining",
        "evidenceFeature": "Silver Ore"
      },
      {
        "areaId": "area.beach",
        "area": "Beach",
        "roomId": "beach.quicksand_more_ores",
        "room": "Quicksand More Ores",
        "nodeIndex": 1,
        "resource": "Copper Ore",
        "nodeType": "giant_ore",
        "authority": "derived",
        "skill": "Mining",
        "evidenceFeature": "Giant Copper"
      },
      {
        "areaId": "area.beach",
        "area": "Beach",
        "roomId": "beach.quicksand_more_ores",
        "room": "Quicksand More Ores",
        "nodeIndex": 2,
        "resource": "Iron Ore",
        "nodeType": "giant_ore",
        "authority": "derived",
        "skill": "Mining",
        "evidenceFeature": "Giant Iron"
      },
      {
        "areaId": "area.beach",
        "area": "Beach",
        "roomId": "beach.quicksand_more_ores",
        "room": "Quicksand More Ores",
        "nodeIndex": 3,
        "resource": null,
        "nodeType": "fishing_spot",
        "authority": "derived",
        "skill": "Fishing",
        "tool": "Lobster Cage",
        "evidenceFeature": "Lobster Cage"
      },
      {
        "areaId": "area.volcano",
        "area": "Volcano",
        "roomId": "volcano.graphite",
        "room": "Graphite Room",
        "nodeIndex": 1,
        "resource": "Graphite",
        "nodeType": "resource",
        "authority": "derived",
        "skill": "Mining",
        "level": 70,
        "note": "Room access records Mining 70 for Graphite.",
        "evidenceFeature": "Graphite"
      },
      {
        "areaId": "area.volcano",
        "area": "Volcano",
        "roomId": "volcano.graphite",
        "room": "Graphite Room",
        "nodeIndex": 2,
        "resource": "Silver Ore",
        "nodeType": "giant_ore",
        "authority": "derived",
        "skill": "Mining",
        "evidenceFeature": "Giant Silver Ore"
      },
      {
        "areaId": "area.volcano",
        "area": "Volcano",
        "roomId": "volcano.ancient",
        "room": "Ancient / Lava Bucket Area",
        "nodeIndex": 1,
        "resource": "Lava Eel",
        "nodeType": "fishing_spot",
        "authority": "derived",
        "skill": "Fishing",
        "evidenceFeature": "Lava Eel fishing"
      },
      {
        "areaId": "area.volcano",
        "area": "Volcano",
        "roomId": "volcano.bridge",
        "room": "Bridge",
        "nodeIndex": 1,
        "resource": "Nethergrass",
        "nodeType": "ground_resource",
        "authority": "derived",
        "evidenceFeature": "Nethergrass"
      },
      {
        "areaId": "area.volcano",
        "area": "Volcano",
        "roomId": "volcano.lava_altar",
        "room": "Lava Enchantment Altar",
        "nodeIndex": 1,
        "resource": "Lava Eel",
        "nodeType": "fishing_spot",
        "authority": "derived",
        "skill": "Fishing",
        "evidenceFeature": "Lava Eels"
      },
      {
        "areaId": "area.volcano",
        "area": "Volcano",
        "roomId": "volcano.lava_altar",
        "room": "Lava Enchantment Altar",
        "nodeIndex": 2,
        "resource": "Hot Berries",
        "nodeType": "ground_resource",
        "authority": "derived",
        "evidenceFeature": "Hot Berries"
      },
      {
        "areaId": "area.volcano",
        "area": "Volcano",
        "roomId": "volcano.lava_altar",
        "room": "Lava Enchantment Altar",
        "nodeIndex": 3,
        "resource": "Graphite",
        "nodeType": "resource",
        "authority": "derived",
        "skill": "Mining",
        "evidenceFeature": "Graphite"
      },
      {
        "areaId": "area.frostvale",
        "area": "Frostvale",
        "roomId": "frostvale.mount",
        "room": "Mount Frostvale",
        "nodeIndex": 1,
        "resource": "Snowy Pine Tree",
        "nodeType": "tree",
        "authority": "derived",
        "skill": "Woodcutting",
        "evidenceFeature": "Snowy Pine Tree"
      },
      {
        "areaId": "area.frostvale",
        "area": "Frostvale",
        "roomId": "frostvale.northern_fields",
        "room": "Northern Fields",
        "nodeIndex": 1,
        "resource": "Pine Tree",
        "nodeType": "tree",
        "authority": "derived",
        "skill": "Woodcutting",
        "evidenceFeature": "Pine Trees"
      },
      {
        "areaId": "area.frostvale",
        "area": "Frostvale",
        "roomId": "frostvale.waterfall",
        "room": "Frostvale Waterfall",
        "nodeIndex": 1,
        "resource": null,
        "nodeType": "fishing_spot",
        "authority": "derived",
        "skill": "Fishing",
        "tool": "Lobster Cage",
        "evidenceFeature": "Lobster Cage"
      },
      {
        "areaId": "area.frostvale",
        "area": "Frostvale",
        "roomId": "frostvale.river",
        "room": "Frostvale River",
        "nodeIndex": 1,
        "resource": "Arctic Cod",
        "nodeType": "fishing_spot",
        "authority": "derived",
        "skill": "Fishing",
        "evidenceFeature": "Arctic Cod fishing"
      },
      {
        "areaId": "area.atlas",
        "area": "Atlas",
        "roomId": "atlas.vortex_under",
        "room": "Vortex (Under)",
        "nodeIndex": 1,
        "resource": "Clay",
        "nodeType": "resource",
        "authority": "derived",
        "skill": "Mining",
        "evidenceFeature": "Clay rocks"
      },
      {
        "areaId": "area.atlas",
        "area": "Atlas",
        "roomId": "atlas.vortex_under",
        "room": "Vortex (Under)",
        "nodeIndex": 2,
        "resource": "Seaweed",
        "nodeType": "ground_resource",
        "authority": "derived",
        "evidenceFeature": "Seaweed"
      },
      {
        "areaId": "area.atlas",
        "area": "Atlas",
        "roomId": "atlas.ocean_crabs",
        "room": "Ocean Crabs",
        "nodeIndex": 1,
        "resource": "Lobster Cage",
        "nodeType": "ground_item",
        "authority": "derived",
        "evidenceFeature": "infinite Lobster Cage item"
      },
      {
        "areaId": "area.atlas",
        "area": "Atlas",
        "roomId": "atlas.seaweed",
        "room": "Atlas Seaweed",
        "nodeIndex": 1,
        "resource": "High Quality Seaweed",
        "nodeType": "resource",
        "authority": "derived",
        "skill": "Farming",
        "level": 75,
        "note": "Room access records Farming 75.",
        "evidenceFeature": "High Quality Seaweed"
      },
      {
        "areaId": "area.atlas",
        "area": "Atlas",
        "roomId": "atlas.clay",
        "room": "Atlas Clay",
        "nodeIndex": 1,
        "resource": "Clay",
        "nodeType": "resource",
        "authority": "derived",
        "skill": "Mining",
        "evidenceFeature": "Clay"
      }
    ],
    "monsterRoomLinks": [
      {
        "monsterId": "monster.gorilla",
        "monster": "gorilla",
        "sourceArea": "Omboko",
        "roomId": "omboko.jungle_river",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Gorilla",
        "roomArea": "Omboko",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.gorilla",
        "monster": "gorilla",
        "sourceArea": "Omboko",
        "roomId": "omboko.village",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Gorilla",
        "roomArea": "Omboko",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.gorilla",
        "monster": "gorilla",
        "sourceArea": "Omboko",
        "roomId": "omboko.fire_spirit",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Gorillas",
        "roomArea": "Omboko",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.gorilla",
        "monster": "gorilla",
        "sourceArea": "Omboko",
        "roomId": "omboko.shop_outside",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Gorilla",
        "roomArea": "Omboko",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.gorilla",
        "monster": "gorilla",
        "sourceArea": "Omboko",
        "roomId": "omboko.shop_inside",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Gorilla",
        "roomArea": "Omboko",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.chicken",
        "monster": "chicken",
        "sourceArea": "Everbrook",
        "roomId": "everbrook.farmlands",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Chickens",
        "roomArea": "Everbrook",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.chicken",
        "monster": "chicken",
        "sourceArea": "Everbrook",
        "roomId": "everbrook.east_town_square",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Chicken",
        "roomArea": "Everbrook",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.chicken",
        "monster": "chicken",
        "sourceArea": "Everbrook",
        "roomId": "everbrook.chicken_pen",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Chickens",
        "roomArea": "Everbrook",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.seagull",
        "monster": "seagull",
        "sourceArea": "Beach",
        "roomId": "dock_haven.seagulls",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Seagulls",
        "roomArea": "Dock Haven",
        "matchesBootstrapArea": false,
        "note": "Current room-page evidence places/mentions this entity outside the monster bootstrap record's broad area label; both are retained."
      },
      {
        "monsterId": "monster.pirate",
        "monster": "pirate",
        "sourceArea": "Beach",
        "roomId": "pirate_isle.beach",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "2 Pirates",
        "roomArea": "Pirate Isle",
        "matchesBootstrapArea": false,
        "note": "Current room-page evidence places/mentions this entity outside the monster bootstrap record's broad area label; both are retained."
      },
      {
        "monsterId": "monster.pirate",
        "monster": "pirate",
        "sourceArea": "Beach",
        "roomId": "pirate_isle.ship_inside",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "2 Pirates",
        "roomArea": "Pirate Isle",
        "matchesBootstrapArea": false,
        "note": "Current room-page evidence places/mentions this entity outside the monster bootstrap record's broad area label; both are retained."
      },
      {
        "monsterId": "monster.trible_feller",
        "monster": "trible_feller",
        "sourceArea": "Omboko",
        "roomId": "omboko.shop_outside",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Trible Fellers",
        "roomArea": "Omboko",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.upper_pirate",
        "monster": "upper_pirate",
        "sourceArea": "Beach",
        "roomId": "pirate_isle.ship_mast",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Upper Pirates",
        "roomArea": "Pirate Isle",
        "matchesBootstrapArea": false,
        "note": "Current room-page evidence places/mentions this entity outside the monster bootstrap record's broad area label; both are retained."
      },
      {
        "monsterId": "monster.cloud",
        "monster": "cloud",
        "sourceArea": "Beanstalk",
        "roomId": "everbrook.clouds",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "3 Cloud enemies",
        "roomArea": "Everbrook",
        "matchesBootstrapArea": false,
        "note": "Current room-page evidence places/mentions this entity outside the monster bootstrap record's broad area label; both are retained."
      },
      {
        "monsterId": "monster.rat",
        "monster": "rat",
        "sourceArea": "Sewer",
        "roomId": "everbrook.mini_sewer",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Rats",
        "roomArea": "Everbrook",
        "matchesBootstrapArea": false,
        "note": "Current room-page evidence places/mentions this entity outside the monster bootstrap record's broad area label; both are retained."
      },
      {
        "monsterId": "monster.rat",
        "monster": "rat",
        "sourceArea": "Sewer",
        "roomId": "everbrook.tavern",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Rat",
        "roomArea": "Everbrook",
        "matchesBootstrapArea": false,
        "note": "Current room-page evidence places/mentions this entity outside the monster bootstrap record's broad area label; both are retained."
      },
      {
        "monsterId": "monster.rat",
        "monster": "rat",
        "sourceArea": "Sewer",
        "roomId": "sewer.rats",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Rats",
        "roomArea": "Sewer",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.thief",
        "monster": "thief",
        "sourceArea": "Thieves Hideout",
        "roomId": "thieves_hideout.entrance",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Gold Knife Thief",
        "roomArea": "Thieves Hideout",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.thief",
        "monster": "thief",
        "sourceArea": "Thieves Hideout",
        "roomId": "thieves_hideout.main_room",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "3 Thieves",
        "roomArea": "Thieves Hideout",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.thief",
        "monster": "thief",
        "sourceArea": "Thieves Hideout",
        "roomId": "thieves_hideout.locked_room",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "2 Thieves",
        "roomArea": "Thieves Hideout",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.thief",
        "monster": "thief",
        "sourceArea": "Thieves Hideout",
        "roomId": "beach.quicksand_thief_entrance",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Thief",
        "roomArea": "Beach",
        "matchesBootstrapArea": false,
        "note": "Current room-page evidence places/mentions this entity outside the monster bootstrap record's broad area label; both are retained."
      },
      {
        "monsterId": "monster.snake",
        "monster": "snake",
        "sourceArea": "Sewer",
        "roomId": "sewer.hunter",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Snakes",
        "roomArea": "Sewer",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.pig",
        "monster": "pig",
        "sourceArea": "Everbrook",
        "roomId": "everbrook.pig_farm",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "3 Pigs",
        "roomArea": "Everbrook",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.cow",
        "monster": "cow",
        "sourceArea": "Everbrook",
        "roomId": "everbrook.farmlands",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Cows",
        "roomArea": "Everbrook",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.cow",
        "monster": "cow",
        "sourceArea": "Everbrook",
        "roomId": "everbrook.cow_farm",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Cows",
        "roomArea": "Everbrook",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.tiger",
        "monster": "tiger",
        "sourceArea": "Omboko",
        "roomId": "omboko.tigers",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Aggressive Tigers",
        "roomArea": "Omboko",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.crocodile",
        "monster": "crocodile",
        "sourceArea": "Beach",
        "roomId": "beach.boat",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Crocodiles",
        "roomArea": "Beach",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.giant_rat",
        "monster": "giant_rat",
        "sourceArea": "Sewer",
        "roomId": "sewer.rats",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Giant Rat",
        "roomArea": "Sewer",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.volcanic_rocky",
        "monster": "volcanic_rocky",
        "sourceArea": "Volcano",
        "roomId": "volcano.graphite",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Volcanic Rocky",
        "roomArea": "Volcano",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.volcanic_rocky",
        "monster": "volcanic_rocky",
        "sourceArea": "Volcano",
        "roomId": "volcano.bridge",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Volcanic Rocky",
        "roomArea": "Volcano",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.hell_goblin",
        "monster": "hell_goblin",
        "sourceArea": "Hell",
        "roomId": "hell.layer2_2",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Aggressive Hell Goblins",
        "roomArea": "Hell",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.deranged_mage",
        "monster": "deranged_mage",
        "sourceArea": "Mystic Vale",
        "roomId": "mystic_vale.starting_area",
        "relation": "access_point",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Deranged Mage boss entrance",
        "roomArea": "Mystic Vale",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.guard_mage",
        "monster": "guard_mage",
        "sourceArea": "Mystic Vale",
        "roomId": "mystic_vale.locked_house",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Guard Mage",
        "roomArea": "Mystic Vale",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.guard_mage",
        "monster": "guard_mage",
        "sourceArea": "Mystic Vale",
        "roomId": "mystic_vale.orb_pile",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "3 Guard Mages",
        "roomArea": "Mystic Vale",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.druid",
        "monster": "druid",
        "sourceArea": "Omboko",
        "roomId": "omboko.ents",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Druid",
        "roomArea": "Omboko",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.shamen",
        "monster": "shamen",
        "sourceArea": "Omboko",
        "roomId": "omboko.cemetery_shaman",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Shaman",
        "roomArea": "Omboko",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.mage",
        "monster": "mage",
        "sourceArea": "Mystic Vale",
        "roomId": "mystic_vale.ladder_to_farm",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Mage",
        "roomArea": "Mystic Vale",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.red_mage",
        "monster": "red_mage",
        "sourceArea": "Mystic Vale",
        "roomId": "mystic_vale.red_mages",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "3 aggressive Red Mages",
        "roomArea": "Mystic Vale",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.noctyrix",
        "monster": "noctyrix",
        "sourceArea": "Volcano Cave",
        "roomId": "omboko.dungeon_boss_entrance",
        "relation": "access_point",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Noctyrix entrance",
        "roomArea": "Omboko",
        "matchesBootstrapArea": false,
        "note": "Current room-page evidence places/mentions this entity outside the monster bootstrap record's broad area label; both are retained."
      },
      {
        "monsterId": "monster.silkfang",
        "monster": "silkfang",
        "sourceArea": "Sewer",
        "roomId": "sewer.giant_spiders",
        "relation": "access_point",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Silkfang boss hole",
        "roomArea": "Sewer",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.silkfang",
        "monster": "silkfang",
        "sourceArea": "Sewer",
        "roomId": "sewer.silkfang",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Silkfang",
        "roomArea": "Sewer",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.cave_beetle",
        "monster": "cave_beetle",
        "sourceArea": "Volcano Cave",
        "roomId": "omboko.dungeon_cave_beetles",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Cave Beetles",
        "roomArea": "Omboko",
        "matchesBootstrapArea": false,
        "note": "Current room-page evidence places/mentions this entity outside the monster bootstrap record's broad area label; both are retained."
      },
      {
        "monsterId": "monster.beetle",
        "monster": "beetle",
        "sourceArea": "Omboko",
        "roomId": "omboko.jungle_beetles",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Beetles",
        "roomArea": "Omboko",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.flamester",
        "monster": "flamester",
        "sourceArea": "Volcano",
        "roomId": "volcano.lava_altar",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Flamesters",
        "roomArea": "Volcano",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.ice_beetle",
        "monster": "ice_beetle",
        "sourceArea": "Frostvale",
        "roomId": "frostvale.northern_fields",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Ice Beetle",
        "roomArea": "Frostvale",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.ice_beetle",
        "monster": "ice_beetle",
        "sourceArea": "Frostvale",
        "roomId": "frostvale.waterfall",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "2 Ice Beetles",
        "roomArea": "Frostvale",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.archer_thief",
        "monster": "archer_thief",
        "sourceArea": "Thieves Hideout",
        "roomId": "thieves_hideout.floor2",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Archer Thieves",
        "roomArea": "Thieves Hideout",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.ghost",
        "monster": "ghost",
        "sourceArea": "Everbrook",
        "roomId": "everbrook.cemetery",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Ghosts",
        "roomArea": "Everbrook",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.ghost",
        "monster": "ghost",
        "sourceArea": "Everbrook",
        "roomId": "mystic_vale.cemetery",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Ghosts",
        "roomArea": "Mystic Vale",
        "matchesBootstrapArea": false,
        "note": "Current room-page evidence places/mentions this entity outside the monster bootstrap record's broad area label; both are retained."
      },
      {
        "monsterId": "monster.ice_ghost",
        "monster": "ice_ghost",
        "sourceArea": "Frostvale",
        "roomId": "frostvale.cemetery",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "2 Ice Ghosts",
        "roomArea": "Frostvale",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.archer_goblin",
        "monster": "archer_goblin",
        "sourceArea": "Everbrook",
        "roomId": "everbrook.willow_trees",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Archer Goblin",
        "roomArea": "Everbrook",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.farmer",
        "monster": "farmer",
        "sourceArea": "Everbrook",
        "roomId": "everbrook.farmlands",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Farmers",
        "roomArea": "Everbrook",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.farmer",
        "monster": "farmer",
        "sourceArea": "Everbrook",
        "roomId": "everbrook.wheat_fields",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Farmers",
        "roomArea": "Everbrook",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.farmer",
        "monster": "farmer",
        "sourceArea": "Everbrook",
        "roomId": "everbrook.chefs_house",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "2 Farmers",
        "roomArea": "Everbrook",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.master_farmer",
        "monster": "master_farmer",
        "sourceArea": "Everbrook",
        "roomId": "everbrook.chefs_house",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Master Farmer",
        "roomArea": "Everbrook",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.bear",
        "monster": "bear",
        "sourceArea": "Everbrook",
        "roomId": "everbrook.willow_oak_grove",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Bear",
        "roomArea": "Everbrook",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.bear",
        "monster": "bear",
        "sourceArea": "Everbrook",
        "roomId": "everbrook.maple_tree_area",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Bears",
        "roomArea": "Everbrook",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.wolf",
        "monster": "wolf",
        "sourceArea": "Frostvale",
        "roomId": "frostvale.northern_fields",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Wolves",
        "roomArea": "Frostvale",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.lochness_monster",
        "monster": "lochness_monster",
        "sourceArea": "Beach",
        "roomId": "dock_haven.lochness",
        "relation": "minigame_access",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Lochness minigame",
        "roomArea": "Dock Haven",
        "matchesBootstrapArea": false,
        "note": "Current room-page evidence places/mentions this entity outside the monster bootstrap record's broad area label; both are retained."
      },
      {
        "monsterId": "monster.flufflare",
        "monster": "flufflare",
        "sourceArea": "Hell",
        "roomId": "hell.layer1",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "2 Flufflares",
        "roomArea": "Hell",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.iceflare",
        "monster": "iceflare",
        "sourceArea": "Frostvale",
        "roomId": "frostvale.cave1",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Iceflares",
        "roomArea": "Frostvale",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.ent",
        "monster": "ent",
        "sourceArea": "Omboko",
        "roomId": "omboko.ents",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Ent",
        "roomArea": "Omboko",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.lizard",
        "monster": "lizard",
        "sourceArea": "Volcano",
        "roomId": "volcano.lizards",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Volcanic Lizards",
        "roomArea": "Volcano",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.goblin",
        "monster": "goblin",
        "sourceArea": "Sewer",
        "roomId": "sewer.gold_ore",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "2 aggressive Goblins",
        "roomArea": "Sewer",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.goblin",
        "monster": "goblin",
        "sourceArea": "Sewer",
        "roomId": "sewer.goblins",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "4 aggressive Goblins",
        "roomArea": "Sewer",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.bat",
        "monster": "bat",
        "sourceArea": "Volcano Cave",
        "roomId": "omboko.dungeon_bats",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Bats",
        "roomArea": "Omboko",
        "matchesBootstrapArea": false,
        "note": "Current room-page evidence places/mentions this entity outside the monster bootstrap record's broad area label; both are retained."
      },
      {
        "monsterId": "monster.ogre",
        "monster": "ogre",
        "sourceArea": "Mystic Vale",
        "roomId": "mystic_vale.ogres",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Ogres",
        "roomArea": "Mystic Vale",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.ice_ogre",
        "monster": "ice_ogre",
        "sourceArea": "Frostvale",
        "roomId": "frostvale.mount",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Ice Ogre",
        "roomArea": "Frostvale",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.ice_ogre",
        "monster": "ice_ogre",
        "sourceArea": "Frostvale",
        "roomId": "frostvale.cave2",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Ice Ogres",
        "roomArea": "Frostvale",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.demon",
        "monster": "demon",
        "sourceArea": "Sewer",
        "roomId": "sewer.entrance",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Demon",
        "roomArea": "Sewer",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.baby_silkfang",
        "monster": "baby_silkfang",
        "sourceArea": "Sewer",
        "roomId": "sewer.silkfang",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Baby Silkfang",
        "roomArea": "Sewer",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.spider",
        "monster": "spider",
        "sourceArea": "Sewer",
        "roomId": "sewer.entrance",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Spiders",
        "roomArea": "Sewer",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.spider",
        "monster": "spider",
        "sourceArea": "Sewer",
        "roomId": "everbrook.mini_sewer",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Spiders",
        "roomArea": "Everbrook",
        "matchesBootstrapArea": false,
        "note": "Current room-page evidence places/mentions this entity outside the monster bootstrap record's broad area label; both are retained."
      },
      {
        "monsterId": "monster.spider",
        "monster": "spider",
        "sourceArea": "Sewer",
        "roomId": "everbrook.fishermans_shop",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Spiders",
        "roomArea": "Everbrook",
        "matchesBootstrapArea": false,
        "note": "Current room-page evidence places/mentions this entity outside the monster bootstrap record's broad area label; both are retained."
      },
      {
        "monsterId": "monster.giant_spider",
        "monster": "giant_spider",
        "sourceArea": "Sewer",
        "roomId": "sewer.giant_spiders",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Giant Spiders",
        "roomArea": "Sewer",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.giant_spider",
        "monster": "giant_spider",
        "sourceArea": "Sewer",
        "roomId": "beach.quicksand_giant_spiders",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Giant Spiders",
        "roomArea": "Beach",
        "matchesBootstrapArea": false,
        "note": "Current room-page evidence places/mentions this entity outside the monster bootstrap record's broad area label; both are retained."
      },
      {
        "monsterId": "monster.bully_thief",
        "monster": "bully_thief",
        "sourceArea": "Thieves Hideout",
        "roomId": "thieves_hideout.fat_guy",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Bully Thief",
        "roomArea": "Thieves Hideout",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.bully_thief",
        "monster": "bully_thief",
        "sourceArea": "Thieves Hideout",
        "roomId": "thieves_hideout.basement",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Barbed Wire",
        "roomArea": "Thieves Hideout",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.crab",
        "monster": "crab",
        "sourceArea": "Beach",
        "roomId": "beach.quicksand",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Crab",
        "roomArea": "Beach",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.crab",
        "monster": "crab",
        "sourceArea": "Beach",
        "roomId": "beach.quicksand_cave",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Crabs",
        "roomArea": "Beach",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.crab",
        "monster": "crab",
        "sourceArea": "Beach",
        "roomId": "beach.quicksand_crabs",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Crabs",
        "roomArea": "Beach",
        "matchesBootstrapArea": true
      },
      {
        "monsterId": "monster.crab",
        "monster": "crab",
        "sourceArea": "Beach",
        "roomId": "pirate_isle.beach",
        "relation": "present",
        "authority": "derived",
        "confidence": "high",
        "evidenceFeature": "Crab",
        "roomArea": "Pirate Isle",
        "matchesBootstrapArea": false,
        "note": "Current room-page evidence places/mentions this entity outside the monster bootstrap record's broad area label; both are retained."
      }
    ],
    "questProcedureLinks": [
      {
        "questId": "quest.lost_cat",
        "quest": "Lost Cat",
        "step": 1,
        "text": "Speak to the Crying Lady in Everbrook.",
        "areaIds": [
          "area.everbrook"
        ],
        "roomIds": [
          "everbrook.cemetery"
        ],
        "npcIds": [
          "everbrook.crying_girl"
        ],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.lost_cat",
        "quest": "Lost Cat",
        "step": 2,
        "text": "Find the cat north of the Mayor's House.",
        "areaIds": [
          "area.everbrook"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "The cat is described relative to Mayor's House, but the exact adjacent room is not modeled."
      },
      {
        "questId": "quest.lost_cat",
        "quest": "Lost Cat",
        "step": 3,
        "text": "Have a Milk Bucket to lure it back.",
        "areaIds": [
          "area.everbrook"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial"
      },
      {
        "questId": "quest.lost_cat",
        "quest": "Lost Cat",
        "step": 4,
        "text": "Return the cat to the Crying Lady.",
        "areaIds": [
          "area.everbrook"
        ],
        "roomIds": [
          "everbrook.cemetery"
        ],
        "npcIds": [
          "everbrook.crying_girl"
        ],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.drain_key",
        "quest": "Drain Key",
        "step": 1,
        "text": "Speak to Mary at the Cow Pen.",
        "areaIds": [
          "area.everbrook"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Mary/Cow Pen is not a distinct structured room in v1.2."
      },
      {
        "questId": "quest.drain_key",
        "quest": "Drain Key",
        "step": 2,
        "text": "Pour a Water Bucket down the drain and collect the key from the mini-sewer.",
        "areaIds": [
          "area.everbrook"
        ],
        "roomIds": [
          "everbrook.mini_sewer"
        ],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.drain_key",
        "quest": "Drain Key",
        "step": 3,
        "text": "Speak to Bob the Farmer after Mary says it is the wrong key.",
        "areaIds": [
          "area.everbrook"
        ],
        "roomIds": [
          "everbrook.cow_farm"
        ],
        "npcIds": [
          "everbrook.bob_farmer"
        ],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.drain_key",
        "quest": "Drain Key",
        "step": 4,
        "text": "Take the rusty key to the Sewer's Silkfang area and use the acid puddle.",
        "areaIds": [
          "area.sewer"
        ],
        "roomIds": [
          "sewer.silkfang"
        ],
        "npcIds": [],
        "monsterIds": [
          "monster.silkfang"
        ],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.drain_key",
        "quest": "Drain Key",
        "step": 5,
        "text": "Return the cleaned key to Mary.",
        "areaIds": [
          "area.everbrook"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Mary/Cow Pen is not a distinct structured room in v1.2."
      },
      {
        "questId": "quest.heating_homes",
        "quest": "Heating Homes",
        "step": 1,
        "text": "Speak to Minty in the starting-area house.",
        "areaIds": [
          "area.everbrook"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Starting-area house is not modeled as a separate room."
      },
      {
        "questId": "quest.heating_homes",
        "quest": "Heating Homes",
        "step": 2,
        "text": "Put 1 Normal Log and 1 Coal Ore into the fireplace.",
        "areaIds": [
          "area.everbrook"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Fireplace is inside the starting-area house, which is not separately modeled."
      },
      {
        "questId": "quest.chicken_slaughter",
        "quest": "Chicken Slaughter",
        "step": 1,
        "text": "Speak to the Chicken Farmer.",
        "areaIds": [
          "area.everbrook"
        ],
        "roomIds": [
          "everbrook.chicken_pen"
        ],
        "npcIds": [
          "everbrook.chicken_farmer"
        ],
        "monsterIds": [
          "monster.chicken"
        ],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.chicken_slaughter",
        "quest": "Chicken Slaughter",
        "step": 2,
        "text": "Kill 5 Chickens.",
        "areaIds": [
          "area.everbrook"
        ],
        "roomIds": [
          "everbrook.chicken_pen"
        ],
        "npcIds": [],
        "monsterIds": [
          "monster.chicken"
        ],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.chicken_slaughter",
        "quest": "Chicken Slaughter",
        "step": 3,
        "text": "Speak to the Chicken Farmer again.",
        "areaIds": [
          "area.everbrook"
        ],
        "roomIds": [
          "everbrook.chicken_pen"
        ],
        "npcIds": [
          "everbrook.chicken_farmer"
        ],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.shrimp_sandwich",
        "quest": "Shrimp Sandwich",
        "step": 1,
        "text": "Speak to the Chef in Everbrook.",
        "areaIds": [
          "area.everbrook"
        ],
        "roomIds": [
          "everbrook.chefs_house_inside"
        ],
        "npcIds": [
          "everbrook.chef"
        ],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.shrimp_sandwich",
        "quest": "Shrimp Sandwich",
        "step": 2,
        "text": "Deliver 5 Cooked Shrimp and 1 Bread.",
        "areaIds": [
          "area.everbrook"
        ],
        "roomIds": [
          "everbrook.chefs_house_inside"
        ],
        "npcIds": [
          "everbrook.chef"
        ],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.sewer_doll",
        "quest": "Sewer Doll",
        "step": 1,
        "text": "Speak to the Crying Girl in Everbrook Cemetery.",
        "areaIds": [
          "area.everbrook"
        ],
        "roomIds": [
          "everbrook.cemetery"
        ],
        "npcIds": [
          "everbrook.crying_girl"
        ],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.sewer_doll",
        "quest": "Sewer Doll",
        "step": 2,
        "text": "Find the doll in the Sewer pipe directly above the water.",
        "areaIds": [
          "area.sewer"
        ],
        "roomIds": [
          "sewer.gold_ore"
        ],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.sewer_doll",
        "quest": "Sewer Doll",
        "step": 3,
        "text": "Return it to the Crying Girl.",
        "areaIds": [
          "area.everbrook"
        ],
        "roomIds": [
          "everbrook.cemetery"
        ],
        "npcIds": [
          "everbrook.crying_girl"
        ],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.let_there_be_light_2",
        "quest": "Let There Be Light 2",
        "step": 1,
        "text": "Bring a Beanstalk Seed to Zapto in Mystic Vale.",
        "areaIds": [
          "area.mystic_vale"
        ],
        "roomIds": [
          "mystic_vale.farm"
        ],
        "npcIds": [
          "mystic_vale.zapto"
        ],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.let_there_be_light_2",
        "quest": "Let There Be Light 2",
        "step": 2,
        "text": "Use the Water Shrine in Dock Haven to make it a Soaked Beanstalk Seed.",
        "areaIds": [
          "area.dock_haven"
        ],
        "roomIds": [
          "dock_haven.dock"
        ],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "high",
        "note": "v1.2 room model records the Water Orb altar at Dock Haven Dock."
      },
      {
        "questId": "quest.let_there_be_light_2",
        "quest": "Let There Be Light 2",
        "step": 3,
        "text": "Return to Zapto.",
        "areaIds": [
          "area.mystic_vale"
        ],
        "roomIds": [
          "mystic_vale.farm"
        ],
        "npcIds": [
          "mystic_vale.zapto"
        ],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.let_there_be_light_2",
        "quest": "Let There Be Light 2",
        "step": 4,
        "text": "During cloudy weather, use the soaked seed near the unusual clouds at the Everbrook Cow Farm.",
        "areaIds": [
          "area.everbrook"
        ],
        "roomIds": [
          "everbrook.cow_farm"
        ],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.healing_torches",
        "quest": "Healing Torches",
        "step": 1,
        "text": "Speak to the Sick Ent in Omboko.",
        "areaIds": [
          "area.omboko"
        ],
        "roomIds": [
          "omboko.sick_ent"
        ],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.healing_torches",
        "quest": "Healing Torches",
        "step": 2,
        "text": "Give the Paper-Maker a Piece of Paper to learn the Wooden Heart recipe.",
        "areaIds": [
          "area.omboko"
        ],
        "roomIds": [
          "omboko.village"
        ],
        "npcIds": [
          "omboko.paper_maker"
        ],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.healing_torches",
        "quest": "Healing Torches",
        "step": 3,
        "text": "Craft and return a Wooden Heart.",
        "areaIds": [
          "area.omboko"
        ],
        "roomIds": [
          "omboko.village"
        ],
        "npcIds": [
          "omboko.paper_maker"
        ],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.healing_torches",
        "quest": "Healing Torches",
        "step": 4,
        "text": "Wait for a global bonfire tick to make the heart Sacred.",
        "areaIds": [
          "area.omboko"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Global bonfire tick is not tied to a single room by the normalized quest text."
      },
      {
        "questId": "quest.healing_torches",
        "quest": "Healing Torches",
        "step": 5,
        "text": "Use Matches on the spawned bank torches.",
        "areaIds": [
          "area.omboko"
        ],
        "roomIds": [
          "omboko.bank"
        ],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "medium",
        "note": "Omboko Bank is the local bank room in the world model; the quest text says bank torches."
      },
      {
        "questId": "quest.thieves_hideout_1",
        "quest": "Thieves Hideout",
        "step": 1,
        "text": "Speak to the first Brown Thief.",
        "areaIds": [
          "area.thieves_hideout"
        ],
        "roomIds": [
          "thieves_hideout.main_room"
        ],
        "npcIds": [
          "thieves_hideout.brown_thief"
        ],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.thieves_hideout_1",
        "quest": "Thieves Hideout",
        "step": 2,
        "text": "Bring a Bear Head.",
        "areaIds": [
          "area.thieves_hideout"
        ],
        "roomIds": [
          "thieves_hideout.main_room"
        ],
        "npcIds": [
          "thieves_hideout.brown_thief"
        ],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.thieves_hideout_1",
        "quest": "Thieves Hideout",
        "step": 3,
        "text": "Bring a Tiger Head.",
        "areaIds": [
          "area.thieves_hideout"
        ],
        "roomIds": [
          "thieves_hideout.main_room"
        ],
        "npcIds": [
          "thieves_hideout.brown_thief"
        ],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.thieves_hideout_2",
        "quest": "Thieves Hideout 2",
        "step": 1,
        "text": "Speak to the Mini Thief in Omboko and receive his picture.",
        "areaIds": [
          "area.omboko"
        ],
        "roomIds": [
          "omboko.mini_thief"
        ],
        "npcIds": [
          "omboko.mini_thief_npc"
        ],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.thieves_hideout_2",
        "quest": "Thieves Hideout 2",
        "step": 2,
        "text": "Go to the Thieves Hideout and show the picture to the Mini Thief's father guarding the artifact room.",
        "areaIds": [
          "area.thieves_hideout"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "The father's exact room is not separately identified in the current room model."
      },
      {
        "questId": "quest.thieves_hideout_2",
        "quest": "Thieves Hideout 2",
        "step": 3,
        "text": "Enter and defeat the Demon.",
        "areaIds": [
          "area.thieves_hideout"
        ],
        "roomIds": [
          "thieves_hideout.demon"
        ],
        "npcIds": [],
        "monsterIds": [
          "monster.demon"
        ],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.thieves_hideout_2",
        "quest": "Thieves Hideout 2",
        "step": 4,
        "text": "Take the artifact.",
        "areaIds": [
          "area.thieves_hideout"
        ],
        "roomIds": [
          "thieves_hideout.demon"
        ],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.thieves_hideout_2",
        "quest": "Thieves Hideout 2",
        "step": 5,
        "text": "Return it to the Mini Thief in Omboko.",
        "areaIds": [
          "area.omboko"
        ],
        "roomIds": [
          "omboko.mini_thief"
        ],
        "npcIds": [
          "omboko.mini_thief_npc"
        ],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.thieves_hideout_3",
        "quest": "Thieves Hideout 3",
        "step": 1,
        "text": "Speak to the Bully Thief on the second floor.",
        "areaIds": [
          "area.thieves_hideout"
        ],
        "roomIds": [],
        "npcIds": [
          "thieves_hideout.bully_thief"
        ],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "conflict",
        "note": "Quest procedure says second floor while the v1.2 NPC record places Bully Thief in Thief Fat Guy; preserve the conflict."
      },
      {
        "questId": "quest.thieves_hideout_3",
        "quest": "Thieves Hideout 3",
        "step": 2,
        "text": "Bake/acquire a Cake and give it to him.",
        "areaIds": [
          "area.thieves_hideout"
        ],
        "roomIds": [],
        "npcIds": [
          "thieves_hideout.bully_thief"
        ],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "conflict",
        "note": "Turn-in is to Bully Thief; current room placement conflicts with the procedure wording."
      },
      {
        "questId": "quest.let_there_be_light",
        "quest": "Let There Be Light",
        "step": 1,
        "text": "Speak to Zapto in Mystic Vale.",
        "areaIds": [
          "area.mystic_vale"
        ],
        "roomIds": [
          "mystic_vale.farm"
        ],
        "npcIds": [
          "mystic_vale.zapto"
        ],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.let_there_be_light",
        "quest": "Let There Be Light",
        "step": 2,
        "text": "Complete the mayor-approval sequence between Mystic Vale and Everbrook.",
        "areaIds": [
          "area.mystic_vale",
          "area.everbrook"
        ],
        "roomIds": [
          "mystic_vale.mayor_house",
          "everbrook.mayors_house"
        ],
        "npcIds": [
          "mystic_vale.mayor",
          "everbrook.mayor"
        ],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "medium",
        "note": "Procedure describes a mayor-approval sequence between both towns."
      },
      {
        "questId": "quest.let_there_be_light",
        "quest": "Let There Be Light",
        "step": 3,
        "text": "Deliver 500 Glass and 50 Iron Bars.",
        "areaIds": [
          "area.mystic_vale"
        ],
        "roomIds": [
          "mystic_vale.farm"
        ],
        "npcIds": [
          "mystic_vale.zapto"
        ],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "medium",
        "note": "Structured as the likely quest hand-in point because Zapto starts the sequence; retain as medium confidence."
      },
      {
        "questId": "quest.the_3_gemstones",
        "quest": "The 3 Gemstones",
        "step": 1,
        "text": "Speak to the Dwarf in the Mining Area; he asks for gemstones connected to Beach, Omboko, and Mystic Vale.",
        "areaIds": [
          "area.everbrook"
        ],
        "roomIds": [
          "everbrook.mining_entrance"
        ],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "medium",
        "note": "The procedure calls this the Mining Area; v1.2 models Everbrook Mining Entrance."
      },
      {
        "questId": "quest.the_3_gemstones",
        "quest": "The 3 Gemstones",
        "step": 2,
        "text": "Speak to the Research Dwarf in each of the three regions, then report back to the Mining Dwarf.",
        "areaIds": [
          "area.beach",
          "area.omboko",
          "area.mystic_vale"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "All three regions are known, but not every Research Dwarf is modeled with a verified room identity."
      },
      {
        "questId": "quest.the_3_gemstones",
        "quest": "The 3 Gemstones",
        "step": 3,
        "text": "Return to each Research Dwarf's room and dig as directed.",
        "areaIds": [
          "area.beach",
          "area.omboko",
          "area.mystic_vale"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial"
      },
      {
        "questId": "quest.the_3_gemstones",
        "quest": "The 3 Gemstones",
        "step": 4,
        "text": "In Omboko, defeat the Tiger guarding the gemstone and obtain/mine the gemstone fragment.",
        "areaIds": [
          "area.omboko"
        ],
        "roomIds": [
          "omboko.tigers"
        ],
        "npcIds": [],
        "monsterIds": [
          "monster.tiger"
        ],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.the_3_gemstones",
        "quest": "The 3 Gemstones",
        "step": 5,
        "text": "In Mystic Vale, defeat the Red Mage guarding the gemstone and obtain/mine the gemstone fragment.",
        "areaIds": [
          "area.mystic_vale"
        ],
        "roomIds": [
          "mystic_vale.red_mages"
        ],
        "npcIds": [],
        "monsterIds": [
          "monster.red_mage"
        ],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.the_3_gemstones",
        "quest": "The 3 Gemstones",
        "step": 6,
        "text": "At the Beach, defeat the Crocodile guarding the gemstone and obtain/mine the gemstone fragment.",
        "areaIds": [
          "area.beach"
        ],
        "roomIds": [
          "beach.boat"
        ],
        "npcIds": [],
        "monsterIds": [
          "monster.crocodile"
        ],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.the_3_gemstones",
        "quest": "The 3 Gemstones",
        "step": 7,
        "text": "Return/complete the hand-in sequence with the Mining Dwarf to unlock the documented gemstone/mine rewards.",
        "areaIds": [
          "area.everbrook"
        ],
        "roomIds": [
          "everbrook.mining_entrance"
        ],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "medium"
      },
      {
        "questId": "quest.saving_marin",
        "quest": "Saving Marin",
        "step": 1,
        "text": "At Dock Haven, speak to the Watcher underneath the bank and accept the swim to Pirate Isle; unequip all gear before swimming.",
        "areaIds": [
          "area.dock_haven"
        ],
        "roomIds": [
          "dock_haven.centre"
        ],
        "npcIds": [
          "dock_haven.watcher"
        ],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "medium",
        "note": "Procedure says underneath the bank; v1.2 currently places Watcher in Dock Haven Centre."
      },
      {
        "questId": "quest.saving_marin",
        "quest": "Saving Marin",
        "step": 2,
        "text": "On Pirate Isle, go south from the beach into the quicksand, speak to Marin, and agree to help.",
        "areaIds": [
          "area.pirate_isle"
        ],
        "roomIds": [
          "pirate_isle.quicksand"
        ],
        "npcIds": [
          "pirate_isle.marin"
        ],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.saving_marin",
        "quest": "Saving Marin",
        "step": 3,
        "text": "Return to Dock Haven, take a Shovel from the bank, and give it to the Fishing Pirate in the room to the left.",
        "areaIds": [
          "area.dock_haven"
        ],
        "roomIds": [
          "dock_haven.bank"
        ],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "The bank/shovel part is linked; the Fishing Pirate's separate room is not modeled."
      },
      {
        "questId": "quest.saving_marin",
        "quest": "Saving Marin",
        "step": 4,
        "text": "Return to Pirate Isle, loot 1 Glass, then loot a Shovel one screen south.",
        "areaIds": [
          "area.pirate_isle"
        ],
        "roomIds": [
          "pirate_isle.beach"
        ],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Infinite Glass is explicitly modeled on Pirate Beach; the shovel one screen south is not separately modeled."
      },
      {
        "questId": "quest.saving_marin",
        "quest": "Saving Marin",
        "step": 5,
        "text": "Use the Worship Dig Anywhere ability with the shovel to get Gunpowder; combine Gunpowder and Glass into a Vial of Gunpowder.",
        "areaIds": [
          "area.pirate_isle"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial"
      },
      {
        "questId": "quest.saving_marin",
        "quest": "Saving Marin",
        "step": 6,
        "text": "Use the Vial of Gunpowder on the broken board east of the pirates.",
        "areaIds": [
          "area.pirate_isle"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial"
      },
      {
        "questId": "quest.saving_marin",
        "quest": "Saving Marin",
        "step": 7,
        "text": "Follow the quest's explosive/tunnel sequence to open the route to Marin.",
        "areaIds": [
          "area.pirate_isle"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial"
      },
      {
        "questId": "quest.saving_marin",
        "quest": "Saving Marin",
        "step": 8,
        "text": "Reach Marin through the tunnel and help him escape.",
        "areaIds": [
          "area.pirate_isle"
        ],
        "roomIds": [
          "pirate_isle.quicksand"
        ],
        "npcIds": [
          "pirate_isle.marin"
        ],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "medium"
      },
      {
        "questId": "quest.saving_marin",
        "quest": "Saving Marin",
        "step": 9,
        "text": "Return to Dock Haven; speak to the Retired Pirate and then the Watcher to finish.",
        "areaIds": [
          "area.pirate_isle",
          "area.dock_haven"
        ],
        "roomIds": [
          "pirate_isle.ship_top",
          "dock_haven.centre"
        ],
        "npcIds": [
          "pirate_isle.retired_pirate",
          "dock_haven.watcher"
        ],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.volcano_bridge",
        "quest": "Volcano Bridge",
        "step": 1,
        "text": "Speak to Volcanic Rocky near the lava pit in the Volcano.",
        "areaIds": [
          "area.volcano"
        ],
        "roomIds": [
          "volcano.bridge"
        ],
        "npcIds": [
          "volcano.volcanic_rocky"
        ],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.volcano_bridge",
        "quest": "Volcano Bridge",
        "step": 2,
        "text": "Bring him a Cactus Log for testing.",
        "areaIds": [
          "area.volcano"
        ],
        "roomIds": [
          "volcano.bridge"
        ],
        "npcIds": [
          "volcano.volcanic_rocky"
        ],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.volcano_bridge",
        "quest": "Volcano Bridge",
        "step": 3,
        "text": "Craft 100 Cactus Planks and deliver them; the test demonstrates that untreated planks burn.",
        "areaIds": [
          "area.volcano"
        ],
        "roomIds": [
          "volcano.bridge"
        ],
        "npcIds": [
          "volcano.volcanic_rocky"
        ],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.volcano_bridge",
        "quest": "Volcano Bridge",
        "step": 4,
        "text": "Speak to the Everbrook Chef about oil coating.",
        "areaIds": [
          "area.everbrook"
        ],
        "roomIds": [
          "everbrook.chefs_house_inside"
        ],
        "npcIds": [
          "everbrook.chef"
        ],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.volcano_bridge",
        "quest": "Volcano Bridge",
        "step": 5,
        "text": "Bring the Chef 100 Cactus Planks and Nethergrass from the Volcanic Rocky room so the planks can be coated.",
        "areaIds": [
          "area.everbrook",
          "area.volcano"
        ],
        "roomIds": [
          "everbrook.chefs_house_inside",
          "volcano.bridge"
        ],
        "npcIds": [
          "everbrook.chef",
          "volcano.volcanic_rocky"
        ],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "medium",
        "note": "Step spans the Chef hand-in and Nethergrass source room."
      },
      {
        "questId": "quest.volcano_bridge",
        "quest": "Volcano Bridge",
        "step": 6,
        "text": "Return to the Volcano with Pyro Gloves, equip the gloves, and build the bridge.",
        "areaIds": [
          "area.volcano"
        ],
        "roomIds": [
          "volcano.bridge"
        ],
        "npcIds": [
          "volcano.volcanic_rocky"
        ],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "medium"
      },
      {
        "questId": "quest.mount_frostvale",
        "quest": "Mount Frostvale",
        "step": 1,
        "text": "Speak to Frostboot in Frostvale about the key to Mount Frostvale.",
        "areaIds": [
          "area.frostvale"
        ],
        "roomIds": [
          "frostvale.river"
        ],
        "npcIds": [
          "frostvale.frostboot"
        ],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.mount_frostvale",
        "quest": "Mount Frostvale",
        "step": 2,
        "text": "Speak to the Mayor for approval.",
        "areaIds": [
          "area.frostvale"
        ],
        "roomIds": [
          "frostvale.mayors_house"
        ],
        "npcIds": [
          "frostvale.mayor"
        ],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.mount_frostvale",
        "quest": "Mount Frostvale",
        "step": 3,
        "text": "Fill the Mayor's log piles with 100 Oak Logs, 100 Mangrove Logs, and 100 Haunted Logs.",
        "areaIds": [
          "area.frostvale"
        ],
        "roomIds": [
          "frostvale.mayors_house"
        ],
        "npcIds": [
          "frostvale.mayor"
        ],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.mount_frostvale",
        "quest": "Mount Frostvale",
        "step": 4,
        "text": "Bring the Mayor a Dragonfruit Pie of any quality.",
        "areaIds": [
          "area.frostvale"
        ],
        "roomIds": [
          "frostvale.mayors_house"
        ],
        "npcIds": [
          "frostvale.mayor"
        ],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.mount_frostvale",
        "quest": "Mount Frostvale",
        "step": 5,
        "text": "Sign the Mayor's waiver.",
        "areaIds": [
          "area.frostvale"
        ],
        "roomIds": [
          "frostvale.mayors_house"
        ],
        "npcIds": [
          "frostvale.mayor"
        ],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.mount_frostvale",
        "quest": "Mount Frostvale",
        "step": 6,
        "text": "Return to Frostboot, collect the key, and unlock the Mount Frostvale door.",
        "areaIds": [
          "area.frostvale"
        ],
        "roomIds": [
          "frostvale.river",
          "frostvale.northern_entrance"
        ],
        "npcIds": [
          "frostvale.frostboot"
        ],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "high"
      },
      {
        "questId": "quest.desert_island",
        "quest": "Desert Island",
        "step": 1,
        "text": "Speak to the drunken pirate in the Jafa Tavern, then speak to the Pirate Ship Captain and accept the Desert Island voyage.",
        "areaIds": [
          "area.desert"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Desert internal-room model is intentionally partial."
      },
      {
        "questId": "quest.desert_island",
        "quest": "Desert Island",
        "step": 2,
        "text": "On the boat, defeat the Stormy Clouds; after the boat is damaged, repair the three holes using 30 Mangrove Planks and 300 Nails.",
        "areaIds": [
          "area.desert"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Desert internal-room model is intentionally partial."
      },
      {
        "questId": "quest.desert_island",
        "quest": "Desert Island",
        "step": 3,
        "text": "At the island, bank all gear and inventory before swimming ashore.",
        "areaIds": [
          "area.desert"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Desert internal-room model is intentionally partial."
      },
      {
        "questId": "quest.desert_island",
        "quest": "Desert Island",
        "step": 4,
        "text": "Follow the island survival route: defeat a Small Cloud, descend the ladder, take the Bronze Axe, defeat a beetle and take Bait.",
        "areaIds": [
          "area.desert"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Desert internal-room model is intentionally partial."
      },
      {
        "questId": "quest.desert_island",
        "quest": "Desert Island",
        "step": 5,
        "text": "Cut 43 Logs for the Bow, shafts, bridge repair, and a fire.",
        "areaIds": [
          "area.desert"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Desert internal-room model is intentionally partial."
      },
      {
        "questId": "quest.desert_island",
        "quest": "Desert Island",
        "step": 6,
        "text": "Loot Earth Orbs and a Pickaxe; mine the required Coal/Copper; restore Worship Points.",
        "areaIds": [
          "area.desert"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Desert internal-room model is intentionally partial."
      },
      {
        "questId": "quest.desert_island",
        "quest": "Desert Island",
        "step": 7,
        "text": "Kill Chickens for feathers, repair the bridge, collect a Fishing Rod, and kill Spiders for String.",
        "areaIds": [
          "area.desert"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Desert internal-room model is intentionally partial."
      },
      {
        "questId": "quest.desert_island",
        "quest": "Desert Island",
        "step": 8,
        "text": "Loot an Unpowered Orb and fish Sardines.",
        "areaIds": [
          "area.desert"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Desert internal-room model is intentionally partial."
      },
      {
        "questId": "quest.desert_island",
        "quest": "Desert Island",
        "step": 9,
        "text": "Sell one Earth Orb remotely, buy Matches, light a fire, cook/eat Sardines, then obtain the Fire Orb.",
        "areaIds": [
          "area.desert"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Desert internal-room model is intentionally partial."
      },
      {
        "questId": "quest.desert_island",
        "quest": "Desert Island",
        "step": 10,
        "text": "Smelt a Bronze Bar, forge Bronze Arrowheads, and craft Bronze Arrows.",
        "areaIds": [
          "area.desert"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Desert internal-room model is intentionally partial."
      },
      {
        "questId": "quest.desert_island",
        "quest": "Desert Island",
        "step": 11,
        "text": "Defeat Splashy and craft a Damage Orb 1.",
        "areaIds": [
          "area.desert"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Desert internal-room model is intentionally partial."
      },
      {
        "questId": "quest.desert_island",
        "quest": "Desert Island",
        "step": 12,
        "text": "Place the required orbs in the tombs, descend the ladder, take the shovel, then return and dig by the pirate.",
        "areaIds": [
          "area.desert"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Desert internal-room model is intentionally partial."
      },
      {
        "questId": "quest.desert_island",
        "quest": "Desert Island",
        "step": 13,
        "text": "Loot the map and chest and return them to the Jafa bar to complete the route.",
        "areaIds": [
          "area.desert"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Desert internal-room model is intentionally partial."
      },
      {
        "questId": "quest.desert_temple",
        "quest": "Desert Temple",
        "step": 1,
        "text": "Bring 3,500 Coins and 3 Beers to the Supplier's Store west of Jafa Outpost bank.",
        "areaIds": [
          "area.desert"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Desert internal-room model is intentionally partial."
      },
      {
        "questId": "quest.desert_temple",
        "quest": "Desert Temple",
        "step": 2,
        "text": "Pay 3,000 Coins for a Water Bucket and give it to the Dehydrated Ali outside.",
        "areaIds": [
          "area.desert"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Desert internal-room model is intentionally partial."
      },
      {
        "questId": "quest.desert_temple",
        "quest": "Desert Temple",
        "step": 3,
        "text": "Follow the Cousin dialogue to the Ali at the Everbrook Well, then return to the Supplier.",
        "areaIds": [
          "area.everbrook",
          "area.desert"
        ],
        "roomIds": [
          "everbrook.mining_entrance"
        ],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "medium",
        "note": "Step includes the Ali at the Everbrook Well; v1.2 models a well at Everbrook Mining Entrance. Desert room coverage remains partial."
      },
      {
        "questId": "quest.desert_temple",
        "quest": "Desert Temple",
        "step": 4,
        "text": "Use the beers to get the Supplier drunk, ask for a Water Bucket, and obtain the Temple door key he mistakenly gives you.",
        "areaIds": [
          "area.desert"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Desert internal-room model is intentionally partial."
      },
      {
        "questId": "quest.desert_temple",
        "quest": "Desert Temple",
        "step": 5,
        "text": "Enter the Desert Temple and progress through the statue, beetle, mirror, Angry Eye, and Black Statue rooms; collect keys from the relevant chests.",
        "areaIds": [
          "area.desert"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Desert internal-room model is intentionally partial."
      },
      {
        "questId": "quest.desert_temple",
        "quest": "Desert Temple",
        "step": 6,
        "text": "In the water/fire room, use the levers to reveal the route; solve the later lever combination using the hanging-fire clue.",
        "areaIds": [
          "area.desert"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Desert internal-room model is intentionally partial."
      },
      {
        "questId": "quest.desert_temple",
        "quest": "Desert Temple",
        "step": 7,
        "text": "Solve the chest puzzle in order 2, 1, 3, 4 to obtain a key, and survive the multi-Angry-Eye section for another key.",
        "areaIds": [
          "area.desert"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Desert internal-room model is intentionally partial."
      },
      {
        "questId": "quest.desert_temple",
        "quest": "Desert Temple",
        "step": 8,
        "text": "Continue through the Black Statues and Zebeth route; locate the hidden researcher and recover the key near Zebeth's earlier position.",
        "areaIds": [
          "area.desert"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Desert internal-room model is intentionally partial."
      },
      {
        "questId": "quest.desert_temple",
        "quest": "Desert Temple",
        "step": 9,
        "text": "At the keypad door enter 1988; attempt the lever and get sent to jail.",
        "areaIds": [
          "area.desert"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Desert internal-room model is intentionally partial."
      },
      {
        "questId": "quest.desert_temple",
        "quest": "Desert Temple",
        "step": 10,
        "text": "Pick your cell lock, pick the adjacent cell, and take the dead Ali's key.",
        "areaIds": [
          "area.desert"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Desert internal-room model is intentionally partial."
      },
      {
        "questId": "quest.desert_temple",
        "quest": "Desert Temple",
        "step": 11,
        "text": "Defeat 10 Poison Alis to continue; use the pickaxe wall shortcut if useful.",
        "areaIds": [
          "area.desert"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Desert internal-room model is intentionally partial."
      },
      {
        "questId": "quest.desert_temple",
        "quest": "Desert Temple",
        "step": 12,
        "text": "Return through the researcher/water-patch route, reach the Supplier confrontation, defeat the Supplier, and pull the lever to complete the quest.",
        "areaIds": [
          "area.desert"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Desert internal-room model is intentionally partial."
      },
      {
        "questId": "quest.desert_temple_2",
        "quest": "Desert Temple 2",
        "step": 1,
        "text": "Complete the Desert Bundle to unlock the Waterfall Entrance.",
        "areaIds": [
          "area.desert"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Desert/Rogue Crypt internal-room model is not complete in v1.2."
      },
      {
        "questId": "quest.desert_temple_2",
        "quest": "Desert Temple 2",
        "step": 2,
        "text": "Use the entrance and activate the lever that opens access to the researcher in the Desert Temple.",
        "areaIds": [
          "area.desert"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Desert/Rogue Crypt internal-room model is not complete in v1.2."
      },
      {
        "questId": "quest.desert_temple_2",
        "quest": "Desert Temple 2",
        "step": 3,
        "text": "Speak to the researcher; he sends you to find a second researcher in a randomly selected Rogue Crypt.",
        "areaIds": [
          "area.desert"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Desert/Rogue Crypt internal-room model is not complete in v1.2."
      },
      {
        "questId": "quest.desert_temple_2",
        "quest": "Desert Temple 2",
        "step": 4,
        "text": "Run Rogue Crypts until you find and speak to that researcher.",
        "areaIds": [
          "area.desert"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Desert/Rogue Crypt internal-room model is not complete in v1.2."
      },
      {
        "questId": "quest.desert_temple_2",
        "quest": "Desert Temple 2",
        "step": 5,
        "text": "Return to the first researcher; he tells you to dig deeper in the crypt.",
        "areaIds": [
          "area.desert"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Desert/Rogue Crypt internal-room model is not complete in v1.2."
      },
      {
        "questId": "quest.desert_temple_2",
        "quest": "Desert Temple 2",
        "step": 6,
        "text": "Go to Crypt 4 (the room with four skeletons and a plant) and dig inside it to enter the deeper room.",
        "areaIds": [
          "area.desert"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Desert/Rogue Crypt internal-room model is not complete in v1.2."
      },
      {
        "questId": "quest.desert_temple_2",
        "quest": "Desert Temple 2",
        "step": 7,
        "text": "Dig in front of the large purple cross to trigger a fight with three Deep Rogues at the same time; defeat all three.",
        "areaIds": [
          "area.desert"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Desert/Rogue Crypt internal-room model is not complete in v1.2."
      },
      {
        "questId": "quest.desert_temple_2",
        "quest": "Desert Temple 2",
        "step": 8,
        "text": "Use the ladder that appears, interact with the statue, and collect three prisms.",
        "areaIds": [
          "area.desert"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Desert/Rogue Crypt internal-room model is not complete in v1.2."
      },
      {
        "questId": "quest.desert_temple_2",
        "quest": "Desert Temple 2",
        "step": 9,
        "text": "Return through the Desert Temple route and place the three prisms on the three statues.",
        "areaIds": [
          "area.desert"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Desert/Rogue Crypt internal-room model is not complete in v1.2."
      },
      {
        "questId": "quest.desert_temple_2",
        "quest": "Desert Temple 2",
        "step": 10,
        "text": "Return to the first researcher; follow him downstairs and speak to him again to complete the quest.",
        "areaIds": [
          "area.desert"
        ],
        "roomIds": [],
        "npcIds": [],
        "monsterIds": [],
        "authority": "derived",
        "confidence": "partial",
        "note": "Desert/Rogue Crypt internal-room model is not complete in v1.2."
      }
    ]
  },
  "knownLimitations": [
    "Room adjacency is recorded only where the wiki gives an explicit directional/access relationship; missing links must not be invented.",
    "A bed is recorded only where a source explicitly documents one.",
    "Desert internal-room coverage is partial because the rendered Desert page was blocked by an interstitial during this pass.",
    "NPC lists focus on documented functional/talk/quest/shop/travel NPCs and are not guaranteed to include every decorative NPC.",
    "Room names follow current wiki headings where available; game-internal room IDs are not claimed."
  ],
  "relationshipPolicy": {
    "authority": "derived",
    "rule": "Cross-links join already sourced entity records. They do not replace the underlying source facts.",
    "bedSemantics": "bedStatus=not_documented means absence is not established; it does not assert that no bed exists."
  }
}
