{
  "locations": [
    {
      "id": "start_point",
      "name": "\ud83c\udf06 Ruined Downtown Core",
      "description": "The wind howls through skeletal skyscrapers. Debris litters the cracked asphalt. You sense danger, but also opportunity.",
      "image_path": "images/locations/downtown.png",
      "x": 0,
      "y": 0,
      "interactables": {
        "rubble_1760793958629": {
          "template_id": "rubble",
          "outcomes": {
            "search": {
              "success_rate": 0.5,
              "stamina_cost": 2,
              "text": {
                "success": "You successfully \ud83d\udd0e search rubble.",
                "failure": "You failed to \ud83d\udd0e search rubble."
              },
              "rewards": {
                "items": [
                  {
                    "item_id": "scrap_metal",
                    "quantity": 1,
                    "chance": 1
                  }
                ],
                "damage": 0
              }
            }
          }
        },
        "start_point_sedan": {
          "template_id": "sedan",
          "outcomes": {
            "search_glovebox": {
              "success_rate": 0.5,
              "stamina_cost": 1,
              "crit_success_chance": 0.1,
              "crit_failure_chance": 0.1,
              "text": {
                "success": "You find a half-eaten [Stale Chocolate Bar].",
                "failure": "The glovebox is empty except for dust and old receipts.",
                "crit_success": "",
                "crit_failure": ""
              },
              "rewards": {
                "items": [
                  {
                    "item_id": "stale_chocolate_bar",
                    "quantity": 1,
                    "chance": 1.0
                  }
                ],
                "damage": 0,
                "crit_items": [],
                "crit_damage": 0
              }
            },
            "pop_trunk": {
              "success_rate": 0.5,
              "stamina_cost": 3,
              "crit_success_chance": 0.1,
              "crit_failure_chance": 0.1,
              "text": {
                "success": "With a great heave, you pry the trunk open and find a [Tire Iron]!",
                "failure": "The trunk is rusted shut. You can't get it open.",
                "crit_success": "",
                "crit_failure": ""
              },
              "rewards": {
                "items": [
                  {
                    "item_id": "tire_iron",
                    "quantity": 1,
                    "chance": 1.0
                  }
                ],
                "damage": 0,
                "crit_items": [],
                "crit_damage": 0
              }
            }
          }
        },
        "start_point_dumpster": {
          "template_id": "dumpster",
          "outcomes": {
            "search_dumpster": {
              "success_rate": 0.5,
              "stamina_cost": 2,
              "crit_success_chance": 0.1,
              "crit_failure_chance": 0.1,
              "text": {
                "success": "Despite the smell, you find some [Plastic Bottles] and [Cloth Scraps].",
                "failure": "Just rotting garbage. Nothing useful.",
                "crit_success": "",
                "crit_failure": "You disturb a nest of rats! They bite you! (-8 HP)"
              },
              "rewards": {
                "items": [
                  {
                    "item_id": "plastic_bottles",
                    "quantity": 3,
                    "chance": 1.0
                  },
                  {
                    "item_id": "cloth_scraps",
                    "quantity": 2,
                    "chance": 1.0
                  }
                ],
                "damage": 0,
                "crit_items": [],
                "crit_damage": 8
              }
            }
          }
        }
      }
    },
    {
      "id": "gas_station",
      "name": "\u26fd\ufe0f Abandoned Gas Station",
      "description": "The smell of stale gasoline hangs in the air. A rusty sedan sits by the pumps, its door ajar. Behind the station, you spot a small tool shed.",
      "image_path": "images/locations/gas_station.png",
      "x": 0,
      "y": 2,
      "interactables": {}
    },
    {
      "id": "residential",
      "name": "\ud83c\udfd8\ufe0f Residential Street",
      "description": "A quiet suburban street lined with abandoned homes. Most are boarded up, but a few doors hang open, creaking in the wind.",
      "x": 3.0,
      "y": 0.0,
      "image_path": "images/locations/residential.png",
      "interactables": {
        "residential_house1": {
          "template_id": "house",
          "outcomes": {
            "search_house": {
              "success_rate": 0.5,
              "stamina_cost": 3,
              "crit_success_chance": 0.1,
              "crit_failure_chance": 0.1,
              "text": {
                "success": "You find some useful supplies: [Canned Beans], [Bottled Water], and [Cloth Scraps]!",
                "failure": "The house has already been thoroughly looted. Nothing remains.",
                "crit_success": "",
                "crit_failure": "The floor collapses beneath you! (-10 HP)"
              },
              "rewards": {
                "items": [
                  {
                    "item_id": "canned_beans",
                    "quantity": 1,
                    "chance": 1.0
                  },
                  {
                    "item_id": "bottled_water",
                    "quantity": 1,
                    "chance": 1.0
                  },
                  {
                    "item_id": "cloth_scraps",
                    "quantity": 3,
                    "chance": 1.0
                  }
                ],
                "damage": 0,
                "crit_items": [],
                "crit_damage": 10
              }
            }
          }
        },
        "residential_rubble": {
          "template_id": "rubble",
          "outcomes": {
            "search": {
              "success_rate": 0.5,
              "stamina_cost": 2,
              "crit_success_chance": 0.1,
              "crit_failure_chance": 0.1,
              "text": {
                "success": "You dig through the debris and find some [Scrap Metal].",
                "failure": "The pile seems to have been picked clean already.",
                "crit_success": "",
                "crit_failure": "You cut your hand on a sharp piece of glass! (-5 HP)"
              },
              "rewards": {
                "items": [
                  {
                    "item_id": "scrap_metal",
                    "quantity": 2,
                    "chance": 1.0
                  }
                ],
                "damage": 0,
                "crit_items": [],
                "crit_damage": 5
              }
            }
          }
        }
      }
    },
    {
      "id": "clinic",
      "name": "\ud83c\udfe5 Old Clinic",
      "description": "A small medical clinic, its windows shattered. The waiting room is a mess of overturned chairs and scattered papers. The examination rooms might still have supplies.",
      "x": 2.0,
      "y": 3.0,
      "image_path": "images/locations/clinic.png",
      "interactables": {
        "clinic_medkit": {
          "template_id": "medkit",
          "outcomes": {
            "search_medkit": {
              "success_rate": 0.5,
              "stamina_cost": 2,
              "crit_success_chance": 0.1,
              "crit_failure_chance": 0.1,
              "text": {
                "success": "Jackpot! You find a [First Aid Kit] and some [Bandages]!",
                "failure": "The cabinet is empty. Someone got here first.",
                "crit_success": "",
                "crit_failure": ""
              },
              "rewards": {
                "items": [
                  {
                    "item_id": "first_aid_kit",
                    "quantity": 1,
                    "chance": 1.0
                  },
                  {
                    "item_id": "bandage",
                    "quantity": 2,
                    "chance": 1.0
                  }
                ],
                "damage": 0,
                "crit_items": [],
                "crit_damage": 0
              }
            }
          }
        },
        "clinic_rubble": {
          "template_id": "rubble",
          "outcomes": {
            "search": {
              "success_rate": 0.5,
              "stamina_cost": 2,
              "crit_success_chance": 0.1,
              "crit_failure_chance": 0.1,
              "text": {
                "success": "You dig through the debris and find some [Scrap Metal].",
                "failure": "The pile seems to have been picked clean already.",
                "crit_success": "",
                "crit_failure": "You cut your hand on a sharp piece of glass! (-5 HP)"
              },
              "rewards": {
                "items": [
                  {
                    "item_id": "scrap_metal",
                    "quantity": 2,
                    "chance": 1.0
                  }
                ],
                "damage": 0,
                "crit_items": [],
                "crit_damage": 5
              }
            }
          }
        }
      }
    },
    {
      "id": "plaza",
      "name": "\ud83c\udfec Shopping Plaza",
      "description": "A strip mall with broken storefronts. Most shops have been thoroughly ransacked, but you might find something if you search carefully.",
      "image_path": "images/locations/plaza.png",
      "x": -2.5,
      "y": 0,
      "interactables": {
        "rubble_1760803638919": {
          "outcomes": {
            "search": {
              "crit_failure_chance": 0.1,
              "crit_success_chance": 0.1,
              "rewards": {
                "crit_damage": 0,
                "crit_items": [],
                "damage": 0,
                "items": []
              },
              "stamina_cost": 2,
              "success_rate": 0.5,
              "text": {
                "crit_failure": "",
                "crit_success": "",
                "failure": "You failed to \ud83d\udd0e search rubble.",
                "success": "You successfully \ud83d\udd0e search rubble."
              }
            }
          },
          "template_id": "rubble"
        },
        "plaza_vending_machine_1760805873300": {
          "template_id": "vending_machine",
          "outcomes": {
            "break": {
              "success_rate": 0.5,
              "stamina_cost": 5,
              "crit_success_chance": 0.1,
              "crit_failure_chance": 0.1,
              "text": {
                "success": "You successfully \ud83d\udd28 break open.",
                "failure": "You failed to \ud83d\udd28 break open.",
                "crit_success": "",
                "crit_failure": ""
              },
              "rewards": {
                "items": [],
                "damage": 0,
                "crit_items": [],
                "crit_damage": 0
              }
            },
            "search": {
              "success_rate": 0.5,
              "stamina_cost": 2,
              "crit_success_chance": 0.1,
              "crit_failure_chance": 0.1,
              "text": {
                "success": "You successfully \ud83d\udd0e search machine.",
                "failure": "You failed to \ud83d\udd0e search machine.",
                "crit_success": "",
                "crit_failure": ""
              },
              "rewards": {
                "items": [
                  {
                    "item_id": "energy_bar",
                    "quantity": 4,
                    "chance": 1
                  }
                ],
                "damage": 0,
                "crit_items": [],
                "crit_damage": 0
              }
            }
          }
        }
      }
    },
    {
      "id": "park",
      "name": "\ud83c\udf33 Suburban Park",
      "description": "An overgrown park with rusted playground equipment. Nature is slowly reclaiming this space. A maintenance shed sits at the far end.",
      "x": -1.0,
      "y": -2.0,
      "image_path": "images/locations/park.png",
      "interactables": {
        "park_shed": {
          "template_id": "toolshed",
          "outcomes": {
            "search_shed": {
              "success_rate": 0.5,
              "stamina_cost": 2,
              "crit_success_chance": 0.1,
              "crit_failure_chance": 0.1,
              "text": {
                "success": "You find some tools: [Rusty Nails], [Wood Planks], and a [Flashlight]!",
                "failure": "The shed has been picked clean. Only empty shelves remain.",
                "crit_success": "",
                "crit_failure": ""
              },
              "rewards": {
                "items": [
                  {
                    "item_id": "rusty_nails",
                    "quantity": 5,
                    "chance": 1.0
                  },
                  {
                    "item_id": "wood_planks",
                    "quantity": 2,
                    "chance": 1.0
                  },
                  {
                    "item_id": "flashlight",
                    "quantity": 1,
                    "chance": 1.0
                  }
                ],
                "damage": 0,
                "crit_items": [],
                "crit_damage": 0
              }
            }
          }
        },
        "park_rubble": {
          "template_id": "rubble",
          "outcomes": {
            "search": {
              "success_rate": 0.5,
              "stamina_cost": 2,
              "crit_success_chance": 0.1,
              "crit_failure_chance": 0.1,
              "text": {
                "success": "You dig through the debris and find some [Scrap Metal].",
                "failure": "The pile seems to have been picked clean already.",
                "crit_success": "",
                "crit_failure": "You cut your hand on a sharp piece of glass! (-5 HP)"
              },
              "rewards": {
                "items": [
                  {
                    "item_id": "scrap_metal",
                    "quantity": 2,
                    "chance": 1.0
                  }
                ],
                "damage": 0,
                "crit_items": [],
                "crit_damage": 5
              }
            }
          }
        }
      }
    },
    {
      "id": "overpass",
      "name": "\ud83d\udee3\ufe0f Highway Overpass",
      "description": "A concrete overpass spanning the cracked highway below. Abandoned vehicles litter the road. This is a good vantage point to survey the area.",
      "x": 1.0,
      "y": 4.5,
      "image_path": "images/locations/overpass.png",
      "interactables": {
        "overpass_sedan1": {
          "template_id": "sedan",
          "outcomes": {
            "search_glovebox": {
              "success_rate": 0.5,
              "stamina_cost": 1,
              "crit_success_chance": 0.1,
              "crit_failure_chance": 0.1,
              "text": {
                "success": "You find a half-eaten [Stale Chocolate Bar].",
                "failure": "The glovebox is empty except for dust and old receipts.",
                "crit_success": "",
                "crit_failure": ""
              },
              "rewards": {
                "items": [
                  {
                    "item_id": "stale_chocolate_bar",
                    "quantity": 1,
                    "chance": 1.0
                  }
                ],
                "damage": 0,
                "crit_items": [],
                "crit_damage": 0
              }
            },
            "pop_trunk": {
              "success_rate": 0.5,
              "stamina_cost": 3,
              "crit_success_chance": 0.1,
              "crit_failure_chance": 0.1,
              "text": {
                "success": "With a great heave, you pry the trunk open and find a [Tire Iron]!",
                "failure": "The trunk is rusted shut. You can't get it open.",
                "crit_success": "",
                "crit_failure": ""
              },
              "rewards": {
                "items": [
                  {
                    "item_id": "tire_iron",
                    "quantity": 1,
                    "chance": 1.0
                  }
                ],
                "damage": 0,
                "crit_items": [],
                "crit_damage": 0
              }
            }
          }
        },
        "overpass_sedan2": {
          "template_id": "sedan",
          "outcomes": {
            "search_glovebox": {
              "success_rate": 0.5,
              "stamina_cost": 1,
              "crit_success_chance": 0.1,
              "crit_failure_chance": 0.1,
              "text": {
                "success": "You find a half-eaten [Stale Chocolate Bar].",
                "failure": "The glovebox is empty except for dust and old receipts.",
                "crit_success": "",
                "crit_failure": ""
              },
              "rewards": {
                "items": [
                  {
                    "item_id": "stale_chocolate_bar",
                    "quantity": 1,
                    "chance": 1.0
                  }
                ],
                "damage": 0,
                "crit_items": [],
                "crit_damage": 0
              }
            },
            "pop_trunk": {
              "success_rate": 0.5,
              "stamina_cost": 3,
              "crit_success_chance": 0.1,
              "crit_failure_chance": 0.1,
              "text": {
                "success": "With a great heave, you pry the trunk open and find a [Tire Iron]!",
                "failure": "The trunk is rusted shut. You can't get it open.",
                "crit_success": "",
                "crit_failure": ""
              },
              "rewards": {
                "items": [
                  {
                    "item_id": "tire_iron",
                    "quantity": 1,
                    "chance": 1.0
                  }
                ],
                "damage": 0,
                "crit_items": [],
                "crit_damage": 0
              }
            }
          }
        }
      }
    },
    {
      "id": "warehouse",
      "name": "\ud83c\udfed Warehouse District",
      "description": "Rows of industrial warehouses stretch before you. Metal doors creak in the wind. The loading docks are littered with debris and abandoned cargo.",
      "x": 4.0,
      "y": -1.5,
      "image_path": "images/locations/warehouse.png",
      "interactables": {
        "warehouse_rubble": {
          "template_id": "rubble",
          "outcomes": {
            "search": {
              "success_rate": 0.5,
              "stamina_cost": 2,
              "crit_success_chance": 0.1,
              "crit_failure_chance": 0.1,
              "text": {
                "success": "You dig through the debris and find some [Scrap Metal].",
                "failure": "The pile seems to have been picked clean already.",
                "crit_success": "",
                "crit_failure": "You cut your hand on a sharp piece of glass! (-5 HP)"
              },
              "rewards": {
                "items": [
                  {
                    "item_id": "scrap_metal",
                    "quantity": 2,
                    "chance": 1.0
                  }
                ],
                "damage": 0,
                "crit_items": [],
                "crit_damage": 5
              }
            }
          }
        },
        "warehouse_dumpster": {
          "template_id": "dumpster",
          "outcomes": {
            "search_dumpster": {
              "success_rate": 0.5,
              "stamina_cost": 2,
              "crit_success_chance": 0.1,
              "crit_failure_chance": 0.1,
              "text": {
                "success": "Despite the smell, you find some [Plastic Bottles] and [Cloth Scraps].",
                "failure": "Just rotting garbage. Nothing useful.",
                "crit_success": "",
                "crit_failure": "You disturb a nest of rats! They bite you! (-8 HP)"
              },
              "rewards": {
                "items": [
                  {
                    "item_id": "plastic_bottles",
                    "quantity": 3,
                    "chance": 1.0
                  },
                  {
                    "item_id": "cloth_scraps",
                    "quantity": 2,
                    "chance": 1.0
                  }
                ],
                "damage": 0,
                "crit_items": [],
                "crit_damage": 8
              }
            }
          }
        },
        "warehouse_toolshed": {
          "template_id": "toolshed",
          "outcomes": {
            "search_shed": {
              "success_rate": 0.5,
              "stamina_cost": 2,
              "crit_success_chance": 0.1,
              "crit_failure_chance": 0.1,
              "text": {
                "success": "You find some tools: [Rusty Nails], [Wood Planks], and a [Flashlight]!",
                "failure": "The shed has been picked clean. Only empty shelves remain.",
                "crit_success": "",
                "crit_failure": ""
              },
              "rewards": {
                "items": [
                  {
                    "item_id": "rusty_nails",
                    "quantity": 5,
                    "chance": 1.0
                  },
                  {
                    "item_id": "wood_planks",
                    "quantity": 2,
                    "chance": 1.0
                  },
                  {
                    "item_id": "flashlight",
                    "quantity": 1,
                    "chance": 1.0
                  }
                ],
                "damage": 0,
                "crit_items": [],
                "crit_damage": 0
              }
            }
          }
        }
      }
    },
    {
      "id": "warehouse_interior",
      "name": "\ud83d\udce6 Warehouse Interior",
      "description": "Inside the warehouse, towering shelves cast long shadows. Scattered crates and pallets suggest this was once a distribution center. The back office door hangs open.",
      "x": 4.5,
      "y": -2.0,
      "image_path": "images/locations/warehouse_interior.png",
      "interactables": {
        "warehouse_int_crate1": {
          "template_id": "rubble",
          "outcomes": {
            "search": {
              "success_rate": 0.5,
              "stamina_cost": 2,
              "crit_success_chance": 0.1,
              "crit_failure_chance": 0.1,
              "text": {
                "success": "You dig through the debris and find some [Scrap Metal].",
                "failure": "The pile seems to have been picked clean already.",
                "crit_success": "",
                "crit_failure": "You cut your hand on a sharp piece of glass! (-5 HP)"
              },
              "rewards": {
                "items": [
                  {
                    "item_id": "scrap_metal",
                    "quantity": 2,
                    "chance": 1.0
                  }
                ],
                "damage": 0,
                "crit_items": [],
                "crit_damage": 5
              }
            }
          }
        },
        "warehouse_int_crate2": {
          "template_id": "rubble",
          "outcomes": {
            "search": {
              "success_rate": 0.5,
              "stamina_cost": 2,
              "crit_success_chance": 0.1,
              "crit_failure_chance": 0.1,
              "text": {
                "success": "You dig through the debris and find some [Scrap Metal].",
                "failure": "The pile seems to have been picked clean already.",
                "crit_success": "",
                "crit_failure": "You cut your hand on a sharp piece of glass! (-5 HP)"
              },
              "rewards": {
                "items": [
                  {
                    "item_id": "scrap_metal",
                    "quantity": 2,
                    "chance": 1.0
                  }
                ],
                "damage": 0,
                "crit_items": [],
                "crit_damage": 5
              }
            }
          }
        },
        "warehouse_int_office": {
          "template_id": "house",
          "outcomes": {
            "search_house": {
              "success_rate": 0.5,
              "stamina_cost": 3,
              "crit_success_chance": 0.1,
              "crit_failure_chance": 0.1,
              "text": {
                "success": "You find some useful supplies: [Canned Beans], [Bottled Water], and [Cloth Scraps]!",
                "failure": "The house has already been thoroughly looted. Nothing remains.",
                "crit_success": "",
                "crit_failure": "The floor collapses beneath you! (-10 HP)"
              },
              "rewards": {
                "items": [
                  {
                    "item_id": "canned_beans",
                    "quantity": 1,
                    "chance": 1.0
                  },
                  {
                    "item_id": "bottled_water",
                    "quantity": 1,
                    "chance": 1.0
                  },
                  {
                    "item_id": "cloth_scraps",
                    "quantity": 3,
                    "chance": 1.0
                  }
                ],
                "damage": 0,
                "crit_items": [],
                "crit_damage": 10
              }
            }
          }
        }
      }
    },
    {
      "id": "subway",
      "name": "\ud83d\ude87 Subway Station Entrance",
      "description": "Stairs descend into darkness. The entrance to an abandoned subway station yawns before you. Emergency lighting flickers somewhere below.",
      "x": -4.0,
      "y": -0.5,
      "image_path": "images/locations/subway.png",
      "interactables": {
        "subway_rubble": {
          "template_id": "rubble",
          "outcomes": {
            "search": {
              "success_rate": 0.5,
              "stamina_cost": 2,
              "crit_success_chance": 0.1,
              "crit_failure_chance": 0.1,
              "text": {
                "success": "You dig through the debris and find some [Scrap Metal].",
                "failure": "The pile seems to have been picked clean already.",
                "crit_success": "",
                "crit_failure": "You cut your hand on a sharp piece of glass! (-5 HP)"
              },
              "rewards": {
                "items": [
                  {
                    "item_id": "scrap_metal",
                    "quantity": 2,
                    "chance": 1.0
                  }
                ],
                "damage": 0,
                "crit_items": [],
                "crit_damage": 5
              }
            }
          }
        },
        "subway_vending": {
          "template_id": "vending",
          "outcomes": {
            "break_vending": {
              "success_rate": 0.5,
              "stamina_cost": 4,
              "crit_success_chance": 0.1,
              "crit_failure_chance": 0.1,
              "text": {
                "success": "You smash the glass and grab [Energy Bars] and [Bottled Water]!",
                "failure": "The machine is tougher than it looks. You can't break it open.",
                "crit_success": "",
                "crit_failure": ""
              },
              "rewards": {
                "items": [
                  {
                    "item_id": "energy_bar",
                    "quantity": 2,
                    "chance": 1.0
                  },
                  {
                    "item_id": "bottled_water",
                    "quantity": 2,
                    "chance": 1.0
                  }
                ],
                "damage": 0,
                "crit_items": [],
                "crit_damage": 0
              }
            }
          }
        }
      }
    },
    {
      "id": "subway_tunnels",
      "name": "\ud83d\ude8a Subway Tunnels",
      "description": "The tunnels stretch into darkness. Water drips from the ceiling. A stalled train blocks part of the track. The air is stale and oppressive.",
      "image_path": "images/locations/subway_tunnels.png",
      "x": -4.5,
      "y": -1,
      "interactables": {}
    },
    {
      "id": "office_building",
      "name": "\ud83c\udfe2 Office Building",
      "description": "A five-story office building with shattered windows. The lobby is trashed, but the stairs appear intact. You can hear the wind whistling through the upper floors.",
      "image_path": "images/locations/office_building.png",
      "x": 3.5,
      "y": 4,
      "interactables": {
        "rubble_1760801399701": {
          "template_id": "rubble",
          "outcomes": {
            "search": {
              "success_rate": 0.5,
              "stamina_cost": 2,
              "crit_success_chance": 0.1,
              "crit_failure_chance": 0.1,
              "text": {
                "success": "You successfully \ud83d\udd0e search rubble.",
                "failure": "You failed to \ud83d\udd0e search rubble.",
                "crit_success": "",
                "crit_failure": ""
              },
              "rewards": {
                "items": [],
                "damage": 0,
                "crit_items": [],
                "crit_damage": 0
              }
            }
          }
        }
      }
    },
    {
      "id": "office_interior",
      "name": "\ud83d\udcbc Office Floors",
      "description": "Cubicles stretch across the floor. Papers scatter in the breeze from broken windows. Filing cabinets stand open, already ransacked. A corner office looks promising.",
      "image_path": "images/locations/office_interior.png",
      "x": 4,
      "y": 4.5,
      "interactables": {
        "office_desk1": {
          "template_id": "rubble",
          "outcomes": {
            "search": {
              "success_rate": 0.5,
              "stamina_cost": 2,
              "crit_success_chance": 0.1,
              "crit_failure_chance": 0.1,
              "text": {
                "success": "You dig through the debris and find some [Scrap Metal].",
                "failure": "The pile seems to have been picked clean already.",
                "crit_success": "",
                "crit_failure": "You cut your hand on a sharp piece of glass! (-5 HP)"
              },
              "rewards": {
                "items": [
                  {
                    "item_id": "scrap_metal",
                    "quantity": 2,
                    "chance": 1.0
                  }
                ],
                "damage": 0,
                "crit_items": [],
                "crit_damage": 5
              }
            }
          }
        },
        "office_desk2": {
          "template_id": "rubble",
          "outcomes": {
            "search": {
              "success_rate": 0.5,
              "stamina_cost": 2,
              "crit_success_chance": 0.1,
              "crit_failure_chance": 0.1,
              "text": {
                "success": "You dig through the debris and find some [Scrap Metal].",
                "failure": "The pile seems to have been picked clean already.",
                "crit_success": "",
                "crit_failure": "You cut your hand on a sharp piece of glass! (-5 HP)"
              },
              "rewards": {
                "items": [
                  {
                    "item_id": "scrap_metal",
                    "quantity": 2,
                    "chance": 1.0
                  }
                ],
                "damage": 0,
                "crit_items": [],
                "crit_damage": 5
              }
            }
          }
        },
        "office_corner": {
          "template_id": "house",
          "outcomes": {
            "search_house": {
              "success_rate": 0.5,
              "stamina_cost": 3,
              "crit_success_chance": 0.1,
              "crit_failure_chance": 0.1,
              "text": {
                "success": "You find some useful supplies: [Canned Beans], [Bottled Water], and [Cloth Scraps]!",
                "failure": "The house has already been thoroughly looted. Nothing remains.",
                "crit_success": "",
                "crit_failure": "The floor collapses beneath you! (-10 HP)"
              },
              "rewards": {
                "items": [
                  {
                    "item_id": "canned_beans",
                    "quantity": 1,
                    "chance": 1.0
                  },
                  {
                    "item_id": "bottled_water",
                    "quantity": 1,
                    "chance": 1.0
                  },
                  {
                    "item_id": "cloth_scraps",
                    "quantity": 3,
                    "chance": 1.0
                  }
                ],
                "damage": 0,
                "crit_items": [],
                "crit_damage": 10
              }
            }
          }
        }
      }
    },
    {
      "id": "location_1760791397492",
      "name": "Subway Section A",
      "description": "A shady dimly lit subway section. All you can see are abandoned train tracks and some garbage lying around. ",
      "image_path": "images/locations/subway_section_a.jpg",
      "x": -5,
      "y": -2,
      "interactables": {}
    }
  ],
  "connections": [
    {
      "from": "start_point",
      "to": "gas_station",
      "direction": "north",
      "stamina_cost": 6
    },
    {
      "from": "start_point",
      "to": "residential",
      "direction": "east",
      "stamina_cost": 9
    },
    {
      "from": "start_point",
      "to": "plaza",
      "direction": "west",
      "stamina_cost": 8
    },
    {
      "from": "gas_station",
      "to": "start_point",
      "direction": "south",
      "stamina_cost": 6
    },
    {
      "from": "gas_station",
      "to": "overpass",
      "direction": "north",
      "stamina_cost": 8
    },
    {
      "from": "residential",
      "to": "start_point",
      "direction": "west",
      "stamina_cost": 9
    },
    {
      "from": "residential",
      "to": "clinic",
      "direction": "north",
      "stamina_cost": 9
    },
    {
      "from": "residential",
      "to": "park",
      "direction": "south",
      "stamina_cost": 13
    },
    {
      "from": "residential",
      "to": "warehouse",
      "direction": "southeast",
      "stamina_cost": 5
    },
    {
      "from": "clinic",
      "to": "residential",
      "direction": "south",
      "stamina_cost": 9
    },
    {
      "from": "clinic",
      "to": "gas_station",
      "direction": "west",
      "stamina_cost": 7
    },
    {
      "from": "clinic",
      "to": "office_building",
      "direction": "east",
      "stamina_cost": 5
    },
    {
      "from": "plaza",
      "to": "start_point",
      "direction": "east",
      "stamina_cost": 8
    },
    {
      "from": "plaza",
      "to": "park",
      "direction": "south",
      "stamina_cost": 8
    },
    {
      "from": "plaza",
      "to": "subway",
      "direction": "west",
      "stamina_cost": 5
    },
    {
      "from": "park",
      "to": "plaza",
      "direction": "north",
      "stamina_cost": 8
    },
    {
      "from": "park",
      "to": "residential",
      "direction": "east",
      "stamina_cost": 13
    },
    {
      "from": "park",
      "to": "warehouse",
      "direction": "southeast",
      "stamina_cost": 15
    },
    {
      "from": "overpass",
      "to": "gas_station",
      "direction": "south",
      "stamina_cost": 8
    },
    {
      "from": "overpass",
      "to": "clinic",
      "direction": "east",
      "stamina_cost": 5
    },
    {
      "from": "warehouse",
      "to": "residential",
      "direction": "northwest",
      "stamina_cost": 5
    },
    {
      "from": "warehouse",
      "to": "park",
      "direction": "west",
      "stamina_cost": 15
    },
    {
      "from": "warehouse",
      "to": "warehouse_interior",
      "direction": "inside",
      "stamina_cost": 2
    },
    {
      "from": "warehouse_interior",
      "to": "warehouse",
      "direction": "outside",
      "stamina_cost": 2
    },
    {
      "from": "subway",
      "to": "plaza",
      "direction": "east",
      "stamina_cost": 5
    },
    {
      "from": "subway",
      "to": "subway_tunnels",
      "direction": "down",
      "stamina_cost": 2
    },
    {
      "from": "subway_tunnels",
      "to": "subway",
      "direction": "up",
      "stamina_cost": 2
    },
    {
      "from": "office_building",
      "to": "clinic",
      "direction": "west",
      "stamina_cost": 5
    },
    {
      "from": "office_building",
      "to": "overpass",
      "direction": "south",
      "stamina_cost": 8
    },
    {
      "from": "office_building",
      "to": "office_interior",
      "direction": "inside",
      "stamina_cost": 2
    },
    {
      "from": "office_interior",
      "to": "office_building",
      "direction": "outside",
      "stamina_cost": 2
    },
    {
      "from": "location_1760789845933",
      "to": "subway_tunnels",
      "direction": "north"
    },
    {
      "from": "location_1760791397492",
      "to": "subway_tunnels",
      "direction": "north"
    },
    {
      "from": "location_1760791397492",
      "to": "subway_tunnels",
      "direction": "north"
    },
    {
      "from": "location_1760799315918",
      "to": "gas_station",
      "direction": "southeast"
    },
    {
      "from": "subway_tunnels",
      "to": "location_1760791397492",
      "direction": "south"
    }
  ],
  "danger_config": {
    "start_point": {
      "danger_level": 0,
      "encounter_rate": 0.0,
      "wandering_chance": 0.0
    },
    "gas_station": {
      "danger_level": 0,
      "encounter_rate": 0.0,
      "wandering_chance": 0.0
    },
    "residential": {
      "danger_level": 1,
      "encounter_rate": 0.1,
      "wandering_chance": 0.2
    },
    "park": {
      "danger_level": 1,
      "encounter_rate": 0.1,
      "wandering_chance": 0.2
    },
    "clinic": {
      "danger_level": 2,
      "encounter_rate": 0.2,
      "wandering_chance": 0.35
    },
    "plaza": {
      "danger_level": 2,
      "encounter_rate": 0.15,
      "wandering_chance": 0.3
    },
    "warehouse": {
      "danger_level": 2,
      "encounter_rate": 0.18,
      "wandering_chance": 0.32
    },
    "warehouse_interior": {
      "danger_level": 2,
      "encounter_rate": 0.22,
      "wandering_chance": 0.4
    },
    "overpass": {
      "danger_level": 3,
      "encounter_rate": 0.3,
      "wandering_chance": 0.45
    },
    "office_building": {
      "danger_level": 3,
      "encounter_rate": 0.25,
      "wandering_chance": 0.4
    },
    "office_interior": {
      "danger_level": 3,
      "encounter_rate": 0.35,
      "wandering_chance": 0.5
    },
    "subway": {
      "danger_level": 4,
      "encounter_rate": 0.35,
      "wandering_chance": 0.5
    },
    "subway_tunnels": {
      "danger_level": 4,
      "encounter_rate": 0.45,
      "wandering_chance": 0.65
    }
  },
  "spawn_config": {
    "start_point": [],
    "gas_station": [],
    "residential": [
      {
        "npc_id": "feral_dog",
        "weight": 60
      },
      {
        "npc_id": "mutant_rat",
        "weight": 40
      }
    ],
    "park": [
      {
        "npc_id": "feral_dog",
        "weight": 50
      },
      {
        "npc_id": "mutant_rat",
        "weight": 50
      }
    ],
    "clinic": [
      {
        "npc_id": "infected_human",
        "weight": 40
      },
      {
        "npc_id": "mutant_rat",
        "weight": 30
      },
      {
        "npc_id": "scavenger",
        "weight": 30
      }
    ],
    "plaza": [
      {
        "npc_id": "raider_scout",
        "weight": 40
      },
      {
        "npc_id": "scavenger",
        "weight": 35
      },
      {
        "npc_id": "feral_dog",
        "weight": 25
      }
    ],
    "warehouse": [
      {
        "npc_id": "raider_scout",
        "weight": 45
      },
      {
        "npc_id": "scavenger",
        "weight": 35
      },
      {
        "npc_id": "mutant_rat",
        "weight": 20
      }
    ],
    "warehouse_interior": [
      {
        "npc_id": "raider_scout",
        "weight": 50
      },
      {
        "npc_id": "scavenger",
        "weight": 30
      },
      {
        "npc_id": "mutant_rat",
        "weight": 20
      }
    ],
    "overpass": [
      {
        "npc_id": "raider_scout",
        "weight": 50
      },
      {
        "npc_id": "infected_human",
        "weight": 30
      },
      {
        "npc_id": "scavenger",
        "weight": 20
      }
    ],
    "office_building": [
      {
        "npc_id": "raider_scout",
        "weight": 45
      },
      {
        "npc_id": "infected_human",
        "weight": 35
      },
      {
        "npc_id": "scavenger",
        "weight": 20
      }
    ],
    "office_interior": [
      {
        "npc_id": "infected_human",
        "weight": 50
      },
      {
        "npc_id": "raider_scout",
        "weight": 30
      },
      {
        "npc_id": "scavenger",
        "weight": 20
      }
    ],
    "subway": [
      {
        "npc_id": "infected_human",
        "weight": 50
      },
      {
        "npc_id": "raider_scout",
        "weight": 30
      },
      {
        "npc_id": "mutant_rat",
        "weight": 20
      }
    ],
    "subway_tunnels": [
      {
        "npc_id": "infected_human",
        "weight": 60
      },
      {
        "npc_id": "raider_scout",
        "weight": 25
      },
      {
        "npc_id": "mutant_rat",
        "weight": 15
      }
    ]
  }
}