[
    {
        "region_name": "Spirit Temple Lobby",
        "dungeon": "Spirit Temple",
        "exits": {
            "Desert Colossus From Spirit Lobby": "True",
            "Child Spirit Temple": "is_child",
            "Early Adult Spirit Temple": "can_use(Silver_Gauntlets)"
        }
    },
    {
        "region_name": "Child Spirit Temple",
        "dungeon": "Spirit Temple",
        "locations": {
            "Spirit Temple Child Bridge Chest": "
                (Boomerang or Slingshot or (has_bombchus and logic_spirit_child_bombchu)) and 
                (Sticks or has_explosives or 
                    ((Nuts or Boomerang) and 
                        (Kokiri_Sword or Slingshot)))",
            "Spirit Temple Child Early Torches Chest": "
                (Boomerang or Slingshot or (has_bombchus and logic_spirit_child_bombchu)) and 
                (Sticks or has_explosives or 
                    ((Nuts or Boomerang) and (Kokiri_Sword or Slingshot))) and 
                (Sticks or can_use(Dins_Fire))",
            "Spirit Temple GS Metal Fence": "
                (Boomerang or Slingshot or (has_bombchus and logic_spirit_child_bombchu)) and 
                (Sticks or has_explosives or 
                    ((Nuts or Boomerang) and (Kokiri_Sword or Slingshot)))"
        },
        "exits": {
            "Child Spirit Before Locked Door": "True"
        }
    },
    {
        "region_name": "Child Spirit Before Locked Door",
        "dungeon": "Spirit Temple",
        "locations": {
            "Nut Crate": "True"
        },
        "exits": {
            "Child Spirit Temple Climb": "(Small_Key_Spirit_Temple, 1)"
        }
    },
    {
        "region_name": "Child Spirit Temple Climb",
        "dungeon": "Spirit Temple",
        "locations": {
            "Spirit Temple Child Climb North Chest": "
                has_projectile(both) or 
                (((Small_Key_Spirit_Temple, 3) or 
                    ((Small_Key_Spirit_Temple, 2) and bombchus_in_logic and not entrance_shuffle)) and 
                can_use(Silver_Gauntlets) and has_projectile(adult)) or 
                ((Small_Key_Spirit_Temple, 5) and is_child and 
                    has_projectile(child))",
            "Spirit Temple Child Climb East Chest": "
                has_projectile(both) or 
                (((Small_Key_Spirit_Temple, 3) or 
                    ((Small_Key_Spirit_Temple, 2) and bombchus_in_logic and not entrance_shuffle)) and 
                can_use(Silver_Gauntlets) and has_projectile(adult)) or 
                ((Small_Key_Spirit_Temple, 5) and is_child and 
                    has_projectile(child))",
            "Spirit Temple GS Sun on Floor Room": "
                has_projectile(both) or can_use(Dins_Fire) or 
                (can_take_damage and (Sticks or Kokiri_Sword or has_projectile(child))) or 
                (is_child and 
                    (Small_Key_Spirit_Temple, 5) and has_projectile(child)) or 
                (((Small_Key_Spirit_Temple, 3) or 
                    ((Small_Key_Spirit_Temple, 2) and bombchus_in_logic and not entrance_shuffle)) and 
                can_use(Silver_Gauntlets) and
                (has_projectile(adult) or can_take_damage))"
        },
        "exits": {
            "Spirit Temple Central Chamber": "has_explosives",
            "Child Spirit Before Locked Door": "(Small_Key_Spirit_Temple, 5)"
        }
    },
    {
        "region_name": "Early Adult Spirit Temple",
        "dungeon": "Spirit Temple",
        "locations": {
            "Spirit Temple Compass Chest": "
                can_use(Hookshot) and can_play(Zeldas_Lullaby)",
            "Spirit Temple Early Adult Right Chest": "
                Bow or Progressive_Hookshot or has_bombchus or (Bombs and logic_spirit_lower_adult_switch)", 
                #requires a very specific Bombchu use, Hover Boots can be skipped by jumping on top of the rolling rock.
            "Spirit Temple First Mirror Left Chest": "(Small_Key_Spirit_Temple, 3)",
            "Spirit Temple First Mirror Right Chest": "(Small_Key_Spirit_Temple, 3)",
            "Spirit Temple GS Boulder Room": "
                can_play(Song_of_Time) and 
                (Bow or Progressive_Hookshot or has_bombchus or (Bombs and logic_spirit_lower_adult_switch))"
        },
        "exits": {
            "Spirit Temple Central Chamber": "(Small_Key_Spirit_Temple, 1)"
        }
    },
    {
        "region_name": "Spirit Temple Central Chamber",
        "dungeon": "Spirit Temple",
        "locations": {
            "Spirit Temple Map Chest": "
                ((has_explosives or (Small_Key_Spirit_Temple, 3) or ((Small_Key_Spirit_Temple, 2) and bombchus_in_logic and not entrance_shuffle)) and 
                    (can_use(Dins_Fire) or
                        (((Magic_Meter and Fire_Arrows) or logic_spirit_map_chest) and Bow and Sticks))) or 
                ((Small_Key_Spirit_Temple, 5) and has_explosives and 
                    can_use(Sticks)) or 
                ((Small_Key_Spirit_Temple, 3) and
                    (can_use(Fire_Arrows) or (logic_spirit_map_chest and Bow)) and 
                    can_use(Silver_Gauntlets))",
            "Spirit Temple Sun Block Room Chest": "
                ((has_explosives or (Small_Key_Spirit_Temple, 3) or ((Small_Key_Spirit_Temple, 2) and bombchus_in_logic and not entrance_shuffle)) and 
                    (can_use(Dins_Fire) or
                        (((Magic_Meter and Fire_Arrows) or logic_spirit_sun_chest) and Bow and Sticks))) or 
                ((Small_Key_Spirit_Temple, 5) and has_explosives and
                    can_use(Sticks)) or 
                ((Small_Key_Spirit_Temple, 3) and
                    (can_use(Fire_Arrows) or (logic_spirit_sun_chest and Bow)) and 
                    can_use(Silver_Gauntlets))",
            "Spirit Temple Statue Room Hand Chest": "
                (Small_Key_Spirit_Temple, 3) and can_use(Silver_Gauntlets) and 
                can_play(Zeldas_Lullaby)",
            "Spirit Temple Statue Room Northeast Chest": "
                (Small_Key_Spirit_Temple, 3) and can_use(Silver_Gauntlets) and can_play(Zeldas_Lullaby) and 
                (Progressive_Hookshot or Hover_Boots or logic_spirit_lobby_jump)",
            "Spirit Temple GS Hall After Sun Block Room": "
                (has_explosives and Boomerang and Progressive_Hookshot) or 
                (can_use(Boomerang) and (Small_Key_Spirit_Temple, 5) and has_explosives) or 
                (Progressive_Hookshot and can_use(Silver_Gauntlets) and 
                    ((Small_Key_Spirit_Temple, 3) or 
                        ((Small_Key_Spirit_Temple, 2) and Boomerang and bombchus_in_logic and not entrance_shuffle)))",
            "Spirit Temple GS Lobby": "
                ((has_explosives or (Small_Key_Spirit_Temple, 3) or ((Small_Key_Spirit_Temple, 2) and bombchus_in_logic and not entrance_shuffle)) and 
                    logic_spirit_lobby_gs and Boomerang and (Progressive_Hookshot or Hover_Boots or logic_spirit_lobby_jump)) or
                (logic_spirit_lobby_gs and (Small_Key_Spirit_Temple, 5) and has_explosives and can_use(Boomerang)) or
                ((Small_Key_Spirit_Temple, 3) and can_use(Silver_Gauntlets) and (Progressive_Hookshot or Hover_Boots or logic_spirit_lobby_jump))"
        },
        "exits": {
            "Spirit Temple Outdoor Hands": "True",
            "Spirit Temple Beyond Central Locked Door": "
                (Small_Key_Spirit_Temple, 4) and can_use(Silver_Gauntlets)",
            "Child Spirit Temple Climb": "True"
        }
    },
    {
        "region_name": "Spirit Temple Outdoor Hands",
        "dungeon": "Spirit Temple",
        "locations": {
            "Spirit Temple Silver Gauntlets Chest": "
                ((Small_Key_Spirit_Temple, 3) and (Progressive_Hookshot, 2) and has_explosives) or 
                (Small_Key_Spirit_Temple, 5)",
            "Spirit Temple Mirror Shield Chest": "
                (Small_Key_Spirit_Temple, 4) and can_use(Silver_Gauntlets) and has_explosives"
        },
        "exits": {
            "Desert Colossus": "
                (is_child and (Small_Key_Spirit_Temple, 5)) or
                (can_use(Silver_Gauntlets) and
                    (((Small_Key_Spirit_Temple, 3) and has_explosives) or (Small_Key_Spirit_Temple, 5)))"
        }
    },
    {
        "region_name": "Spirit Temple Beyond Central Locked Door",
        "dungeon": "Spirit Temple",
        "locations": {
            "Spirit Temple Near Four Armos Chest": "Mirror_Shield and has_explosives",
            "Spirit Temple Hallway Left Invisible Chest": "(logic_lens_spirit or can_use(Lens_of_Truth)) and has_explosives",
            "Spirit Temple Hallway Right Invisible Chest": "(logic_lens_spirit or can_use(Lens_of_Truth)) and has_explosives"
        },
        "exits": {
            "Spirit Temple Beyond Final Locked Door": "
                (Small_Key_Spirit_Temple, 5) and 
                (logic_spirit_wall or can_use(Longshot) or has_bombchus or 
                    ((Bombs or Nuts or can_use(Dins_Fire)) and 
                        (Bow or can_use(Hookshot) or Megaton_Hammer)))"
        }
    },
    {
        "region_name": "Spirit Temple Beyond Final Locked Door",
        "dungeon": "Spirit Temple",
        "locations": {
            "Spirit Temple Boss Key Chest": "
                can_play(Zeldas_Lullaby) and Bow and 
                Progressive_Hookshot",
            "Spirit Temple Topmost Chest": "Mirror_Shield",
            "Spirit Temple Twinrova Heart": "
                Mirror_Shield and has_explosives and 
                Progressive_Hookshot and Boss_Key_Spirit_Temple",
            "Twinrova": "
                Mirror_Shield and has_explosives and 
                Progressive_Hookshot and Boss_Key_Spirit_Temple"
        }
    }
]
