{
  "entities": {
    "component_ancient_inscription": {
      "asset": "tiles/crafting/ancient_inscription.png",
      "baseId": "ancient_inscription",
      "className": "AncientInscription",
      "description": "On Pickup:\nA random [Sorcery] or [Word] spell you know permanently gains +2 [max charges:max_charges]",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_ancient_inscription.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/ancient_inscription.png",
      "id": "component_ancient_inscription",
      "kind": "component",
      "name": "Ancient Inscription",
      "rare": false,
      "tags": [
        "Sorcery",
        "Word"
      ],
      "tier": 2,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "refund_charges"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 322,
              "snippet": "class AncientInscription",
              "symbol": "AncientInscription.on_pickup"
            }
          ],
          "id": "hook_0_ancientinscription_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_arbiter_s_lens": {
      "asset": "tiles/crafting/arbiter's_lens.png",
      "baseId": "arbiter_s_lens",
      "className": "ArbiterLens",
      "description": "On Pickup:\nSummon 3 Arbiters that disappear after 12 turns",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_arbiter_s_lens.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/crafting/arbiters_lens.png",
      "id": "component_arbiter_s_lens",
      "kind": "component",
      "name": "Arbiter's Lens",
      "rare": false,
      "tags": [
        "Holy",
        "Conjuration",
        "Eye"
      ],
      "tier": 3,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "summon"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 1213,
              "snippet": "class ArbiterLens",
              "symbol": "ArbiterLens.on_pickup"
            }
          ],
          "id": "hook_1_arbiterlens_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_arcane_mote": {
      "asset": "tiles/crafting/arcane_mote.png",
      "baseId": "arcane_mote",
      "className": "ArcaneMote",
      "description": "On Pickup:\nRegain a charge of each of your spells",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_arcane_mote.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/arcane_mote.png",
      "id": "component_arcane_mote",
      "kind": "component",
      "name": "Arcane Mote",
      "rare": false,
      "tags": [
        "Arcane"
      ],
      "tier": 1,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "refund_charges"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 95,
              "snippet": "class ArcaneMote",
              "symbol": "ArcaneMote.on_pickup"
            }
          ],
          "id": "hook_2_arcanemote_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_archfiend_s_bone": {
      "asset": "tiles/crafting/archfiend's_bone.png",
      "baseId": "archfiend_s_bone",
      "className": "ArchfiendsBone",
      "description": "On Pickup:\nSummon a Chaos Fiend to aid you for 16 turns",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_archfiend_s_bone.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/crafting/archfiends_bone.png",
      "id": "component_archfiend_s_bone",
      "kind": "component",
      "name": "Archfiend's Bone",
      "rare": false,
      "tags": [
        "Chaos",
        "Conjuration",
        "Ritual"
      ],
      "tier": 3,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "summon"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 1094,
              "snippet": "class ArchfiendsBone",
              "symbol": "ArchfiendsBone.on_pickup"
            }
          ],
          "id": "hook_3_archfiendsbone_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_astral_phylactery": {
      "asset": "tiles/crafting/astral_phylactery.png",
      "baseId": "astral_phylactery",
      "className": "AstralPhylactery",
      "description": "On Pickup:\nA random ally that is not already Soulbound becomes Soulbound to you and cannot die until you do\nThis effect repeats every 6 turns until the end of the level",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_astral_phylactery.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/astral_phylactery.png",
      "id": "component_astral_phylactery",
      "kind": "component",
      "name": "Astral Phylactery",
      "rare": false,
      "tags": [
        "Arcane",
        "Dark",
        "Translocation"
      ],
      "tier": 3,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "apply_buff"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 1035,
              "snippet": "class AstralPhylactery",
              "symbol": "AstralPhylactery.on_pickup"
            }
          ],
          "id": "hook_4_astralphylactery_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_beastblood_fungus": {
      "asset": "tiles/crafting/beastblood_fungus.png",
      "baseId": "beastblood_fungus",
      "className": "BeastbloodFungus",
      "description": "On Pickup:\nHeal 2 HP per turn for the remainder of the level",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_beastblood_fungus.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/beastblood_fungus.png",
      "id": "component_beastblood_fungus",
      "kind": "component",
      "name": "Beastblood Fungus",
      "rare": false,
      "tags": [
        "Nature",
        "Blood"
      ],
      "tier": 2,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "apply_buff"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 522,
              "snippet": "class BeastbloodFungus",
              "symbol": "BeastbloodFungus.on_pickup"
            }
          ],
          "id": "hook_5_beastbloodfungus_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_binding_ring": {
      "asset": "tiles/crafting/binding_ring.png",
      "baseId": "binding_ring",
      "className": "BindingRing",
      "description": "On Pickup:\nTurns the nearest [Demon] or [Arcane] unit into an ally",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_binding_ring.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/binding_ring.png",
      "id": "component_binding_ring",
      "kind": "component",
      "name": "Binding Ring",
      "rare": false,
      "tags": [
        "Conjuration",
        "Enchantment"
      ],
      "tier": 2,
      "virtualVariants": [
        {
          "action": {
            "calls": [],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 420,
              "snippet": "class BindingRing",
              "symbol": "BindingRing.on_pickup"
            }
          ],
          "id": "hook_6_bindingring_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_blood_basin": {
      "asset": "tiles/crafting/blood_basin.png",
      "baseId": "blood_basin",
      "className": "BloodBasin",
      "description": "On Pickup:\nCast Pain Mirror",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 2,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_blood_basin.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/blood_basin.png",
      "id": "component_blood_basin",
      "kind": "component",
      "name": "Blood Basin",
      "rare": false,
      "tags": [
        "Blood",
        "Ritual"
      ],
      "tier": 2,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "act_cast",
              "get_or_make_spell"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 723,
              "snippet": "class BloodBasin",
              "symbol": "BloodBasin.on_pickup"
            }
          ],
          "id": "hook_7_bloodbasin_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_bloodrage_serum": {
      "asset": "tiles/crafting/bloodrage_serum.png",
      "baseId": "bloodrage_serum",
      "className": "BloodrageSerum",
      "description": "On Craft:\nIf the crafted equipment has the [Blood] tag, it grants a stack of [Bloodrage:blood] for 3 turns when an enemy damages you\n[Bloodrage:blood] grants all spells and equipment +1 [damage]",
      "effectHooks": [
        "on_craft"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": true,
      "hasOnPickup": false,
      "icon": "icons/runtime/component_bloodrage_serum.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/bloodrage_serum.png",
      "id": "component_bloodrage_serum",
      "kind": "component",
      "name": "Bloodrage Serum",
      "rare": true,
      "tags": [
        "Blood",
        "Blood"
      ],
      "tier": "rare",
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "add_event_trigger"
            ],
            "type": "component_craft"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 1289,
              "snippet": "class BloodrageSerum",
              "symbol": "BloodrageSerum.on_craft"
            }
          ],
          "id": "hook_8_bloodrageserum_target_component_craft",
          "kind": "component_craft",
          "state": [],
          "title": "component_craft"
        }
      ]
    },
    "component_broken_stopwatch": {
      "asset": "tiles/crafting/broken_stopwatch.png",
      "baseId": "broken_stopwatch",
      "className": "BrokenStopwatch",
      "description": "On Craft:\nIf used to craft a piece of equipment with the [duration] attribute, it gains +3 duration",
      "effectHooks": [
        "on_craft"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": true,
      "hasOnPickup": false,
      "icon": "icons/runtime/component_broken_stopwatch.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/broken_stopwatch.png",
      "id": "component_broken_stopwatch",
      "kind": "component",
      "name": "Broken Stopwatch",
      "rare": true,
      "tags": [
        "Arcane",
        "Enchantment",
        "Metallic"
      ],
      "tier": "rare",
      "virtualVariants": [
        {
          "action": {
            "calls": [],
            "type": "component_craft"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 1482,
              "snippet": "class BrokenStopwatch",
              "symbol": "BrokenStopwatch.on_craft"
            }
          ],
          "id": "hook_9_brokenstopwatch_target_component_craft",
          "kind": "component_craft",
          "state": [],
          "title": "component_craft"
        }
      ]
    },
    "component_burning_ember": {
      "asset": "tiles/crafting/burning_ember.png",
      "baseId": "burning_ember",
      "className": "BurningEmber",
      "description": "On Pickup:\nGain a damage aura that deals 6 [Fire] damage to enemies within 5 tiles for 15 turns",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_burning_ember.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/burning_ember.png",
      "id": "component_burning_ember",
      "kind": "component",
      "name": "Burning Ember",
      "rare": false,
      "tags": [
        "Fire"
      ],
      "tier": 1,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "apply_buff"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 45,
              "snippet": "class BurningEmber",
              "symbol": "BurningEmber.on_pickup"
            }
          ],
          "id": "hook_10_burningember_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_chaos_seed": {
      "asset": "tiles/crafting/chaos_seed.png",
      "baseId": "chaos_seed",
      "className": "ChaosSeed",
      "description": "On Craft:\nIf the crafted equipment has the [Nature] tag, it gains the [Chaos] tag\nAny attribute bonuses the equipment provides to [Nature] spells and equipment are also provided to [Chaos] spells and equipment\nAny effects which trigger specifically from [Nature] spells also trigger from [Chaos] spells",
      "effectHooks": [
        "on_craft"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 3,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": true,
      "hasOnPickup": false,
      "icon": "icons/runtime/component_chaos_seed.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/chaos_seed.png",
      "id": "component_chaos_seed",
      "kind": "component",
      "name": "Chaos Seed",
      "rare": true,
      "tags": [
        "Chaos",
        "Nature"
      ],
      "tier": "rare",
      "virtualVariants": [
        {
          "action": {
            "tag": "Chaos",
            "target": "Nature crafted equipment",
            "type": "adds_tag"
          },
          "conditions": [
            "crafted equipment has Nature tag"
          ],
          "evidence": [
            {
              "file": "Components.py",
              "line": 1363,
              "snippet": "if Tags.Chaos not in equipment.tags: equipment.tags.append(Tags.Chaos)",
              "symbol": "ChaosSeed.on_craft"
            }
          ],
          "id": "effect_chaos_seed_adds_chaos_tag",
          "kind": "adds_tag",
          "state": [
            {
              "target": "crafted equipment",
              "type": "permanent_mutation"
            }
          ],
          "title": "Adds Chaos tag"
        },
        {
          "action": {
            "bonusTypes": [
              "tag_bonuses",
              "tag_bonuses_pct",
              "trigger_tags"
            ],
            "fromTag": "Nature",
            "toTag": "Chaos",
            "type": "copies_bonus"
          },
          "conditions": [
            "crafted equipment has Nature tag"
          ],
          "evidence": [
            {
              "file": "Components.py",
              "line": 1366,
              "snippet": "equipment.tag_bonuses[Tags.Chaos][stat] += val",
              "symbol": "ChaosSeed.on_craft"
            },
            {
              "file": "Components.py",
              "line": 1372,
              "snippet": "equipment.trigger_tags.append(Tags.Chaos)",
              "symbol": "ChaosSeed.on_craft"
            }
          ],
          "id": "effect_chaos_seed_copies_nature_bonuses",
          "kind": "copies_bonus",
          "state": [
            {
              "target": "crafted equipment",
              "type": "permanent_mutation"
            }
          ],
          "title": "Copies crafted bonuses"
        },
        {
          "action": {
            "calls": [],
            "type": "component_craft"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 1353,
              "snippet": "class ChaosSeed",
              "symbol": "ChaosSeed.on_craft"
            }
          ],
          "id": "hook_11_chaosseed_target_component_craft",
          "kind": "component_craft",
          "state": [],
          "title": "component_craft"
        }
      ]
    },
    "component_charged_cog": {
      "asset": "tiles/crafting/charged_cog.png",
      "baseId": "charged_cog",
      "className": "ChargedCog",
      "description": "On Pickup:\nSummon a friendly Copper Spikeball",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_charged_cog.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/charged_cog.png",
      "id": "component_charged_cog",
      "kind": "component",
      "name": "Charged Cog",
      "rare": false,
      "tags": [
        "Metallic",
        "Lightning"
      ],
      "tier": 2,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "summon"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 561,
              "snippet": "class ChargedCog",
              "symbol": "ChargedCog.on_pickup"
            }
          ],
          "id": "hook_12_chargedcog_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_charred_relic": {
      "asset": "tiles/crafting/charred_relic.png",
      "baseId": "charred_relic",
      "className": "CharredRelic",
      "description": "On Craft:\nIf the crafted equipment has the [Holy] tag, it grants a random [Holy] spell you know +1 to each of its base attributes",
      "effectHooks": [
        "on_craft"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 2,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": true,
      "hasOnPickup": false,
      "icon": "icons/runtime/component_charred_relic.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/charred_relic.png",
      "id": "component_charred_relic",
      "kind": "component",
      "name": "Charred Relic",
      "rare": true,
      "tags": [
        "Fire",
        "Holy",
        "Metallic"
      ],
      "tier": "rare",
      "virtualVariants": [
        {
          "action": {
            "bonus": "+1 to each base attribute of a random known Holy spell",
            "displayOnly": true,
            "type": "adds_bonus"
          },
          "conditions": [
            "crafted equipment has Holy tag",
            "player knows a Holy spell with base stats"
          ],
          "evidence": [
            {
              "file": "Components.py",
              "line": 1383,
              "snippet": "if Tags.Holy not in equipment.tags: return",
              "symbol": "CharredRelic.on_craft"
            },
            {
              "file": "Components.py",
              "line": 1389,
              "snippet": "for stat in attrs: equipment.spell_bonuses[type(s)][stat] += 1",
              "symbol": "CharredRelic.on_craft"
            }
          ],
          "id": "effect_charred_relic_holy_spell_bonus",
          "kind": "adds_bonus",
          "state": [
            {
              "target": "crafted equipment",
              "type": "permanent_mutation"
            },
            {
              "name": "random Holy spell chosen at craft time",
              "type": "loadout"
            }
          ],
          "title": "Adds crafted bonus"
        },
        {
          "action": {
            "calls": [
              "refund_charges"
            ],
            "type": "component_craft"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 1376,
              "snippet": "class CharredRelic",
              "symbol": "CharredRelic.on_craft"
            }
          ],
          "id": "hook_13_charredrelic_target_component_craft",
          "kind": "component_craft",
          "state": [],
          "title": "component_craft"
        }
      ]
    },
    "component_chimera_eyes": {
      "asset": "tiles/crafting/chimera_eyes.png",
      "baseId": "chimera_eyes",
      "className": "ChimeraEyes",
      "description": "On Craft:\nIf the crafted equipment has the [Chaos] or [Eye] tags, it grants [Eye] spells you know a random upgrade",
      "effectHooks": [
        "on_craft"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 2,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": true,
      "hasOnPickup": false,
      "icon": "icons/runtime/component_chimera_eyes.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/chimera_eyes.png",
      "id": "component_chimera_eyes",
      "kind": "component",
      "name": "Chimera Eyes",
      "rare": true,
      "tags": [
        "Eye",
        "Chaos",
        "Eye"
      ],
      "tier": "rare",
      "virtualVariants": [
        {
          "action": {
            "displayOnly": true,
            "label": "grants known Eye spells a random upgrade",
            "type": "mutates_spell"
          },
          "conditions": [
            "crafted equipment has Chaos or Eye tag",
            "player knows an Eye spell with unowned upgrades"
          ],
          "evidence": [
            {
              "file": "Components.py",
              "line": 1416,
              "snippet": "if Tags.Chaos in equipment.tags or Tags.Eye in equipment.tags:",
              "symbol": "ChimeraEyes.on_craft"
            },
            {
              "file": "Components.py",
              "line": 1425,
              "snippet": "player.apply_buff(upgrade)",
              "symbol": "ChimeraEyes.on_craft"
            }
          ],
          "id": "effect_chimera_eyes_grants_eye_upgrades",
          "kind": "mutates_spell",
          "state": [
            {
              "target": "known spells",
              "type": "permanent_mutation"
            },
            {
              "name": "random upgrade chosen per eligible Eye spell",
              "type": "loadout"
            }
          ],
          "title": "Mutates a known spell"
        },
        {
          "action": {
            "calls": [
              "apply_buff"
            ],
            "type": "component_craft"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 1409,
              "snippet": "class ChimeraEyes",
              "symbol": "ChimeraEyes.on_craft"
            }
          ],
          "id": "hook_14_chimeraeyes_target_component_craft",
          "kind": "component_craft",
          "state": [],
          "title": "component_craft"
        }
      ]
    },
    "component_crimson_sigil": {
      "asset": "tiles/crafting/crimson_sigil.png",
      "baseId": "crimson_sigil",
      "className": "CrimsonSigil",
      "description": "On Pickup:\nCast Drain Pulse",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 2,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_crimson_sigil.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/crimson_sigil.png",
      "id": "component_crimson_sigil",
      "kind": "component",
      "name": "Crimson Sigil",
      "rare": false,
      "tags": [
        "Blood",
        "Sorcery"
      ],
      "tier": 2,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "act_cast",
              "get_or_make_spell"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 590,
              "snippet": "class CrimsonSigil",
              "symbol": "CrimsonSigil.on_pickup"
            }
          ],
          "id": "hook_15_crimsonsigil_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_cursed_dice": {
      "asset": "tiles/crafting/cursed_dice.png",
      "baseId": "cursed_dice",
      "className": "CursedDice",
      "description": "On Pickup:\nCast Wheel of Death between 2 and 12 times",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 3,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_cursed_dice.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/cursed_dice.png",
      "id": "component_cursed_dice",
      "kind": "component",
      "name": "Cursed Dice",
      "rare": false,
      "tags": [
        "Dark",
        "Sorcery"
      ],
      "tier": 2,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "get_or_make_spell",
              "act_cast"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 851,
              "snippet": "class CursedDice",
              "symbol": "CursedDice.on_pickup"
            }
          ],
          "id": "hook_16_curseddice_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_cursed_seal": {
      "asset": "tiles/crafting/cursed_seal.png",
      "baseId": "cursed_seal",
      "className": "CursedSeal",
      "description": "On Pickup:\nCast Seal Fate on all enemies in your line of sight",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 3,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_cursed_seal.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/cursed_seal.png",
      "id": "component_cursed_seal",
      "kind": "component",
      "name": "Cursed Seal",
      "rare": false,
      "tags": [
        "Dark",
        "Enchantment"
      ],
      "tier": 2,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "get_or_make_spell",
              "act_cast"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 448,
              "snippet": "class CursedSeal",
              "symbol": "CursedSeal.on_pickup"
            }
          ],
          "id": "hook_17_cursedseal_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_defiled_reliquary": {
      "asset": "tiles/crafting/defiled_reliquary.png",
      "baseId": "defiled_reliquary",
      "className": "DefiledReliquary",
      "description": "On Pickup:\nSummon a Defiled Reliquary nearby\nEach turn, it deals 10 [Dark] or [Holy] damage to enemies within 5 tiles",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_defiled_reliquary.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/defiled_reliquary.png",
      "id": "component_defiled_reliquary",
      "kind": "component",
      "name": "Defiled Reliquary",
      "rare": false,
      "tags": [
        "Dark",
        "Holy",
        "Metallic"
      ],
      "tier": 3,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "summon"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 1046,
              "snippet": "class DefiledReliquary",
              "symbol": "DefiledReliquary.on_pickup"
            }
          ],
          "id": "hook_18_defiledreliquary_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_devil_s_blood": {
      "asset": "tiles/crafting/devil's_blood.png",
      "baseId": "devil_s_blood",
      "className": "DevilsBlood",
      "description": "On Pickup:\nSteal 2 max HP from each [Demon] in line of sight",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_devil_s_blood.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/crafting/devils_blood.png",
      "id": "component_devil_s_blood",
      "kind": "component",
      "name": "Devil's Blood",
      "rare": false,
      "tags": [
        "Blood",
        "Chaos"
      ],
      "tier": 2,
      "virtualVariants": [
        {
          "action": {
            "calls": [],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 289,
              "snippet": "class DevilsBlood",
              "symbol": "DevilsBlood.on_pickup"
            }
          ],
          "id": "hook_19_devilsblood_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_dragon_ambrosia": {
      "asset": "tiles/crafting/dragon_ambrosia.png",
      "baseId": "dragon_ambrosia",
      "className": "DragonAmbrosia",
      "description": "On Craft:\nIf the crafted equipment has the [Dragon] tag, it grants +1 [max charges:max_charges] to all [Dragon] spells for each [Dragon] spell you know",
      "effectHooks": [
        "on_craft"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 2,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": true,
      "hasOnPickup": false,
      "icon": "icons/runtime/component_dragon_ambrosia.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/dragon_ambrosia.png",
      "id": "component_dragon_ambrosia",
      "kind": "component",
      "name": "Dragon Ambrosia",
      "rare": true,
      "tags": [
        "Dragon",
        "Dragon"
      ],
      "tier": "rare",
      "virtualVariants": [
        {
          "action": {
            "bonuses": {
              "max_charges": "1 per known Dragon spell"
            },
            "tag": "Dragon",
            "type": "adds_bonus"
          },
          "conditions": [
            "crafted equipment has Dragon tag"
          ],
          "evidence": [
            {
              "file": "Components.py",
              "line": 1400,
              "snippet": "if Tags.Dragon not in equipment.tags: return",
              "symbol": "DragonAmbrosia.on_craft"
            },
            {
              "file": "Components.py",
              "line": 1403,
              "snippet": "equipment.tag_bonuses[Tags.Dragon]['max_charges'] += len(dragon_spells)",
              "symbol": "DragonAmbrosia.on_craft"
            }
          ],
          "id": "effect_dragon_ambrosia_dragon_charges",
          "kind": "adds_bonus",
          "state": [
            {
              "target": "crafted equipment",
              "type": "permanent_mutation"
            },
            {
              "name": "amount equals the number of Dragon spells known at craft time",
              "type": "loadout"
            }
          ],
          "title": "Adds crafted bonus"
        },
        {
          "action": {
            "calls": [
              "refund_charges"
            ],
            "type": "component_craft"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 1393,
              "snippet": "class DragonAmbrosia",
              "symbol": "DragonAmbrosia.on_craft"
            }
          ],
          "id": "hook_20_dragonambrosia_target_component_craft",
          "kind": "component_craft",
          "state": [],
          "title": "component_craft"
        }
      ]
    },
    "component_dragontongue_tablet": {
      "asset": "tiles/crafting/dragontongue_tablet.png",
      "baseId": "dragontongue_tablet",
      "className": "DragontongueTablet",
      "description": "On Pickup:\nGain 1 SP if you know a [Dragon] spell",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_dragontongue_tablet.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/dragontongue_tablet.png",
      "id": "component_dragontongue_tablet",
      "kind": "component",
      "name": "Dragontongue Tablet",
      "rare": false,
      "tags": [
        "Dragon",
        "Word"
      ],
      "tier": 2,
      "virtualVariants": [
        {
          "action": {
            "calls": [],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 834,
              "snippet": "class DragontongueTablet",
              "symbol": "DragontongueTablet.on_pickup"
            }
          ],
          "id": "hook_21_dragontonguetablet_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_drakentooth": {
      "asset": "tiles/crafting/drakentooth.png",
      "baseId": "drakentooth",
      "className": "Drakentooth",
      "description": "On Pickup:\nSummon a pair of Fire Drakes to fight for you",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_drakentooth.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/drakentooth.png",
      "id": "component_drakentooth",
      "kind": "component",
      "name": "Drakentooth",
      "rare": false,
      "tags": [
        "Dragon",
        "Fire"
      ],
      "tier": 2,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "summon",
              "summon"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 274,
              "snippet": "class Drakentooth",
              "symbol": "Drakentooth.on_pickup"
            }
          ],
          "id": "hook_22_drakentooth_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_dreamthorn_vine": {
      "asset": "tiles/crafting/dreamthorn_vine.png",
      "baseId": "dreamthorn_vine",
      "className": "DreamthornVine",
      "description": "On Pickup:\nThe nearest enemy is [stunned] for 6 turns, and you cast Prison of Thorns on them",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 2,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_dreamthorn_vine.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/dreamthorn_vine.png",
      "id": "component_dreamthorn_vine",
      "kind": "component",
      "name": "Dreamthorn Vine",
      "rare": false,
      "tags": [
        "Arcane",
        "Nature"
      ],
      "tier": 2,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "queue_spell"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 692,
              "snippet": "class DreamthornVine",
              "symbol": "DreamthornVine.on_pickup"
            }
          ],
          "id": "hook_23_dreamthornvine_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_eidolon_s_strings": {
      "asset": "tiles/crafting/eidolon's_strings.png",
      "baseId": "eidolon_s_strings",
      "className": "EidolonsStrings",
      "description": "On Pickup:\n[Arcane] enemies are [berserked] for 12 turns",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_eidolon_s_strings.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/crafting/eidolons_strings.png",
      "id": "component_eidolon_s_strings",
      "kind": "component",
      "name": "Eidolon's Strings",
      "rare": false,
      "tags": [
        "Arcane",
        "Dark",
        "Enchantment"
      ],
      "tier": 3,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "queue_spell"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 921,
              "snippet": "class EidolonsStrings",
              "symbol": "EidolonsStrings.on_pickup"
            }
          ],
          "id": "hook_24_eidolonsstrings_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_elemental_ice": {
      "asset": "tiles/crafting/elemental_ice.png",
      "baseId": "elemental_ice",
      "className": "ElementalIce",
      "description": "On Pickup:\nGain 7 [SH:shields]",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_elemental_ice.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/elemental_ice.png",
      "id": "component_elemental_ice",
      "kind": "component",
      "name": "Elemental Ice",
      "rare": false,
      "tags": [
        "Ice"
      ],
      "tier": 1,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "add_shields"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 58,
              "snippet": "class ElementalIce",
              "symbol": "ElementalIce.on_pickup"
            }
          ],
          "id": "hook_25_elementalice_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_enchanter_s_awl": {
      "asset": "tiles/crafting/enchanter's_awl.png",
      "baseId": "enchanter_s_awl",
      "className": "EnchantersAwl",
      "description": "On Craft:\nIf the crafted equipment has the [Enchantment] tag, this is returned to your inventory after being used",
      "effectHooks": [
        "on_craft"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": true,
      "hasOnPickup": false,
      "icon": "icons/runtime/component_enchanter_s_awl.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/crafting/enchanters_awl.png",
      "id": "component_enchanter_s_awl",
      "kind": "component",
      "name": "Enchanter's Awl",
      "rare": true,
      "tags": [
        "Enchantment"
      ],
      "tier": "rare",
      "virtualVariants": [
        {
          "action": {
            "calls": [],
            "type": "component_craft"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 1258,
              "snippet": "class EnchantersAwl",
              "symbol": "EnchantersAwl.on_craft"
            }
          ],
          "id": "hook_26_enchantersawl_target_component_craft",
          "kind": "component_craft",
          "state": [],
          "title": "component_craft"
        }
      ]
    },
    "component_flame_blade_fragment": {
      "asset": "tiles/crafting/flame_blade_fragment.png",
      "baseId": "flame_blade_fragment",
      "className": "FlameBladeFragment",
      "description": "On Craft:\nThe crafted equipment grants a +3 [damage] bonus to spells and equipment to each of its tags",
      "effectHooks": [
        "on_craft"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 2,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": true,
      "hasOnPickup": false,
      "icon": "icons/runtime/component_flame_blade_fragment.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/flame_blade_fragment.png",
      "id": "component_flame_blade_fragment",
      "kind": "component",
      "name": "Flame Blade Fragment",
      "rare": true,
      "tags": [
        "Fire",
        "Metallic"
      ],
      "tier": "rare",
      "virtualVariants": [
        {
          "action": {
            "bonus": "tag_bonuses[tag]['damage'] += 3",
            "forEach": "crafted equipment tag",
            "type": "adds_bonus"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 1316,
              "snippet": "for t in equipment.tags: equipment.tag_bonuses[t]['damage'] += 3",
              "symbol": "FlameBladeFragment.on_craft"
            }
          ],
          "id": "effect_flame_blade_fragment_tag_damage",
          "kind": "adds_bonus",
          "state": [
            {
              "target": "crafted equipment",
              "type": "permanent_mutation"
            }
          ],
          "title": "Adds crafted bonus"
        },
        {
          "action": {
            "calls": [],
            "type": "component_craft"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 1308,
              "snippet": "class FlameBladeFragment",
              "symbol": "FlameBladeFragment.on_craft"
            }
          ],
          "id": "hook_27_flamebladefragment_target_component_craft",
          "kind": "component_craft",
          "state": [],
          "title": "component_craft"
        }
      ]
    },
    "component_frost_core": {
      "asset": "tiles/crafting/frost_core.png",
      "baseId": "frost_core",
      "className": "FrostCore",
      "description": "On Pickup:\nInflict 10 [Ice] damage and 3 turns of [frozen] on enemies within [2:radius] tiles\nEach time this effect repeats, its [radius] is increased by 1\nThis effect repeats every 6 turns until the end of the level",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_frost_core.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/frost_core.png",
      "id": "component_frost_core",
      "kind": "component",
      "name": "Frost Core",
      "rare": false,
      "tags": [
        "Ice",
        "Sorcery",
        "Metallic"
      ],
      "tier": 3,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "apply_buff"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 1200,
              "snippet": "class FrostCore",
              "symbol": "FrostCore.on_pickup"
            }
          ],
          "id": "hook_28_frostcore_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_frostpetal": {
      "asset": "tiles/crafting/frostpetal.png",
      "baseId": "frostpetal",
      "className": "Frostpetal",
      "description": "On Pickup:\nGain 75% [Ice] resist and regenerate 3 HP per turn for 25 turns",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_frostpetal.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/frostpetal.png",
      "id": "component_frostpetal",
      "kind": "component",
      "name": "Frostpetal",
      "rare": false,
      "tags": [
        "Ice",
        "Nature"
      ],
      "tier": 2,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "apply_buff",
              "apply_buff"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 354,
              "snippet": "class Frostpetal",
              "symbol": "Frostpetal.on_pickup"
            }
          ],
          "id": "hook_29_frostpetal_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_frozen_heartwood": {
      "asset": "tiles/crafting/frozen_heartwood.png",
      "baseId": "frozen_heartwood",
      "className": "FrozenHeartwood",
      "description": "On Pickup:\nInflict 50 [Ice] damage and 6 turns of [frozen] on enemies within 5 tiles\nAllies are healed instead",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_frozen_heartwood.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/frozen_heartwood.png",
      "id": "component_frozen_heartwood",
      "kind": "component",
      "name": "Frozen Heartwood",
      "rare": false,
      "tags": [
        "Blood",
        "Ice",
        "Nature"
      ],
      "tier": 3,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "queue_spell"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 883,
              "snippet": "class FrozenHeartwood",
              "symbol": "FrozenHeartwood.on_pickup"
            }
          ],
          "id": "hook_30_frozenheartwood_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_fulminite_shard": {
      "asset": "tiles/crafting/fulminite_shard.png",
      "baseId": "fulminite_shard",
      "className": "FulminiteShard",
      "description": "On Pickup:\nCast Chain Lightning targeting the first enemy that damages you each turn for the remainder of the level",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_fulminite_shard.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/fulminite_shard.png",
      "id": "component_fulminite_shard",
      "kind": "component",
      "name": "Fulminite Shard",
      "rare": false,
      "tags": [
        "Lightning",
        "Enchantment"
      ],
      "tier": 2,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "apply_buff"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 635,
              "snippet": "class FulminiteShard",
              "symbol": "FulminiteShard.on_pickup"
            }
          ],
          "id": "hook_31_fulminiteshard_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_geargraft_shrine": {
      "baseId": "geargraft_shrine",
      "category": "shrine",
      "className": "GearGraftShrine",
      "description": "Effect-only shrine source extracted from RW3 source evidence.",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "effect-ast",
      "icon": "icons/runtime/component_geargraft_shrine.png",
      "iconFallback": false,
      "iconMatch": "stem-anywhere",
      "iconSource": "tiles/shrine/geargraft_shrine.png",
      "id": "component_geargraft_shrine",
      "kind": "component",
      "name": "Geargraft Shrine",
      "tags": [
        "Shrine"
      ],
      "virtualVariants": [
        {
          "action": {
            "from": "sacrificed component tags",
            "selection": "random missing component tag",
            "to": "equipment.tags",
            "type": "adds_tag"
          },
          "conditions": [
            "equipment lacks at least one selected component tag"
          ],
          "evidence": [
            {
              "file": "LevelRewards.py",
              "line": 358,
              "snippet": "class GearGraftShrine(Shop):",
              "symbol": "GearGraftShrine"
            },
            {
              "file": "LevelRewards.py",
              "line": 393,
              "snippet": "gear.tags.append(t)",
              "symbol": "GearGraftShrine.buy"
            },
            {
              "file": "LevelRewards.py",
              "line": 394,
              "snippet": "player.remove_component(self.selected_component)",
              "symbol": "GearGraftShrine.buy"
            }
          ],
          "id": "effect_geargraft_shrine_adds_component_tag",
          "kind": "mutates_item",
          "state": [
            {
              "target": "owned equipment",
              "type": "permanent_mutation"
            },
            {
              "target": "selected component",
              "type": "consumes_component"
            }
          ],
          "title": "Adds a tag"
        }
      ]
    },
    "component_glacial_script": {
      "asset": "tiles/crafting/glacial_script.png",
      "baseId": "glacial_script",
      "className": "GlacialScript",
      "description": "On Pickup:\nCast your self-targeted [Ice] spells",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_glacial_script.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/glacial_script.png",
      "id": "component_glacial_script",
      "kind": "component",
      "name": "Glacial Script",
      "rare": false,
      "tags": [
        "Ice",
        "Word"
      ],
      "tier": 2,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "act_cast"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 511,
              "snippet": "class GlacialScript",
              "symbol": "GlacialScript.on_pickup"
            }
          ],
          "id": "hook_32_glacialscript_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_golden_dragonscale": {
      "asset": "tiles/crafting/golden_dragonscale.png",
      "baseId": "golden_dragonscale",
      "className": "GoldenDragonscale",
      "description": "On Pickup:\nDeal [10 Holy:holy] damage to enemies that harm you for the remainder of the level",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_golden_dragonscale.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/golden_dragonscale.png",
      "id": "component_golden_dragonscale",
      "kind": "component",
      "name": "Golden Dragonscale",
      "rare": false,
      "tags": [
        "Dragon",
        "Holy"
      ],
      "tier": 2,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "apply_buff"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 821,
              "snippet": "class GoldenDragonscale",
              "symbol": "GoldenDragonscale.on_pickup"
            }
          ],
          "id": "hook_33_goldendragonscale_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_hag_heart": {
      "asset": "tiles/crafting/hag_heart.png",
      "baseId": "hag_heart",
      "className": "HagHeart",
      "description": "On Pickup:\nDeal 1 [Dark] damage to all other [Living] units in line of sight\nHeal for damage dealt this way\nThis effect repeats every turn until the end of the level",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_hag_heart.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/hag_heart.png",
      "id": "component_hag_heart",
      "kind": "component",
      "name": "Hag Heart",
      "rare": false,
      "tags": [
        "Dark",
        "Blood",
        "Sorcery"
      ],
      "tier": 3,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "apply_buff"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 1129,
              "snippet": "class HagHeart",
              "symbol": "HagHeart.on_pickup"
            }
          ],
          "id": "hook_34_hagheart_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_heart_fragment": {
      "asset": "tiles/crafting/heart_fragment.png",
      "baseId": "heart_fragment",
      "className": "HeartFragment",
      "description": "On Pickup:\nGain 10 max HP",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_heart_fragment.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/heart_fragment.png",
      "id": "component_heart_fragment",
      "kind": "component",
      "name": "Heart Fragment",
      "rare": false,
      "tags": [
        "Blood"
      ],
      "tier": 1,
      "virtualVariants": [
        {
          "action": {
            "calls": [],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 165,
              "snippet": "class HeartFragment",
              "symbol": "HeartFragment.on_pickup"
            }
          ],
          "id": "hook_35_heartfragment_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_hellbloom": {
      "asset": "tiles/crafting/hellbloom.png",
      "baseId": "hellbloom",
      "className": "Hellbloom",
      "description": "On Pickup:\nSummon 9 friendly Hellhounds which appear at random locations",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_hellbloom.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/hellbloom.png",
      "id": "component_hellbloom",
      "kind": "component",
      "name": "Hellbloom",
      "rare": false,
      "tags": [
        "Fire",
        "Nature"
      ],
      "tier": 2,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "summon"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 461,
              "snippet": "class Hellbloom",
              "symbol": "Hellbloom.on_pickup"
            }
          ],
          "id": "hook_36_hellbloom_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_holy_icon": {
      "asset": "tiles/crafting/holy_icon.png",
      "baseId": "holy_icon",
      "className": "HolyIcon",
      "description": "On Pickup:\nSummon a False Prophet to fight for you",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_holy_icon.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/holy_icon.png",
      "id": "component_holy_icon",
      "kind": "component",
      "name": "Holy Icon",
      "rare": false,
      "tags": [
        "Holy"
      ],
      "tier": 1,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "summon"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 135,
              "snippet": "class HolyIcon",
              "symbol": "HolyIcon.on_pickup"
            }
          ],
          "id": "hook_37_holyicon_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_holy_water": {
      "asset": "tiles/crafting/holy_water.png",
      "baseId": "holy_water",
      "className": "HolyWater",
      "description": "On Pickup:\nRemove all debuffs from yourself\nGain 75% [Dark] and [Fire] resistance that lasts for the remainder of the level",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_holy_water.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/holy_water.png",
      "id": "component_holy_water",
      "kind": "component",
      "name": "Holy Water",
      "rare": false,
      "tags": [
        "Holy",
        "Ritual"
      ],
      "tier": 2,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "apply_buff",
              "apply_buff"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 732,
              "snippet": "class HolyWater",
              "symbol": "HolyWater.on_pickup"
            }
          ],
          "id": "hook_38_holywater_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_ice_wyrm_scale": {
      "asset": "tiles/crafting/ice_wyrm_scale.png",
      "baseId": "ice_wyrm_scale",
      "className": "IceWyrmScale",
      "description": "On Pickup:\nSummon a friendly Ice Wyrm Egg nearby",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_ice_wyrm_scale.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/ice_wyrm_scale.png",
      "id": "component_ice_wyrm_scale",
      "kind": "component",
      "name": "Ice Wyrm Scale",
      "rare": false,
      "tags": [
        "Dragon",
        "Ice"
      ],
      "tier": 2,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "summon"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 792,
              "snippet": "class IceWyrmScale",
              "symbol": "IceWyrmScale.on_pickup"
            }
          ],
          "id": "hook_39_icewyrmscale_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_incense": {
      "asset": "tiles/crafting/incense.png",
      "baseId": "incense",
      "className": "Incense",
      "description": "On Pickup:\nSummon a triad of Faeries to fight for you",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_incense.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/incense.png",
      "id": "component_incense",
      "kind": "component",
      "name": "Incense",
      "rare": false,
      "tags": [
        "Conjuration"
      ],
      "tier": 1,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "summon"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 222,
              "snippet": "class Incense",
              "symbol": "Incense.on_pickup"
            }
          ],
          "id": "hook_40_incense_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_ironbark_plate": {
      "asset": "tiles/crafting/ironbark_plate.png",
      "baseId": "ironbark_plate",
      "className": "IronbarkPlate",
      "description": "On Craft:\nIf the crafted equipment has the [Nature] or [Metallic] tag, it gains +25% [Physical] and [Poison] resistances",
      "effectHooks": [
        "on_craft"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 2,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": true,
      "hasOnPickup": false,
      "icon": "icons/runtime/component_ironbark_plate.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/ironbark_plate.png",
      "id": "component_ironbark_plate",
      "kind": "component",
      "name": "Ironbark Plate",
      "rare": true,
      "tags": [
        "Nature",
        "Metallic"
      ],
      "tier": "rare",
      "virtualVariants": [
        {
          "action": {
            "calls": [],
            "type": "component_craft"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 1319,
              "snippet": "class IronbarkPlate",
              "symbol": "IronbarkPlate.on_craft"
            }
          ],
          "id": "hook_41_ironbarkplate_target_component_craft",
          "kind": "component_craft",
          "state": [],
          "title": "component_craft"
        }
      ]
    },
    "component_journeystone": {
      "asset": "tiles/crafting/journeystone.png",
      "baseId": "journeystone",
      "className": "Journeystone",
      "description": "On Craft:\nIf the crafted equipment has the [Translocation] tag, it grants +3 [range] and [max charges:max_charges] to your [Translocation] spells and equipment",
      "effectHooks": [
        "on_craft"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 2,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": true,
      "hasOnPickup": false,
      "icon": "icons/runtime/component_journeystone.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/journeystone.png",
      "id": "component_journeystone",
      "kind": "component",
      "name": "Journeystone",
      "rare": true,
      "tags": [
        "Translocation"
      ],
      "tier": "rare",
      "virtualVariants": [
        {
          "action": {
            "bonuses": {
              "max_charges": 3,
              "range": 3
            },
            "tag": "Translocation",
            "type": "adds_bonus"
          },
          "conditions": [
            "crafted equipment has Translocation tag"
          ],
          "evidence": [
            {
              "file": "Components.py",
              "line": 1242,
              "snippet": "equipment.tag_bonuses[Tags.Translocation]['range'] += 3",
              "symbol": "Journeystone.on_craft"
            },
            {
              "file": "Components.py",
              "line": 1243,
              "snippet": "equipment.tag_bonuses[Tags.Translocation]['max_charges'] += 3",
              "symbol": "Journeystone.on_craft"
            }
          ],
          "id": "effect_journeystone_translocation_bonus",
          "kind": "adds_bonus",
          "state": [
            {
              "target": "crafted equipment",
              "type": "permanent_mutation"
            }
          ],
          "title": "Adds crafted bonus"
        },
        {
          "action": {
            "calls": [],
            "type": "component_craft"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 1234,
              "snippet": "class Journeystone",
              "symbol": "Journeystone.on_craft"
            }
          ],
          "id": "hook_42_journeystone_target_component_craft",
          "kind": "component_craft",
          "state": [],
          "title": "component_craft"
        }
      ]
    },
    "component_lightning_jar": {
      "asset": "tiles/crafting/lightning_jar.png",
      "baseId": "lightning_jar",
      "className": "LightningJar",
      "description": "On Pickup:\nGain [quickstep:translocation] for 25 turns",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_lightning_jar.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/lightning_jar.png",
      "id": "component_lightning_jar",
      "kind": "component",
      "name": "Lightning Jar",
      "rare": false,
      "tags": [
        "Lightning"
      ],
      "tier": 1,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "apply_buff"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 69,
              "snippet": "class LightningJar",
              "symbol": "LightningJar.on_pickup"
            }
          ],
          "id": "hook_43_lightningjar_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_lost_ring": {
      "asset": "tiles/crafting/lost_ring.png",
      "baseId": "lost_ring",
      "className": "LostRing",
      "description": "On Pickup:\nAdjacent enemies are [berserked] for 3 turns\nThis effect repeats every turn until the end of the level",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_lost_ring.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/lost_ring.png",
      "id": "component_lost_ring",
      "kind": "component",
      "name": "Lost Ring",
      "rare": false,
      "tags": [
        "Enchantment"
      ],
      "tier": 1,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "apply_buff"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 210,
              "snippet": "class LostRing",
              "symbol": "LostRing.on_pickup"
            }
          ],
          "id": "hook_44_lostring_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_luminous_threads": {
      "asset": "tiles/crafting/luminous_threads.png",
      "baseId": "luminous_threads",
      "className": "LuminousThreads",
      "description": "On Craft:\nIf the crafted equipment grants resistance, it grants [SH:shields] equal to your [Holy] mastery at the start of each level",
      "effectHooks": [
        "on_craft"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": true,
      "hasOnPickup": false,
      "icon": "icons/runtime/component_luminous_threads.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/luminous_threads.png",
      "id": "component_luminous_threads",
      "kind": "component",
      "name": "Luminous Threads",
      "rare": true,
      "tags": [
        "Enchantment",
        "Holy"
      ],
      "tier": "rare",
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "add_event_trigger"
            ],
            "type": "component_craft"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 1272,
              "snippet": "class LuminousThreads",
              "symbol": "LuminousThreads.on_craft"
            }
          ],
          "id": "hook_45_luminousthreads_target_component_craft",
          "kind": "component_craft",
          "state": [],
          "title": "component_craft"
        }
      ]
    },
    "component_magic_rune": {
      "asset": "tiles/crafting/magic_rune.png",
      "baseId": "magic_rune",
      "className": "MagicRune",
      "description": "On Pickup:\n[Sorcery] spells and equipment gain +6 [damage] for 15 turns",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_magic_rune.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/magic_rune.png",
      "id": "component_magic_rune",
      "kind": "component",
      "name": "Magic Rune",
      "rare": false,
      "tags": [
        "Sorcery"
      ],
      "tier": 1,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "apply_buff"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 182,
              "snippet": "class MagicRune",
              "symbol": "MagicRune.on_pickup"
            }
          ],
          "id": "hook_46_magicrune_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_mirror_stone": {
      "asset": "tiles/crafting/mirror_stone.png",
      "baseId": "mirror_stone",
      "className": "MirrorStone",
      "description": "On Pickup:\nGain an additional copy of this component",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_mirror_stone.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/mirror_stone.png",
      "id": "component_mirror_stone",
      "kind": "component",
      "name": "Mirror Stone",
      "rare": false,
      "tags": [
        "Ritual",
        "Translocation"
      ],
      "tier": 2,
      "virtualVariants": [
        {
          "action": {
            "calls": [],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 746,
              "snippet": "class MirrorStone",
              "symbol": "MirrorStone.on_pickup"
            }
          ],
          "id": "hook_47_mirrorstone_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_mithril_ore": {
      "asset": "tiles/crafting/mithril_ore.png",
      "baseId": "mithril_ore",
      "className": "MithrilOre",
      "description": "On Craft:\nIf the crafted equipment has the [damage] attribute, it gains +9 damage",
      "effectHooks": [
        "on_craft"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": true,
      "hasOnPickup": false,
      "icon": "icons/runtime/component_mithril_ore.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/mithril_ore.png",
      "id": "component_mithril_ore",
      "kind": "component",
      "name": "Mithril Ore",
      "rare": true,
      "tags": [
        "Metallic"
      ],
      "tier": "rare",
      "virtualVariants": [
        {
          "action": {
            "calls": [],
            "type": "component_craft"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 1246,
              "snippet": "class MithrilOre",
              "symbol": "MithrilOre.on_craft"
            }
          ],
          "id": "hook_48_mithrilore_target_component_craft",
          "kind": "component_craft",
          "state": [],
          "title": "component_craft"
        }
      ]
    },
    "component_moonstone": {
      "asset": "tiles/crafting/moonstone.png",
      "baseId": "moonstone",
      "className": "Moonstone",
      "description": "On Pickup:\nSummon a friendly Lamasu",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_moonstone.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/moonstone.png",
      "id": "component_moonstone",
      "kind": "component",
      "name": "Moonstone",
      "rare": false,
      "tags": [
        "Conjuration",
        "Holy"
      ],
      "tier": 2,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "summon"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 863,
              "snippet": "class Moonstone",
              "symbol": "Moonstone.on_pickup"
            }
          ],
          "id": "hook_49_moonstone_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_mycelial_ooze": {
      "asset": "tiles/crafting/mycelial_ooze.png",
      "baseId": "mycelial_ooze",
      "className": "MycelialOoze",
      "description": "On Pickup:\nSummon 5 friendly Green Mushbooms nearby\nWhen they die, 3 Green Slimes are summoned from their corpses",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_mycelial_ooze.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/mycelial_ooze.png",
      "id": "component_mycelial_ooze",
      "kind": "component",
      "name": "Mycelial Ooze",
      "rare": false,
      "tags": [
        "Nature",
        "Slime"
      ],
      "tier": 2,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "summon"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 804,
              "snippet": "class MycelialOoze",
              "symbol": "MycelialOoze.on_pickup"
            }
          ],
          "id": "hook_50_mycelialooze_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_nacreous_cysts": {
      "asset": "tiles/crafting/nacreous_cysts.png",
      "baseId": "nacreous_cysts",
      "className": "NacreousCysts",
      "description": "On Pickup:\nGain a 50% chance to summon a friendly Green Slime each turn for the remainder of the level",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_nacreous_cysts.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/nacreous_cysts.png",
      "id": "component_nacreous_cysts",
      "kind": "component",
      "name": "Nacreous Cysts",
      "rare": false,
      "tags": [
        "Dark",
        "Metallic",
        "Slime"
      ],
      "tier": 3,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "apply_buff"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 1079,
              "snippet": "class NacreousCysts",
              "symbol": "NacreousCysts.on_pickup"
            }
          ],
          "id": "hook_51_nacreouscysts_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_odin_s_eye": {
      "asset": "tiles/crafting/odin's_eye.png",
      "baseId": "odin_s_eye",
      "className": "OdinsEye",
      "description": "On Craft:\nFor each of the crafted equipment's tags, cast a random self-targeted [Eye] spell you know with that tag at the beginning of each level",
      "effectHooks": [
        "on_craft"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": true,
      "hasOnPickup": false,
      "icon": "icons/runtime/component_odin_s_eye.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/crafting/odins_eye.png",
      "id": "component_odin_s_eye",
      "kind": "component",
      "name": "Odin's Eye",
      "rare": true,
      "tags": [
        "Eye"
      ],
      "tier": "rare",
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "add_event_trigger",
              "act_cast"
            ],
            "type": "component_craft"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 1463,
              "snippet": "class OdinsEye",
              "symbol": "OdinsEye.on_craft"
            }
          ],
          "id": "hook_52_odinseye_target_component_craft",
          "kind": "component_craft",
          "state": [],
          "title": "component_craft"
        }
      ]
    },
    "component_oozing_oculite": {
      "asset": "tiles/crafting/oozing_oculite.png",
      "baseId": "oozing_oculite",
      "className": "OozingOculite",
      "description": "On Pickup:\nOne of your spells permanently gains +1 [range]",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_oozing_oculite.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/oozing_oculite.png",
      "id": "component_oozing_oculite",
      "kind": "component",
      "name": "Oozing Oculite",
      "rare": false,
      "tags": [
        "Chaos",
        "Eye",
        "Slime"
      ],
      "tier": 3,
      "virtualVariants": [
        {
          "action": {
            "calls": [],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 990,
              "snippet": "class OozingOculite",
              "symbol": "OozingOculite.on_pickup"
            }
          ],
          "id": "hook_53_oozingoculite_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_phoenix_feather": {
      "asset": "tiles/crafting/phoenix_feather.png",
      "baseId": "phoenix_feather",
      "className": "PhoenixFeather",
      "description": "On Craft:\nIf the crafted equipment has the [Fire] tag, it heals you for [1 HP:heal] when you cast a [Fire] spell\nIf the crafted equipment has the [Holy] tag, it heals you for [1 HP:heal] when you cast a [Holy] spell",
      "effectHooks": [
        "on_craft"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": true,
      "hasOnPickup": false,
      "icon": "icons/runtime/component_phoenix_feather.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/phoenix_feather.png",
      "id": "component_phoenix_feather",
      "kind": "component",
      "name": "Phoenix Feather",
      "rare": true,
      "tags": [
        "Fire",
        "Holy"
      ],
      "tier": "rare",
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "add_event_trigger",
              "add_event_trigger",
              "heal",
              "heal"
            ],
            "type": "component_craft"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 1331,
              "snippet": "class PhoenixFeather",
              "symbol": "PhoenixFeather.on_craft"
            }
          ],
          "id": "hook_54_phoenixfeather_target_component_craft",
          "kind": "component_craft",
          "state": [],
          "title": "component_craft"
        }
      ]
    },
    "component_planar_keystone": {
      "asset": "tiles/crafting/planar_keystone.png",
      "baseId": "planar_keystone",
      "className": "PlanarKeystone",
      "description": "On Pickup:\nCreate a new Rift under the wizard",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_planar_keystone.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/planar_keystone.png",
      "id": "component_planar_keystone",
      "kind": "component",
      "name": "Planar Keystone",
      "rare": false,
      "tags": [
        "Conjuration",
        "Translocation",
        "Orb"
      ],
      "tier": 3,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "queue_spell"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 961,
              "snippet": "class PlanarKeystone",
              "symbol": "PlanarKeystone.on_pickup"
            }
          ],
          "id": "hook_55_planarkeystone_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_raven_eye": {
      "asset": "tiles/crafting/raven_eye.png",
      "baseId": "raven_eye",
      "className": "RavenEye",
      "description": "On Pickup:\n[Blind] all enemies for 6 turns\nThis effect repeats every 12 turns until the end of the level",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_raven_eye.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/raven_eye.png",
      "id": "component_raven_eye",
      "kind": "component",
      "name": "Raven Eye",
      "rare": false,
      "tags": [
        "Dark",
        "Eye",
        "Enchantment"
      ],
      "tier": 3,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "apply_buff"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 1164,
              "snippet": "class RavenEye",
              "symbol": "RavenEye.on_pickup"
            }
          ],
          "id": "hook_56_raveneye_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_relocator_beacon": {
      "asset": "tiles/crafting/relocator_beacon.png",
      "baseId": "relocator_beacon",
      "className": "RelocatorBeacon",
      "description": "On Pickup:\nTeleport a random Memory Orb or Component on the level into your inventory\nThis effect repeats every 3 turns until the end of the level",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_relocator_beacon.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/relocator_beacon.png",
      "id": "component_relocator_beacon",
      "kind": "component",
      "name": "Relocator Beacon",
      "rare": false,
      "tags": [
        "Orb",
        "Translocation"
      ],
      "tier": 2,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "apply_buff"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 396,
              "snippet": "class RelocatorBeacon",
              "symbol": "RelocatorBeacon.on_pickup"
            }
          ],
          "id": "hook_57_relocatorbeacon_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_retinal_jelly": {
      "asset": "tiles/crafting/retinal_jelly.png",
      "baseId": "retinal_jelly",
      "className": "RetinalJelly",
      "description": "On Pickup:\nSummon a friendly Annihilation Goo",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_retinal_jelly.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/retinal_jelly.png",
      "id": "component_retinal_jelly",
      "kind": "component",
      "name": "Retinal Jelly",
      "rare": false,
      "tags": [
        "Eye",
        "Slime"
      ],
      "tier": 2,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "summon"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 646,
              "snippet": "class RetinalJelly",
              "symbol": "RetinalJelly.on_pickup"
            }
          ],
          "id": "hook_58_retinaljelly_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_rift_residue": {
      "asset": "tiles/crafting/rift_residue.png",
      "baseId": "rift_residue",
      "className": "RiftResidue",
      "description": "On Pickup:\nA random [Translocation] spell you know permanently gains +1 [max charges:max_charges]",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_rift_residue.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/rift_residue.png",
      "id": "component_rift_residue",
      "kind": "component",
      "name": "Rift Residue",
      "rare": false,
      "tags": [
        "Translocation"
      ],
      "tier": 1,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "refund_charges"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 237,
              "snippet": "class RiftResidue",
              "symbol": "RiftResidue.on_pickup"
            }
          ],
          "id": "hook_59_riftresidue_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_runed_vellum": {
      "asset": "tiles/crafting/runed_vellum.png",
      "baseId": "runed_vellum",
      "className": "RunedVellum",
      "description": "On Pickup:\nTriples the remaining duration of any of your currently active buffs",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_runed_vellum.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/runed_vellum.png",
      "id": "component_runed_vellum",
      "kind": "component",
      "name": "Runed Vellum",
      "rare": false,
      "tags": [
        "Sorcery",
        "Enchantment"
      ],
      "tier": 2,
      "virtualVariants": [
        {
          "action": {
            "calls": [],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 435,
              "snippet": "class RunedVellum",
              "symbol": "RunedVellum.on_pickup"
            }
          ],
          "id": "hook_60_runedvellum_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_runic_fetish": {
      "asset": "tiles/crafting/runic_fetish.png",
      "baseId": "runic_fetish",
      "className": "RunicFetish",
      "description": "On Pickup:\nEnemies in line of sight are afflicted by [Shared Pain:blood], which redeals damage dealt to one unit to the others",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_runic_fetish.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/runic_fetish.png",
      "id": "component_runic_fetish",
      "kind": "component",
      "name": "Runic Fetish",
      "rare": false,
      "tags": [
        "Blood",
        "Dark",
        "Enchantment"
      ],
      "tier": 3,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "queue_spell"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 974,
              "snippet": "class RunicFetish",
              "symbol": "RunicFetish.on_pickup"
            }
          ],
          "id": "hook_61_runicfetish_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_sacrificial_brand": {
      "asset": "tiles/crafting/sacrificial_brand.png",
      "baseId": "sacrificial_brand",
      "className": "SacrificialBrand",
      "description": "On Pickup:\nGain max HP equal to your [Blood] mastery",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_sacrificial_brand.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/sacrificial_brand.png",
      "id": "component_sacrificial_brand",
      "kind": "component",
      "name": "Sacrificial Brand",
      "rare": false,
      "tags": [
        "Blood",
        "Metallic"
      ],
      "tier": 2,
      "virtualVariants": [
        {
          "action": {
            "calls": [],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 574,
              "snippet": "class SacrificialBrand",
              "symbol": "SacrificialBrand.on_pickup"
            }
          ],
          "id": "hook_62_sacrificialbrand_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_sanctified_locket": {
      "asset": "tiles/crafting/sanctified_locket.png",
      "baseId": "sanctified_locket",
      "className": "SanctifiedLocket",
      "description": "On Pickup:\n[Undead], [Demons], and [Dark] units in line of sight are [feared] for 8 turns",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_sanctified_locket.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/sanctified_locket.png",
      "id": "component_sanctified_locket",
      "kind": "component",
      "name": "Sanctified Locket",
      "rare": false,
      "tags": [
        "Holy",
        "Enchantment"
      ],
      "tier": 2,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "queue_spell"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 600,
              "snippet": "class SanctifiedLocket",
              "symbol": "SanctifiedLocket.on_pickup"
            }
          ],
          "id": "hook_63_sanctifiedlocket_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_scripted_cortex": {
      "asset": "tiles/crafting/scripted_cortex.png",
      "baseId": "scripted_cortex",
      "className": "ScriptedCortex",
      "description": "On Pickup:\nA random [Arcane] or [Word] spell you know permanently gains +2 [max charges:max_charges]",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_scripted_cortex.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/scripted_cortex.png",
      "id": "component_scripted_cortex",
      "kind": "component",
      "name": "Scripted Cortex",
      "rare": false,
      "tags": [
        "Arcane",
        "Word"
      ],
      "tier": 2,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "refund_charges"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 532,
              "snippet": "class ScriptedCortex",
              "symbol": "ScriptedCortex.on_pickup"
            }
          ],
          "id": "hook_64_scriptedcortex_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_seer_s_orb": {
      "asset": "tiles/crafting/seer's_orb.png",
      "baseId": "seer_s_orb",
      "className": "SeersOrb",
      "description": "On Pickup:\nGrants +6 [range] and removes line of sight casting requirements for all spells for 10 turns",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_seer_s_orb.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/crafting/seers_orb.png",
      "id": "component_seer_s_orb",
      "kind": "component",
      "name": "Seer's Orb",
      "rare": false,
      "tags": [
        "Eye",
        "Orb"
      ],
      "tier": 2,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "apply_buff"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 258,
              "snippet": "class SeersOrb",
              "symbol": "SeersOrb.on_pickup"
            }
          ],
          "id": "hook_65_seersorb_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_shadeweave": {
      "asset": "tiles/crafting/shadeweave.png",
      "baseId": "shadeweave",
      "className": "Shadeweave",
      "description": "On Pickup:\nHeal for an amount equal to your [Dark] mastery each turn until the end of the level",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_shadeweave.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/shadeweave.png",
      "id": "component_shadeweave",
      "kind": "component",
      "name": "Shadeweave",
      "rare": false,
      "tags": [
        "Dark"
      ],
      "tier": 1,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "apply_buff"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 124,
              "snippet": "class Shadeweave",
              "symbol": "Shadeweave.on_pickup"
            }
          ],
          "id": "hook_66_shadeweave_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_shielding_shard": {
      "asset": "tiles/crafting/shielding_shard.png",
      "baseId": "shielding_shard",
      "className": "ShieldingShard",
      "description": "On Pickup:\nGain [1 SH:shields] per turn for 15 turns",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_shielding_shard.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/shielding_shard.png",
      "id": "component_shielding_shard",
      "kind": "component",
      "name": "Shielding Shard",
      "rare": false,
      "tags": [
        "Metallic"
      ],
      "tier": 1,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "apply_buff"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 150,
              "snippet": "class ShieldingShard",
              "symbol": "ShieldingShard.on_pickup"
            }
          ],
          "id": "hook_67_shieldingshard_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_shimmersteel": {
      "asset": "tiles/crafting/shimmersteel.png",
      "baseId": "shimmersteel",
      "className": "Shimmersteel",
      "description": "On Pickup:\n[Metallic] spells and equipment gain +100% [damage] and [range] until the end of the level",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_shimmersteel.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/shimmersteel.png",
      "id": "component_shimmersteel",
      "kind": "component",
      "name": "Shimmersteel",
      "rare": false,
      "tags": [
        "Metallic",
        "Translocation"
      ],
      "tier": 2,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "apply_buff",
              "apply_buff"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 341,
              "snippet": "class Shimmersteel",
              "symbol": "Shimmersteel.on_pickup"
            }
          ],
          "id": "hook_68_shimmersteel_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_silver_dragonscale": {
      "asset": "tiles/crafting/silver_dragonscale.png",
      "baseId": "silver_dragonscale",
      "className": "SilverDragonscale",
      "description": "On Pickup:\nGain 50% [Physical] and 100% [Ice] resistance for the remainder of the level",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_silver_dragonscale.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/silver_dragonscale.png",
      "id": "component_silver_dragonscale",
      "kind": "component",
      "name": "Silver Dragonscale",
      "rare": false,
      "tags": [
        "Dragon",
        "Metallic"
      ],
      "tier": 2,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "apply_buff",
              "apply_buff"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 366,
              "snippet": "class SilverDragonscale",
              "symbol": "SilverDragonscale.on_pickup"
            }
          ],
          "id": "hook_69_silverdragonscale_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_slime_core": {
      "asset": "tiles/crafting/slime_core.png",
      "baseId": "slime_core",
      "className": "SlimeCore",
      "description": "On Pickup:\nSummon a trio of friendly Void Slimes",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_slime_core.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/slime_core.png",
      "id": "component_slime_core",
      "kind": "component",
      "name": "Slime Core",
      "rare": false,
      "tags": [
        "Arcane",
        "Slime"
      ],
      "tier": 2,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "summon"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 308,
              "snippet": "class SlimeCore",
              "symbol": "SlimeCore.on_pickup"
            }
          ],
          "id": "hook_70_slimecore_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_spellgraft_shrine": {
      "baseId": "spellgraft_shrine",
      "category": "shrine",
      "className": "SpellGraftShrine",
      "description": "Effect-only shrine source extracted from RW3 source evidence.",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "effect-ast",
      "icon": "icons/runtime/component_spellgraft_shrine.png",
      "iconFallback": false,
      "iconMatch": "stem-anywhere",
      "iconSource": "tiles/shrine/spellgraft_shrine.png",
      "id": "component_spellgraft_shrine",
      "kind": "component",
      "name": "Spellgraft Shrine",
      "tags": [
        "Shrine"
      ],
      "virtualVariants": [
        {
          "action": {
            "from": "selected component tags",
            "selection": "random missing component tag",
            "to": "spell.tags",
            "type": "adds_tag"
          },
          "conditions": [
            "spell lacks at least one selected component tag"
          ],
          "evidence": [
            {
              "file": "LevelRewards.py",
              "line": 311,
              "snippet": "class SpellGraftShrine(Shop):",
              "symbol": "SpellGraftShrine"
            },
            {
              "file": "LevelRewards.py",
              "line": 346,
              "snippet": "spell.tags.append(t)",
              "symbol": "SpellGraftShrine.buy"
            },
            {
              "file": "LevelRewards.py",
              "line": 348,
              "snippet": "if hasattr(spell, 'sync_upgrade_tags'): spell.sync_upgrade_tags()",
              "symbol": "SpellGraftShrine.buy"
            },
            {
              "file": "LevelRewards.py",
              "line": 349,
              "snippet": "player.remove_component(self.selected_component)",
              "symbol": "SpellGraftShrine.buy"
            }
          ],
          "id": "effect_spellgraft_shrine_adds_component_tag",
          "kind": "mutates_spell",
          "state": [
            {
              "target": "known spell",
              "type": "permanent_mutation"
            },
            {
              "target": "selected component",
              "type": "consumes_component"
            }
          ],
          "title": "Adds a tag"
        }
      ]
    },
    "component_starfire_ingot": {
      "asset": "tiles/crafting/starfire_ingot.png",
      "baseId": "starfire_ingot",
      "className": "StarfireIngot",
      "description": "On Pickup:\nSummon a pair of Starfire Chimeras to fight for you",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_starfire_ingot.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/starfire_ingot.png",
      "id": "component_starfire_ingot",
      "kind": "component",
      "name": "Starfire Ingot",
      "rare": false,
      "tags": [
        "Arcane",
        "Fire",
        "Metallic"
      ],
      "tier": 3,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "summon",
              "summon"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 908,
              "snippet": "class StarfireIngot",
              "symbol": "StarfireIngot.on_pickup"
            }
          ],
          "id": "hook_71_starfireingot_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_stormglass_eye": {
      "asset": "tiles/crafting/stormglass_eye.png",
      "baseId": "stormglass_eye",
      "className": "StormglassEye",
      "description": "On Pickup:\nSummon a [Storm Cloud:lightning] over each enemy in line of sight\nEach cloud has a 50% chance to deal 25 [Lightning] damage each turn\n[Storm Clouds:lightning] last for 5 turns\nThis effect repeats every 6 turns until the end of the level",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_stormglass_eye.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/stormglass_eye.png",
      "id": "component_stormglass_eye",
      "kind": "component",
      "name": "Stormglass Eye",
      "rare": false,
      "tags": [
        "Eye",
        "Lightning"
      ],
      "tier": 2,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "apply_buff"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 779,
              "snippet": "class StormglassEye",
              "symbol": "StormglassEye.on_pickup"
            }
          ],
          "id": "hook_72_stormglasseye_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_thundergod_s_fang": {
      "asset": "tiles/crafting/thundergod's_fang.png",
      "baseId": "thundergod_s_fang",
      "className": "ThundergodsFang",
      "description": "On Pickup:\nEnemies with the [Lightning] tag and less HP than you join your team",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_thundergod_s_fang.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/crafting/thundergods_fang.png",
      "id": "component_thundergod_s_fang",
      "kind": "component",
      "name": "Thundergod's Fang",
      "rare": false,
      "tags": [
        "Lightning",
        "Metallic",
        "Nature"
      ],
      "tier": 3,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "queue_spell"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 1064,
              "snippet": "class ThundergodsFang",
              "symbol": "ThundergodsFang.on_pickup"
            }
          ],
          "id": "hook_73_thundergodsfang_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_timelost_inscription": {
      "asset": "tiles/crafting/timelost_inscription.png",
      "baseId": "timelost_inscription",
      "className": "TimelostInscription",
      "description": "On Pickup:\nFor the next 6 turns, when you cast a [Sorcery] spell, each of your other spells regains a charge",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_timelost_inscription.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/timelost_inscription.png",
      "id": "component_timelost_inscription",
      "kind": "component",
      "name": "Timelost Inscription",
      "rare": false,
      "tags": [
        "Sorcery",
        "Translocation",
        "Word"
      ],
      "tier": 3,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "apply_buff"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 952,
              "snippet": "class TimelostInscription",
              "symbol": "TimelostInscription.on_pickup"
            }
          ],
          "id": "hook_74_timelostinscription_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_umbral_resin": {
      "asset": "tiles/crafting/umbral_resin.png",
      "baseId": "umbral_resin",
      "className": "UmbralResin",
      "description": "On Pickup:\nGain 100% resistance to [Dark] and [Poison] damage for the remainder of the level",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_umbral_resin.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/umbral_resin.png",
      "id": "component_umbral_resin",
      "kind": "component",
      "name": "Umbral Resin",
      "rare": false,
      "tags": [
        "Dark",
        "Nature"
      ],
      "tier": 2,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "apply_buff",
              "apply_buff"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 549,
              "snippet": "class UmbralResin",
              "symbol": "UmbralResin.on_pickup"
            }
          ],
          "id": "hook_75_umbralresin_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_voidstone_shard": {
      "asset": "tiles/crafting/voidstone_shard.png",
      "baseId": "voidstone_shard",
      "className": "VoidstoneShard",
      "description": "On Pickup:\nRegain all spell charges",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_voidstone_shard.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/voidstone_shard.png",
      "id": "component_voidstone_shard",
      "kind": "component",
      "name": "Voidstone Shard",
      "rare": false,
      "tags": [
        "Arcane",
        "Sorcery"
      ],
      "tier": 2,
      "virtualVariants": [
        {
          "action": {
            "calls": [],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 407,
              "snippet": "class VoidstoneShard",
              "symbol": "VoidstoneShard.on_pickup"
            }
          ],
          "id": "hook_76_voidstoneshard_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_voltaic_ash": {
      "asset": "tiles/crafting/voltaic_ash.png",
      "baseId": "voltaic_ash",
      "className": "VoltaicAsh",
      "description": "On Pickup:\nFire a beam toward each other unit in your line of sight\nEach beam deals 16 [Fire] or [Lightning] damage\nThis effect repeats every 6 turns until the end of the level",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_voltaic_ash.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/voltaic_ash.png",
      "id": "component_voltaic_ash",
      "kind": "component",
      "name": "Voltaic Ash",
      "rare": false,
      "tags": [
        "Fire",
        "Lightning"
      ],
      "tier": 2,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "apply_buff"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 498,
              "snippet": "class VoltaicAsh",
              "symbol": "VoltaicAsh.on_pickup"
            }
          ],
          "id": "hook_77_voltaicash_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_votive_candle": {
      "asset": "tiles/crafting/votive_candle.png",
      "baseId": "votive_candle",
      "className": "VotiveCandle",
      "description": "On Pickup:\nHeal 10 HP per turn for the next 12 turns",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_votive_candle.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/votive_candle.png",
      "id": "component_votive_candle",
      "kind": "component",
      "name": "Votive Candle",
      "rare": false,
      "tags": [
        "Fire",
        "Holy"
      ],
      "tier": 2,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "apply_buff"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 678,
              "snippet": "class VotiveCandle",
              "symbol": "VotiveCandle.on_pickup"
            }
          ],
          "id": "hook_78_votivecandle_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_warlord_s_skull": {
      "asset": "tiles/crafting/warlord's_skull.png",
      "baseId": "warlord_s_skull",
      "className": "WarlordsSkull",
      "description": "On Craft:\nIf the crafted equipment would provide bonuses to [damage], [duration], or [range], it provides those bonuses to [minion_damage], [minion_duration], and [minion_range] instead",
      "effectHooks": [
        "on_craft"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 2,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": true,
      "hasOnPickup": false,
      "icon": "icons/runtime/component_warlord_s_skull.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/crafting/warlords_skull.png",
      "id": "component_warlord_s_skull",
      "kind": "component",
      "name": "Warlord's Skull",
      "rare": true,
      "tags": [
        "Conjuration",
        "Conjuration"
      ],
      "tier": "rare",
      "virtualVariants": [
        {
          "action": {
            "from": [
              "damage",
              "range",
              "duration"
            ],
            "to": [
              "minion_damage",
              "minion_range",
              "minion_duration"
            ],
            "type": "converts_bonus"
          },
          "conditions": [
            "crafted equipment has matching normal bonuses"
          ],
          "evidence": [
            {
              "file": "Components.py",
              "line": 1449,
              "snippet": "stats[converts[i]] += stat",
              "symbol": "WarlordsSkull.on_craft"
            }
          ],
          "id": "effect_warlords_skull_converts_minion_bonuses",
          "kind": "mutates_item",
          "state": [
            {
              "target": "crafted equipment",
              "type": "permanent_mutation"
            }
          ],
          "title": "Converts crafted bonuses"
        },
        {
          "action": {
            "calls": [],
            "type": "component_craft"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 1431,
              "snippet": "class WarlordsSkull",
              "symbol": "WarlordsSkull.on_craft"
            }
          ],
          "id": "hook_79_warlordsskull_target_component_craft",
          "kind": "component_craft",
          "state": [],
          "title": "component_craft"
        }
      ]
    },
    "component_warped_dragon_egg": {
      "asset": "tiles/crafting/warped_dragon_egg.png",
      "baseId": "warped_dragon_egg",
      "className": "WarpedDragonEgg",
      "description": "On Pickup:\nA random [Conjuration] spell you know gains +3 [minion damage:minion_damage]",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_warped_dragon_egg.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/warped_dragon_egg.png",
      "id": "component_warped_dragon_egg",
      "kind": "component",
      "name": "Warped Dragon Egg",
      "rare": false,
      "tags": [
        "Chaos",
        "Dragon"
      ],
      "tier": 2,
      "virtualVariants": [
        {
          "action": {
            "calls": [],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 659,
              "snippet": "class WarpedDragonEgg",
              "symbol": "WarpedDragonEgg.on_pickup"
            }
          ],
          "id": "hook_80_warpeddragonegg_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_watcher_stone": {
      "asset": "tiles/crafting/watcher_stone.png",
      "baseId": "watcher_stone",
      "className": "WatcherStone",
      "description": "On Pickup:\nSummon a friendly Watcher",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_watcher_stone.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/watcher_stone.png",
      "id": "component_watcher_stone",
      "kind": "component",
      "name": "Watcher Stone",
      "rare": false,
      "tags": [
        "Eye",
        "Metallic"
      ],
      "tier": 2,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "summon"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 710,
              "snippet": "class WatcherStone",
              "symbol": "WatcherStone.on_pickup"
            }
          ],
          "id": "hook_81_watcherstone_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "component_wildflower": {
      "asset": "tiles/crafting/wildflower.png",
      "baseId": "wildflower",
      "className": "Wildflower",
      "description": "On Pickup:\nRemove [poison] and heal for [50 HP:heal]",
      "effectHooks": [
        "on_pickup"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "hasOnCraft": false,
      "hasOnPickup": true,
      "icon": "icons/runtime/component_wildflower.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/crafting/wildflower.png",
      "id": "component_wildflower",
      "kind": "component",
      "name": "Wildflower",
      "rare": false,
      "tags": [
        "Nature"
      ],
      "tier": 1,
      "virtualVariants": [
        {
          "action": {
            "calls": [
              "heal"
            ],
            "type": "component_pickup"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Components.py",
              "line": 81,
              "snippet": "class Wildflower",
              "symbol": "Wildflower.on_pickup"
            }
          ],
          "id": "hook_82_wildflower_target_component_pickup",
          "kind": "component_pickup",
          "state": [],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "equipment_acidifier": {
      "asset": "tiles/items/equipment/acidifier.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "acidifier",
      "className": "Acidifier",
      "description": "Each turn, a random enemy is acidified\nAcidified units lose 100 [Poison] resist",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_acidifier.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/acidifier.png",
      "id": "equipment_acidifier",
      "kind": "equipment",
      "level": 0,
      "name": "Acidifier",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 1,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Dark",
        "Nature"
      ]
    },
    "equipment_aetherlord_staff": {
      "asset": "tiles/items/equipment/aetherlord_staff.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "aetherlord_staff",
      "className": "AetherlordStaff",
      "description": "When you cast a level 5 or higher [Arcane] spell, summon a Void Elder nearby",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_aetherlord_staff.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/aetherlord_staff.png",
      "id": "equipment_aetherlord_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Aetherlord Staff",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 2,
          "tag": "Arcane"
        },
        {
          "amount": 2,
          "tag": "Conjuration"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane",
        "Conjuration"
      ]
    },
    "equipment_amber_cube": {
      "asset": "tiles/items/equipment/amber_cube.png",
      "augmentSummary": {
        "spellCount": 15
      },
      "baseId": "amber_cube",
      "className": "AmberCube",
      "conditionalSummary": {
        "count": 4
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_amber_cube.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/amber_cube.png",
      "id": "equipment_amber_cube",
      "kind": "equipment",
      "level": 0,
      "name": "Amber Cube",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Nature": {
          "minion_health": 12
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Conjuration",
        "Nature"
      ]
    },
    "equipment_amphisbaena_ring": {
      "asset": "tiles/items/equipment/amphisbaena_ring.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "amphisbaena_ring",
      "className": "AmphisbaenaRing",
      "conditionalSummary": {
        "count": 12
      },
      "description": "[Dragon] allies you summon have their cooldowns halved",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "icon": "icons/runtime/equipment_amphisbaena_ring.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/amphisbaena_ring.png",
      "id": "equipment_amphisbaena_ring",
      "kind": "equipment",
      "level": 0,
      "name": "Amphisbaena Ring",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Dragon"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Dragon"
      ]
    },
    "equipment_amulet_of_collected_agony": {
      "asset": "tiles/items/equipment/amulet_of_collected_agony.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "amulet_of_collected_agony",
      "className": "AmuletOfCollectedAgony",
      "description": "Each turn, the nearest [2:num_targets] enemies take [Dark] damage\nThe damage equals 2x the sum of all [Poison] damage dealt since the last activation",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_amulet_of_collected_agony.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/amulet_of_collected_agony.png",
      "id": "equipment_amulet_of_collected_agony",
      "kind": "equipment",
      "level": 0,
      "name": "Amulet Of Collected Agony",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Dark",
        "Nature"
      ]
    },
    "equipment_amulet_of_emerald_flame": {
      "asset": "tiles/items/equipment/amulet_of_emerald_flame.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "amulet_of_emerald_flame",
      "className": "AmuletOfEmeraldFlame",
      "description": "For every 50 damage dealt by [Enchantment] spells, the nearest enemy takes [10:damage] [Fire] damage\nDamage Dealt: 0",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 40
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_amulet_of_emerald_flame.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/amulet_of_emerald_flame.png",
      "id": "equipment_amulet_of_emerald_flame",
      "kind": "equipment",
      "level": 0,
      "name": "Amulet of Emerald Flame",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 1,
          "tag": "Fire"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Enchantment",
        "Fire"
      ]
    },
    "equipment_amulet_of_the_master": {
      "asset": "tiles/items/equipment/amulet_of_the_master.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "amulet_of_the_master",
      "className": "AmuletOfTheMaster",
      "description": "If you would take damage from your allies, that damage is negated\n(Does not negate self-inflicted damage)",
      "effectHooks": [
        "on_applied"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_amulet_of_the_master.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/amulet_of_the_master.png",
      "id": "equipment_amulet_of_the_master",
      "kind": "equipment",
      "level": 0,
      "name": "Amulet of the Master",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Blood"
        },
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 6,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Conjuration": {
          "hp_cost": 10
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Blood",
        "Conjuration",
        "Enchantment"
      ]
    },
    "equipment_amulet_of_undeath": {
      "asset": "tiles/items/equipment/amulet_of_undeath.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "amulet_of_undeath",
      "className": "AmuletOfUndeath",
      "description": "[Undead] allies heal 3 HP per turn",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_amulet_of_undeath.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/amulet_of_undeath.png",
      "id": "equipment_amulet_of_undeath",
      "kind": "equipment",
      "level": 0,
      "name": "Amulet of Undeath",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Dark"
      ]
    },
    "equipment_ankh": {
      "asset": "tiles/items/equipment/ankh.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "ankh",
      "className": "Ankh",
      "description": "Each turn, deal [1:damage] [Holy] damage to enemies adjacent to your allies",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_ankh.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/ankh.png",
      "id": "equipment_ankh",
      "kind": "equipment",
      "level": 0,
      "name": "Ankh",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 2,
          "tag": "Holy"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Holy"
      ]
    },
    "equipment_annihilator_staff": {
      "asset": "tiles/items/equipment/annihilator_staff.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "annihilator_staff",
      "className": "AnnihilatorStaff",
      "description": "Deals [2:damage] [Physical], [Fire], and [Lightning] damage to units before they would be damaged by your [Sorcery] spells",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 43
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnPreDamaged'>"
      ],
      "icon": "icons/runtime/equipment_annihilator_staff.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/Annihilator_Staff.png",
      "id": "equipment_annihilator_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Annihilator Staff",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Chaos"
        },
        {
          "amount": 2,
          "tag": "Sorcery"
        },
        {
          "amount": 5,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Chaos",
        "Sorcery"
      ]
    },
    "equipment_arcane_accelerator": {
      "asset": "tiles/items/equipment/arcane_accelerator.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "arcane_accelerator",
      "className": "ArcaneAccelerator",
      "description": "Each turn, allies in your line of sight have their current spell cooldowns reduced by 1",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_arcane_accelerator.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/arcane_accelerator.png",
      "id": "equipment_arcane_accelerator",
      "kind": "equipment",
      "level": 0,
      "name": "Arcane Accelerator",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Arcane"
        },
        {
          "amount": 1,
          "tag": "Word"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane"
      ]
    },
    "equipment_arcane_amplifier": {
      "asset": "tiles/items/equipment/arcane_amplifier.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "arcane_amplifier",
      "className": "ArcaneAmplifier",
      "description": "Redeal half the damage you deal with other [Sorcery] spells and equipment as [Arcane] damage",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 40
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_arcane_amplifier.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/arcane_amplifier.png",
      "id": "equipment_arcane_amplifier",
      "kind": "equipment",
      "level": 0,
      "name": "Arcane Amplifier",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Arcane"
        },
        {
          "amount": 2,
          "tag": "Sorcery"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane",
        "Sorcery"
      ]
    },
    "equipment_arcane_combustion_powder": {
      "asset": "tiles/items/equipment/arcane_combustion_powder.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "arcane_combustion_powder",
      "className": "ArcaneCombustion",
      "description": "When a unit dies to [Arcane] damage, it explodes for [12:damage] [Arcane] damage in a [1:radius] tile burst\nMelts affected walls",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDeath'>"
      ],
      "icon": "icons/runtime/equipment_arcane_combustion_powder.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/arcane_combustion_powder.png",
      "id": "equipment_arcane_combustion_powder",
      "kind": "equipment",
      "level": 0,
      "name": "Arcane Combustion Powder",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane"
      ]
    },
    "equipment_arcane_frenzy_mask": {
      "asset": "tiles/items/equipment/arcane_frenzy_mask.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "arcane_frenzy_mask",
      "className": "GenericFrenzyMask",
      "description": "When you cast an [Arcane:arcane] spell, your [Arcane:arcane] spells and equipment gain [2 damage:damage] for [6:duration] turns",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_arcane_frenzy_mask.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/arcane_frenzy_mask.png",
      "id": "equipment_arcane_frenzy_mask",
      "kind": "equipment",
      "level": 0,
      "name": "Arcane Frenzy Mask",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 2,
          "tag": "Arcane"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "helmet",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane"
      ]
    },
    "equipment_arcane_shield": {
      "asset": "tiles/items/equipment/arcane_shield.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "arcane_shield",
      "className": "ArcaneShield",
      "description": "When you cast an [Arcane] spell, if you have no shields, gain [1 SH:shields]",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_arcane_shield.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/arcane_shield.png",
      "id": "equipment_arcane_shield",
      "kind": "equipment",
      "level": 0,
      "name": "Arcane Shield",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane"
      ]
    },
    "equipment_arcane_staff": {
      "asset": "tiles/items/equipment/arcane_staff.png",
      "augmentSummary": {
        "spellCount": 40
      },
      "baseId": "arcane_staff",
      "className": "ArcaneStaff",
      "conditionalSummary": {
        "count": 23
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_arcane_staff.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/arcane_staff.png",
      "id": "equipment_arcane_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Arcane Staff",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Arcane"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Arcane": {
          "damage": 6,
          "max_charges": 2,
          "minion_damage": 6
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Arcane"
      ]
    },
    "equipment_arch_sorcerer_s_staff": {
      "asset": "tiles/items/equipment/arch_sorcerer's_staff.png",
      "augmentSummary": {
        "spellCount": 74
      },
      "baseId": "arch_sorcerer_s_staff",
      "className": "ArchSorcerersStaff",
      "conditionalSummary": {
        "count": 1
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_arch_sorcerer_s_staff.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/items/equipment/arch_sorcerers_staff.png",
      "id": "equipment_arch_sorcerer_s_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Arch Sorcerer's Staff",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 3,
          "tag": "Sorcery"
        },
        {
          "amount": 7,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Sorcery": {
          "damage": 7,
          "range": 2
        }
      },
      "tagBonusesPct": {
        "Sorcery": {
          "max_charges": 25
        }
      },
      "tags": [
        "Sorcery"
      ]
    },
    "equipment_archangel_s_armor": {
      "asset": "tiles/items/equipment/archangel's_armor.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "archangel_s_armor",
      "className": "ArchangelsArmor",
      "description": "When a [Demon] damages you, cast Blinding Light",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 1
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_archangel_s_armor.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/items/equipment/archangels_armor.png",
      "id": "equipment_archangel_s_armor",
      "kind": "equipment",
      "level": 0,
      "name": "Archangel's Armor",
      "ownerTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "recipe": [
        {
          "amount": 3,
          "tag": "Holy"
        },
        {
          "amount": 3,
          "tag": "Metallic"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {
        "Fire": 50,
        "Holy": 50,
        "Physical": 50
      },
      "slot": "armor",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Holy",
        "Metallic"
      ]
    },
    "equipment_archangel_s_spear": {
      "asset": "tiles/items/equipment/archangel's_spear.png",
      "augmentSummary": {
        "spellCount": 19
      },
      "baseId": "archangel_s_spear",
      "className": "ArchangelsSpear",
      "conditionalSummary": {
        "count": 12
      },
      "description": "Casting a [Holy] spell targeting an enemy removes their shields",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_archangel_s_spear.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/items/equipment/archangels_spear.png",
      "id": "equipment_archangel_s_spear",
      "kind": "equipment",
      "level": 0,
      "name": "Archangel's Spear",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 3,
          "tag": "Holy"
        },
        {
          "amount": 2,
          "tag": "Metallic"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {
        "Holy": {
          "damage": 100,
          "range": 100
        }
      },
      "tags": [
        "Holy",
        "Metallic"
      ]
    },
    "equipment_armor_melter": {
      "asset": "tiles/items/equipment/armor_melter.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "armor_melter",
      "className": "ArmorMelter",
      "description": "When enemies take [Fire] damage, they gain a stack of Melted Armor for [3:duration] turns\nMelted Armor reduces [Physical] resistance by 10",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_armor_melter.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/armor_melter.png",
      "id": "equipment_armor_melter",
      "kind": "equipment",
      "level": 0,
      "name": "Armor Melter",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Fire"
        },
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Fire",
        "Metallic"
      ]
    },
    "equipment_armor_of_nanuk": {
      "asset": "tiles/items/equipment/armor_of_nanuk.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "armor_of_nanuk",
      "className": "ArmorOfNanuk",
      "description": "At the beginning of each level, summon [2:num_summons] Armored Polar Bears",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_armor_of_nanuk.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/armor_of_nanuk.png",
      "id": "equipment_armor_of_nanuk",
      "kind": "equipment",
      "level": 0,
      "name": "Armor of Nanuk",
      "ownerTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Ice"
        },
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 1,
          "tag": "Any"
        }
      ],
      "resists": {
        "Ice": 25,
        "Physical": 25
      },
      "slot": "armor",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Conjuration",
        "Ice",
        "Metallic",
        "Nature"
      ]
    },
    "equipment_armor_of_the_master": {
      "asset": "tiles/items/equipment/armor_of_the_master.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "armor_of_the_master",
      "className": "ArmorOfTheMaster",
      "description": "Your summoned allies' resistances are set equal to yours if they are higher",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "icon": "icons/runtime/equipment_armor_of_the_master.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/armor_of_the_master.png",
      "id": "equipment_armor_of_the_master",
      "kind": "equipment",
      "level": 0,
      "name": "Armor of the Master",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Blood"
        },
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "armor",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Conjuration": {
          "hp_cost": 5
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Blood",
        "Conjuration",
        "Enchantment"
      ]
    },
    "equipment_artificer_s_chalice": {
      "asset": "tiles/items/equipment/artificer's_chalice.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "artificer_s_chalice",
      "className": "ArtificersChalice",
      "description": "Picking up a Memory Orb randomly triggers the on pickup effect of one of the components used to craft it",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnItemPickup'>"
      ],
      "icon": "icons/runtime/equipment_artificer_s_chalice.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/items/equipment/artificers_chalice.png",
      "id": "equipment_artificer_s_chalice",
      "kind": "equipment",
      "level": 0,
      "name": "Artificer's Chalice",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 10,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Ritual"
      ],
      "virtualVariants": [
        {
          "action": {
            "selection": "random stored component with custom on_pickup",
            "type": "component_pickup"
          },
          "conditions": [
            "picked item is a Memory Orb",
            "stored component list has on_pickup candidates"
          ],
          "evidence": [
            {
              "file": "Equipment.py",
              "line": 6587,
              "snippet": "if not self.valid_choices: return",
              "symbol": "ArtificersChalice.on_sp_pickup"
            },
            {
              "file": "Equipment.py",
              "line": 6589,
              "snippet": "c.on_pickup(self.owner, self.owner.level)",
              "symbol": "ArtificersChalice.on_sp_pickup"
            }
          ],
          "id": "effect_artificers_chalice_component_pickup",
          "kind": "component_pickup",
          "state": [
            {
              "name": "depends on components used to craft item",
              "type": "loadout"
            }
          ],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "equipment_artificer_s_rod": {
      "asset": "tiles/items/equipment/artificer's_rod.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "artificer_s_rod",
      "className": "ArtificersRod",
      "description": "Casting spells with tags that match the components used to craft this item recharges it\nOnce all tag requirements are satisfied, each of the components used to craft it activates its on pickup effect\nEach activation increases the requirements to activate again sevenfold until the next level",
      "effectHooks": [
        "on_applied"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_artificer_s_rod.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/items/equipment/artificers_rod.png",
      "id": "equipment_artificer_s_rod",
      "kind": "equipment",
      "level": 0,
      "name": "Artificer's Rod",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 10,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Ritual"
      ],
      "virtualVariants": [
        {
          "action": {
            "selection": "all stored components when tag requirements are met",
            "type": "component_pickup"
          },
          "conditions": [
            "spell tags satisfy stored component tag requirements"
          ],
          "evidence": [
            {
              "file": "Equipment.py",
              "line": 6620,
              "snippet": "self.trigger_component_on_pickups(self.owner)",
              "symbol": "ArtificersRod.on_cast"
            },
            {
              "file": "Equipment.py",
              "line": 6623,
              "snippet": "super().trigger_component_on_pickups(player)",
              "symbol": "ArtificersRod.trigger_component_on_pickups"
            }
          ],
          "id": "effect_artificers_rod_component_pickup",
          "kind": "component_pickup",
          "state": [
            {
              "growth": "requirements multiply by 7 after activation",
              "name": "component tag requirements",
              "type": "threshold"
            }
          ],
          "title": "Triggers component pickup effects"
        }
      ]
    },
    "equipment_artificial_heart": {
      "asset": "tiles/items/equipment/artificial_heart.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "artificial_heart",
      "className": "ArtificialHeart",
      "description": "Summoned [Construct] allies gain the [Living] tag",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "icon": "icons/runtime/equipment_artificial_heart.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/artificial_heart.png",
      "id": "equipment_artificial_heart",
      "kind": "equipment",
      "level": 0,
      "name": "Artificial Heart",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Blood"
        },
        {
          "amount": 1,
          "tag": "Lightning"
        },
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Blood",
        "Lightning",
        "Metallic"
      ]
    },
    "equipment_ashen_rod": {
      "asset": "tiles/items/equipment/ashen_rod.png",
      "augmentSummary": {
        "spellCount": 29
      },
      "baseId": "ashen_rod",
      "className": "AshenRod",
      "conditionalSummary": {
        "count": 13
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_ashen_rod.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/ashen_rod.png",
      "id": "equipment_ashen_rod",
      "kind": "equipment",
      "level": 0,
      "name": "Ashen Rod",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Fire"
        },
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Fire": {
          "radius": 1
        }
      },
      "tagBonusesPct": {
        "Nature": {
          "duration": 100
        }
      },
      "tags": [
        "Fire",
        "Nature"
      ]
    },
    "equipment_balor_s_eye_staff": {
      "asset": "tiles/items/equipment/balor's_eye_staff.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "balor_s_eye_staff",
      "className": "BalorsEyeStaff",
      "description": "When you deal damage with an [Eye] spell, deal that much damage again but in a beam to the target, destroying walls and clouds in the way",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_balor_s_eye_staff.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/items/equipment/balors_eye_staff.png",
      "id": "equipment_balor_s_eye_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Balor's Eye Staff",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 3,
          "tag": "Eye"
        },
        {
          "amount": 5,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Eye"
      ]
    },
    "equipment_banner_of_the_horde": {
      "asset": "tiles/items/equipment/banner_of_the_horde.png",
      "augmentSummary": {
        "spellCount": 9
      },
      "baseId": "banner_of_the_horde",
      "className": "HordeLordStaff",
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {
        "num_summons": 2
      },
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_banner_of_the_horde.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/banner_of_the_horde.png",
      "id": "equipment_banner_of_the_horde",
      "kind": "equipment",
      "level": 0,
      "name": "Banner of the Horde",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Conjuration"
        },
        {
          "amount": 6,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Conjuration"
      ]
    },
    "equipment_basilisk_scale_armor": {
      "asset": "tiles/items/equipment/basilisk_scale_armor.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "basilisk_scale_armor",
      "className": "BasiliskScaleArmor",
      "description": "Cast Petrify on the first [2:num_targets] enemies that target you with a spell each turn",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 2,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "icon": "icons/runtime/equipment_basilisk_scale_armor.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/basilisk_scale_armor.png",
      "id": "equipment_basilisk_scale_armor",
      "kind": "equipment",
      "level": 0,
      "name": "Basilisk Scale Armor",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 1,
          "tag": "Dragon"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {
        "Physical": 25
      },
      "slot": "armor",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane",
        "Enchantment",
        "Nature"
      ]
    },
    "equipment_battlemage_staff": {
      "asset": "tiles/items/equipment/battlemage_staff.png",
      "augmentSummary": {
        "spellCount": 33
      },
      "baseId": "battlemage_staff",
      "className": "BattlemageStaff",
      "conditionalSummary": {
        "count": 1
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_battlemage_staff.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/battlemage_staff.png",
      "id": "equipment_battlemage_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Battlemage Staff",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Eye"
        },
        {
          "amount": 1,
          "tag": "Sorcery"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Sorcery": {
          "num_targets": 1,
          "radius": 1
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Sorcery"
      ]
    },
    "equipment_bedlam_bell": {
      "asset": "tiles/items/equipment/bedlam_bell.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "bedlam_bell",
      "className": "BedlamBell",
      "description": "When an enemy awakens from [sleep], they and any other enemies within [3:radius] tiles of them are [berserked] for [2:duration] turns",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'CommonContent.EventOnAwakened'>"
      ],
      "icon": "icons/runtime/equipment_bedlam_bell.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/bedlam_bell.png",
      "id": "equipment_bedlam_bell",
      "kind": "equipment",
      "level": 0,
      "name": "Bedlam Bell",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 1,
          "tag": "Chaos"
        },
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane",
        "Chaos",
        "Dark"
      ]
    },
    "equipment_blazeblood_staff": {
      "asset": "tiles/items/equipment/blazeblood_staff.png",
      "augmentSummary": {
        "spellCount": 50
      },
      "baseId": "blazeblood_staff",
      "className": "BlazebloodStaff",
      "conditionalSummary": {
        "count": 42
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_blazeblood_staff.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/blazeblood_staff.png",
      "id": "equipment_blazeblood_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Blazeblood Staff",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 1,
          "tag": "Blood"
        },
        {
          "amount": 1,
          "tag": "Fire"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Blood": {
          "quick_cast": 1
        },
        "Fire": {
          "quick_cast": 1
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Blood",
        "Fire"
      ]
    },
    "equipment_blazing_wand": {
      "asset": "tiles/items/equipment/blazing_wand.png",
      "augmentSummary": {
        "spellCount": 26
      },
      "baseId": "blazing_wand",
      "className": "BlazingWand",
      "conditionalSummary": {
        "count": 26
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_blazing_wand.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/blazing_wand.png",
      "id": "equipment_blazing_wand",
      "kind": "equipment",
      "level": 0,
      "name": "Blazing Wand",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Fire"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Fire": {
          "damage": 7,
          "max_charges": 2
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Fire"
      ]
    },
    "equipment_blizzard_beacon": {
      "asset": "tiles/items/equipment/blizzard_beacon.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "blizzard_beacon",
      "className": "BlizzardBeacon",
      "description": "Each turn, summon a random number of [Blizzards:ice] across the level\nThe [Blizzards:ice] deal [5:damage] damage and last for [5:duration] turns\nThe maximum number summoned each turn is equal to your [Ice] mastery",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_blizzard_beacon.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/Blizzard_Beacon.png",
      "id": "equipment_blizzard_beacon",
      "kind": "equipment",
      "level": 0,
      "name": "Blizzard Beacon",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Ice"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Ice"
      ]
    },
    "equipment_blood_ruby": {
      "asset": "tiles/items/equipment/blood_ruby.png",
      "augmentSummary": {
        "spellCount": 18
      },
      "baseId": "blood_ruby",
      "className": "Bloodruby",
      "conditionalSummary": {
        "count": 14
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_blood_ruby.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/blood_ruby.png",
      "id": "equipment_blood_ruby",
      "kind": "equipment",
      "level": 0,
      "name": "Blood Ruby",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Blood"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {
        "Blood": {
          "damage": 100,
          "hp_cost": 100,
          "range": 100
        }
      },
      "tags": [
        "Blood"
      ]
    },
    "equipment_blood_shield": {
      "asset": "tiles/items/equipment/blood_shield.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "blood_shield",
      "className": "BloodShield",
      "description": "When you cast a spell, pay 3 HP to gain 1 [SH:shields]",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_blood_shield.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/Blood_Shield.png",
      "id": "equipment_blood_shield",
      "kind": "equipment",
      "level": 0,
      "name": "Blood Shield",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 2,
          "tag": "Blood"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Blood"
      ]
    },
    "equipment_blood_staff": {
      "asset": "tiles/items/equipment/blood_staff.png",
      "augmentSummary": {
        "spellCount": 25
      },
      "baseId": "blood_staff",
      "className": "BloodStaff",
      "conditionalSummary": {
        "count": 20
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_blood_staff.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/blood_staff.png",
      "id": "equipment_blood_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Blood Staff",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Blood"
        },
        {
          "amount": 5,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Blood": {
          "max_charges": 1,
          "minion_damage": 3,
          "range": 2
        }
      },
      "tagBonusesPct": {
        "Blood": {
          "damage": 50,
          "minion_health": 50
        }
      },
      "tags": [
        "Blood"
      ]
    },
    "equipment_bloodletter_bracers": {
      "asset": "tiles/items/equipment/bloodletter_bracers.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "bloodletter_bracers",
      "className": "BloodletterBracers",
      "description": "For every 50 HP you spend, regain a charge of a random [Blood] spell\nHP Spent: [0:blood]",
      "effectHighlights": [
        "can refund spell charges"
      ],
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_bloodletter_bracers.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/bloodletter_bracers.png",
      "id": "equipment_bloodletter_bracers",
      "kind": "equipment",
      "level": 0,
      "name": "Bloodletter Bracers",
      "ownerTriggers": [
        "<class 'Level.EventOnSpendHP'>"
      ],
      "recipe": [
        {
          "amount": 2,
          "tag": "Blood"
        },
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {
        "Blood": {
          "hp_cost": 25
        }
      },
      "tags": [
        "Blood"
      ]
    },
    "equipment_bloodspike_helm": {
      "asset": "tiles/items/equipment/bloodspike_helm.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "bloodspike_helm",
      "className": "BloodspikeHelm",
      "description": "When you pay HP, deal that much [Physical] damage to up to [3:num_targets] enemies in your line of sight",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_bloodspike_helm.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/bloodspike_helm.png",
      "id": "equipment_bloodspike_helm",
      "kind": "equipment",
      "level": 0,
      "name": "Bloodspike Helm",
      "ownerTriggers": [
        "<class 'Level.EventOnSpendHP'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Blood"
        },
        {
          "amount": 1,
          "tag": "Eye"
        },
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "helmet",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Blood",
        "Eye"
      ]
    },
    "equipment_blooming_wand": {
      "asset": "tiles/items/equipment/blooming_wand.png",
      "augmentSummary": {
        "spellCount": 15
      },
      "baseId": "blooming_wand",
      "className": "BloomingWand",
      "conditionalSummary": {
        "count": 15
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_blooming_wand.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/blooming_wand.png",
      "id": "equipment_blooming_wand",
      "kind": "equipment",
      "level": 0,
      "name": "Blooming Wand",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Nature"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Nature": {
          "damage": 4,
          "num_targets": 1,
          "radius": 1
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Nature"
      ]
    },
    "equipment_book_of_chaos": {
      "asset": "tiles/items/equipment/book_of_chaos.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "book_of_chaos",
      "className": "BookOfChaos",
      "description": "Teaches you the forbidden spell Word of Chaos\nRemoving this equipment or its spell also removes the other",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_book_of_chaos.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/book_of_chaos.png",
      "id": "equipment_book_of_chaos",
      "kind": "equipment",
      "level": 0,
      "name": "Book of Chaos",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Chaos"
        },
        {
          "amount": 1,
          "tag": "Word"
        },
        {
          "amount": 1,
          "tag": "Word"
        },
        {
          "amount": 6,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Chaos",
        "Word"
      ]
    },
    "equipment_book_of_curses": {
      "asset": "tiles/items/equipment/book_of_curses.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "book_of_curses",
      "className": "BookOfCurses",
      "description": "Teaches you the forbidden spell Litany of Curses\nRemoving this equipment or its spell also removes the other",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_book_of_curses.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/book_of_curses.png",
      "id": "equipment_book_of_curses",
      "kind": "equipment",
      "level": 0,
      "name": "Book of Curses",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Ritual"
        },
        {
          "amount": 1,
          "tag": "Word"
        },
        {
          "amount": 1,
          "tag": "Word"
        },
        {
          "amount": 5,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Dark",
        "Ritual",
        "Word"
      ]
    },
    "equipment_book_of_death": {
      "asset": "tiles/items/equipment/book_of_death.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "book_of_death",
      "className": "BookOfDeath",
      "description": "Teaches you the forbidden spell Word of Undeath\nRemoving this equipment or its spell also removes the other",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_book_of_death.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/book_of_death.png",
      "id": "equipment_book_of_death",
      "kind": "equipment",
      "level": 0,
      "name": "Book of Death",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Word"
        },
        {
          "amount": 1,
          "tag": "Word"
        },
        {
          "amount": 6,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Dark",
        "Word"
      ]
    },
    "equipment_book_of_four_seals": {
      "asset": "tiles/items/equipment/book_of_four_seals.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "book_of_four_seals",
      "className": "BookOfFourSeals",
      "description": "Teaches you the forbidden spell Summon Rider\nRemoving this equipment or its spell also removes the other",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_book_of_four_seals.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/book_of_four_seals.png",
      "id": "equipment_book_of_four_seals",
      "kind": "equipment",
      "level": 0,
      "name": "Book of Four Seals",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Dark"
        },
        {
          "amount": 2,
          "tag": "Holy"
        },
        {
          "amount": 2,
          "tag": "Word"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Conjuration",
        "Dark",
        "Holy",
        "Word"
      ]
    },
    "equipment_book_of_helheim": {
      "asset": "tiles/items/equipment/book_of_helheim.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "book_of_helheim",
      "className": "BookOfHelheim",
      "description": "Teaches you the forbidden spell Gates of Helheim\nRemoving this equipment or its spell also removes the other",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_book_of_helheim.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/book_of_helheim.png",
      "id": "equipment_book_of_helheim",
      "kind": "equipment",
      "level": 0,
      "name": "Book of Helheim",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Lightning"
        },
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Word"
        },
        {
          "amount": 5,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Dark",
        "Lightning",
        "Conjuration"
      ]
    },
    "equipment_book_of_ice": {
      "asset": "tiles/items/equipment/book_of_ice.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "book_of_ice",
      "className": "BookOfIce",
      "description": "Teaches you the forbidden spell Word of Ice\nRemoving this equipment or its spell also removes the other",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_book_of_ice.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/book_of_ice.png",
      "id": "equipment_book_of_ice",
      "kind": "equipment",
      "level": 0,
      "name": "Book of Ice",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Ice"
        },
        {
          "amount": 2,
          "tag": "Word"
        },
        {
          "amount": 6,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Ice",
        "Word"
      ]
    },
    "equipment_book_of_life": {
      "asset": "tiles/items/equipment/book_of_life.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "book_of_life",
      "className": "BookOfLife",
      "description": "Teaches you the forbidden spell Word of Beauty\nRemoving this equipment or its spell also removes the other",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_book_of_life.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/book_of_life.png",
      "id": "equipment_book_of_life",
      "kind": "equipment",
      "level": 0,
      "name": "Book of Life",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Holy"
        },
        {
          "amount": 1,
          "tag": "Lightning"
        },
        {
          "amount": 1,
          "tag": "Word"
        },
        {
          "amount": 1,
          "tag": "Word"
        },
        {
          "amount": 5,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Holy",
        "Lightning",
        "Word"
      ]
    },
    "equipment_book_of_madness": {
      "asset": "tiles/items/equipment/book_of_madness.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "book_of_madness",
      "className": "BookOfMadness",
      "description": "Teaches you the forbidden spell Word of Madness\nRemoving this equipment or its spell also removes the other",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_book_of_madness.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/book_of_madness.png",
      "id": "equipment_book_of_madness",
      "kind": "equipment",
      "level": 0,
      "name": "Book of Madness",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Word"
        },
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 1,
          "tag": "Word"
        },
        {
          "amount": 5,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Word",
        "Dark",
        "Arcane"
      ]
    },
    "equipment_book_of_malevolence": {
      "asset": "tiles/items/equipment/book_of_malevolence.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "book_of_malevolence",
      "className": "BookOfMalevolence",
      "description": "Teaches you the forbidden spell Hatebolts\nRemoving this equipment or its spell also removes the other",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_book_of_malevolence.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/book_of_malevolence.png",
      "id": "equipment_book_of_malevolence",
      "kind": "equipment",
      "level": 0,
      "name": "Book of Malevolence",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Fire"
        },
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Sorcery"
        },
        {
          "amount": 1,
          "tag": "Word"
        },
        {
          "amount": 5,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Fire",
        "Dark",
        "Sorcery"
      ]
    },
    "equipment_book_of_revelation": {
      "asset": "tiles/items/equipment/book_of_revelation.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "book_of_revelation",
      "className": "BookOfRevelation",
      "description": "Teaches you the forbidden spell Ritual of Revelation\nRemoving this equipment or its spell also removes the other",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_book_of_revelation.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/book_of_revelation.png",
      "id": "equipment_book_of_revelation",
      "kind": "equipment",
      "level": 0,
      "name": "Book of Revelation",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Holy"
        },
        {
          "amount": 1,
          "tag": "Blood"
        },
        {
          "amount": 1,
          "tag": "Ritual"
        },
        {
          "amount": 1,
          "tag": "Word"
        },
        {
          "amount": 5,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Holy",
        "Blood",
        "Ritual"
      ]
    },
    "equipment_boots_of_imminent_doom": {
      "asset": "tiles/items/equipment/boots_of_imminent_doom.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "boots_of_imminent_doom",
      "className": "BootsOfImminentDoom",
      "description": "At the beginning of each level, cast Seal Fate on enemies within [5:radius] tiles",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 2,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_boots_of_imminent_doom.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/Boots_of_Imminent_Doom.png",
      "id": "equipment_boots_of_imminent_doom",
      "kind": "equipment",
      "level": 0,
      "name": "Boots of Imminent Doom",
      "ownerTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 1,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "boots",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Dark"
      ]
    },
    "equipment_boreal_armor": {
      "asset": "tiles/items/equipment/boreal_armor.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "boreal_armor",
      "className": "BorealArmor",
      "description": "Gain [3 SH:shields] at the beginning of each level\nWhen an enemy removes one of your shields, deal [12:damage] [Ice] damage to them",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 2,
        "pathCount": 19
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnShieldRemoved'>"
      ],
      "icon": "icons/runtime/equipment_boreal_armor.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/boreal_armor.png",
      "id": "equipment_boreal_armor",
      "kind": "equipment",
      "level": 0,
      "name": "Boreal Armor",
      "ownerTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Ice"
        },
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {
        "Ice": 25,
        "Physical": 25
      },
      "slot": "armor",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Ice"
      ]
    },
    "equipment_brain_hat": {
      "asset": "tiles/items/equipment/brain_hat.png",
      "augmentSummary": {
        "spellCount": 186
      },
      "baseId": "brain_hat",
      "className": "BrainHat",
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {
        "max_charges": 1
      },
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_brain_hat.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/brain_hat.png",
      "id": "equipment_brain_hat",
      "kind": "equipment",
      "level": 0,
      "name": "Brain Hat",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "helmet",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane"
      ]
    },
    "equipment_brisingamen": {
      "asset": "tiles/items/equipment/brisingamen.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "brisingamen",
      "className": "Brisingamen",
      "description": "At the beginning of each level, enemies in your line of sight are [berserked] for [3:duration] turns",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_brisingamen.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/brisingamen.png",
      "id": "equipment_brisingamen",
      "kind": "equipment",
      "level": 0,
      "name": "Brisingamen",
      "ownerTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 1,
          "tag": "Fire"
        },
        {
          "amount": 1,
          "tag": "Holy"
        },
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Enchantment",
        "Fire",
        "Holy",
        "Metallic"
      ]
    },
    "equipment_cage_of_chimerae": {
      "asset": "tiles/items/equipment/cage_of_chimerae.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "cage_of_chimerae",
      "className": "ChimeraCage",
      "description": "At the beginning of each level, summon a Chaos Chimera, a Deathchill Chimera, and a Starfire Chimera",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_cage_of_chimerae.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/cage_of_chimerae.png",
      "id": "equipment_cage_of_chimerae",
      "kind": "equipment",
      "level": 0,
      "name": "Cage of Chimerae",
      "ownerTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Chaos"
        },
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 1,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Chaos",
        "Arcane",
        "Fire",
        "Dark",
        "Ice",
        "Metallic",
        "Lightning",
        "Conjuration"
      ]
    },
    "equipment_cannibal_mask": {
      "asset": "tiles/items/equipment/cannibal_mask.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "cannibal_mask",
      "className": "CannibalMask",
      "description": "When your allies die, another ally gains half the dead unit's max HP",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDeath'>"
      ],
      "icon": "icons/runtime/equipment_cannibal_mask.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/cannibal_mask.png",
      "id": "equipment_cannibal_mask",
      "kind": "equipment",
      "level": 0,
      "name": "Cannibal Mask",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 3,
          "tag": "Blood"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "helmet",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Blood"
      ]
    },
    "equipment_cantrip_clogs": {
      "asset": "tiles/items/equipment/cantrip_clogs.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "cantrip_clogs",
      "className": "CantripClogs",
      "conditionalSummary": {
        "count": 11
      },
      "description": "When you take a step, regain a charge of each level 1 spell you know",
      "effectHighlights": [
        "can refund spell charges"
      ],
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_cantrip_clogs.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/cantrip_clogs.png",
      "id": "equipment_cantrip_clogs",
      "kind": "equipment",
      "level": 0,
      "name": "Cantrip Clogs",
      "ownerTriggers": [
        "<class 'Level.EventOnMoved'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Sorcery"
        },
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 1,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "boots",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Translocation"
      ]
    },
    "equipment_caustic_sprig": {
      "asset": "tiles/items/equipment/caustic_sprig.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "caustic_sprig",
      "className": "CausticSprig",
      "description": "Each turn, [poisoned] enemies lose one of their temporary buffs\nIf a buff is lost this way, their [poison] duration is doubled",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_caustic_sprig.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/caustic_sprig.png",
      "id": "equipment_caustic_sprig",
      "kind": "equipment",
      "level": 0,
      "name": "Caustic Sprig",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Nature"
      ]
    },
    "equipment_chalice_of_dragons": {
      "asset": "tiles/items/equipment/chalice_of_dragons.png",
      "augmentSummary": {
        "spellCount": 12
      },
      "baseId": "chalice_of_dragons",
      "className": "ChaliceOfDragons",
      "description": "When you pick up a Memory Orb, your [Dragon:dragon] spells regain all charges",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnItemPickup'>"
      ],
      "icon": "icons/runtime/equipment_chalice_of_dragons.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/Chalice_of_Dragons.png",
      "id": "equipment_chalice_of_dragons",
      "kind": "equipment",
      "level": 0,
      "name": "Chalice of Dragons",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 3,
          "tag": "Dragon"
        },
        {
          "amount": 5,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Dragon"
      ]
    },
    "equipment_chalice_of_iron": {
      "asset": "tiles/items/equipment/chalice_of_iron.png",
      "augmentSummary": {
        "spellCount": 18
      },
      "baseId": "chalice_of_iron",
      "className": "ChaliceOfIron",
      "description": "When you pick up a Memory Orb, your [Metallic:metallic] spells regain all charges",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnItemPickup'>"
      ],
      "icon": "icons/runtime/equipment_chalice_of_iron.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/Chalice_of_Iron.png",
      "id": "equipment_chalice_of_iron",
      "kind": "equipment",
      "level": 0,
      "name": "Chalice of Iron",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 3,
          "tag": "Metallic"
        },
        {
          "amount": 5,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Metallic"
      ]
    },
    "equipment_chalice_of_light": {
      "asset": "tiles/items/equipment/chalice_of_light.png",
      "augmentSummary": {
        "spellCount": 25
      },
      "baseId": "chalice_of_light",
      "className": "ChaliceOfLight",
      "description": "When you pick up a Memory Orb, your [Holy:holy] spells regain all charges",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnItemPickup'>"
      ],
      "icon": "icons/runtime/equipment_chalice_of_light.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/Chalice_of_Light.png",
      "id": "equipment_chalice_of_light",
      "kind": "equipment",
      "level": 0,
      "name": "Chalice of Light",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 3,
          "tag": "Holy"
        },
        {
          "amount": 5,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Holy"
      ]
    },
    "equipment_chalice_of_warp": {
      "asset": "tiles/items/equipment/chalice_of_warp.png",
      "augmentSummary": {
        "spellCount": 11
      },
      "baseId": "chalice_of_warp",
      "className": "ChaliceOfWarp",
      "description": "When you pick up a Memory Orb, your [Translocation:translocation] spells regain all charges",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnItemPickup'>"
      ],
      "icon": "icons/runtime/equipment_chalice_of_warp.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/Chalice_of_Warp.png",
      "id": "equipment_chalice_of_warp",
      "kind": "equipment",
      "level": 0,
      "name": "Chalice of Warp",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 3,
          "tag": "Translocation"
        },
        {
          "amount": 5,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Translocation"
      ]
    },
    "equipment_channeler_s_focus": {
      "asset": "tiles/items/equipment/channeler's_focus.png",
      "augmentSummary": {
        "spellCount": 10
      },
      "baseId": "channeler_s_focus",
      "className": "ChannelersFocus",
      "description": "Gain [6:duration] turns of Clarity when you cast a channeled spell",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {
        "max_channel": 100
      },
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_channeler_s_focus.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/items/equipment/channelers_focus.png",
      "id": "equipment_channeler_s_focus",
      "kind": "equipment",
      "level": 0,
      "name": "Channeler's Focus",
      "ownerTriggers": [
        "<class 'Level.EventOnBuffApply'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 1,
          "tag": "Ritual"
        },
        {
          "amount": 1,
          "tag": "Sorcery"
        },
        {
          "amount": 1,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Enchantment",
        "Sorcery"
      ]
    },
    "equipment_channeler_s_treads": {
      "asset": "tiles/items/equipment/channeler's_treads.png",
      "augmentSummary": {
        "spellCount": 10
      },
      "baseId": "channeler_s_treads",
      "className": "ChannelersTreads",
      "conditionalSummary": {
        "count": 11
      },
      "description": "While channeling, walking will not end the channel",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {
        "max_channel": 50
      },
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_channeler_s_treads.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/items/equipment/channelers_treads.png",
      "id": "equipment_channeler_s_treads",
      "kind": "equipment",
      "level": 0,
      "name": "Channeler's Treads",
      "ownerTriggers": [
        "<class 'Level.EventOnMoved'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 1,
          "tag": "Sorcery"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "boots",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Enchantment",
        "Sorcery",
        "Translocation"
      ]
    },
    "equipment_chaos_links": {
      "asset": "tiles/items/equipment/chaos_links.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "chaos_links",
      "className": "ChaosLinks",
      "description": "When an enemy dies to [Fire], [Physical], or [Lightning] damage, a random enemy in line of sight within [3:radius] tiles takes [13:damage] damage of that type",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDeath'>"
      ],
      "icon": "icons/runtime/equipment_chaos_links.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/chaos_links.png",
      "id": "equipment_chaos_links",
      "kind": "equipment",
      "level": 0,
      "name": "Chaos Links",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Chaos"
        },
        {
          "amount": 1,
          "tag": "Fire"
        },
        {
          "amount": 1,
          "tag": "Lightning"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Chaos",
        "Fire",
        "Lightning"
      ]
    },
    "equipment_chaos_robes": {
      "asset": "tiles/items/equipment/chaos_robes.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "chaos_robes",
      "className": "ChaosRobes",
      "description": "When you cast a [Chaos] spell, deal [8:damage] damage to up to [3:num_targets] targets in line of sight\nDeals [Fire], [Lightning], or [Physical] damage",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_chaos_robes.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/chaos_robes.png",
      "id": "equipment_chaos_robes",
      "kind": "equipment",
      "level": 0,
      "name": "Chaos Robes",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 2,
          "tag": "Chaos"
        },
        {
          "amount": 1,
          "tag": "Eye"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {
        "Fire": 25,
        "Lightning": 25,
        "Physical": 25
      },
      "slot": "armor",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Chaos"
      ]
    },
    "equipment_chaos_scale_crown": {
      "asset": "tiles/items/equipment/chaos_scale_crown.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "chaos_scale_crown",
      "className": "MinionCastHat",
      "conditionalSummary": {
        "count": 12
      },
      "description": "Each turn, one of your [Dragon:dragon] allies casts your Annihilate spell on a random enemy",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_chaos_scale_crown.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/chaos_scale_crown.png",
      "id": "equipment_chaos_scale_crown",
      "kind": "equipment",
      "level": 0,
      "name": "Chaos Scale Crown",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Chaos"
        },
        {
          "amount": 1,
          "tag": "Sorcery"
        },
        {
          "amount": 1,
          "tag": "Dragon"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "helmet",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Chaos",
        "Sorcery",
        "Dragon"
      ]
    },
    "equipment_chaos_serpent_staff": {
      "asset": "tiles/items/equipment/chaos_serpent_staff.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "chaos_serpent_staff",
      "className": "ChaosSerpentStaff",
      "conditionalSummary": {
        "count": 12
      },
      "description": "When you deal [9:minion_health] or more [Fire], [Lightning], or [Physical] damage, summon a corresponding snake for [3:minion_duration] turns",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_chaos_serpent_staff.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/chaos_serpent_staff.png",
      "id": "equipment_chaos_serpent_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Chaos Serpent Staff",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Chaos"
        },
        {
          "amount": 2,
          "tag": "Conjuration"
        },
        {
          "amount": 2,
          "tag": "Dragon"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Chaos",
        "Dragon"
      ]
    },
    "equipment_chaos_staff": {
      "asset": "tiles/items/equipment/chaos_staff.png",
      "augmentSummary": {
        "spellCount": 11
      },
      "baseId": "chaos_staff",
      "className": "ChaosStaff",
      "conditionalSummary": {
        "count": 14
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_chaos_staff.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/chaos_staff.png",
      "id": "equipment_chaos_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Chaos Staff",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Chaos"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {
        "Chaos": {
          "max_charges": 33,
          "minion_damage": 33,
          "minion_range": 33,
          "num_summons": 33
        }
      },
      "tags": [
        "Chaos"
      ]
    },
    "equipment_charm_of_darkness": {
      "asset": "tiles/items/equipment/charm_of_darkness.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "charm_of_darkness",
      "className": "CharmOfDarkness",
      "description": "Your summoned allies gain [25 Arcane:arcane] resist, [25 Dark:dark] resist, and [25 Holy:holy] resist",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "icon": "icons/runtime/equipment_charm_of_darkness.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/charm_of_darkness.png",
      "id": "equipment_charm_of_darkness",
      "kind": "equipment",
      "level": 0,
      "name": "Charm Of Darkness",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Nature"
      ]
    },
    "equipment_charm_of_vigor": {
      "asset": "tiles/items/equipment/charm_of_vigor.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "charm_of_vigor",
      "className": "CharmOfVigor",
      "description": "Your summoned allies gain [25 Physical:physical] resist, [25 Lightning:lightning] resist, [25 Ice:ice] resist, and [25 Fire:fire] resist",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "icon": "icons/runtime/equipment_charm_of_vigor.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/charm_of_vigor.png",
      "id": "equipment_charm_of_vigor",
      "kind": "equipment",
      "level": 0,
      "name": "Charm Of Vigor",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Nature"
      ]
    },
    "equipment_chastising_lash": {
      "asset": "tiles/items/equipment/chastising_lash.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "chastising_lash",
      "className": "StatusOnDamageEquipment",
      "description": "When an enemy takes [Holy:holy] damage, it has a 40% chance to be afflicted with [1:duration] turn of [stun]",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_chastising_lash.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/chastising_lash.png",
      "id": "equipment_chastising_lash",
      "kind": "equipment",
      "level": 0,
      "name": "Chastising Lash",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Holy"
        },
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Holy"
      ]
    },
    "equipment_chelation_claw": {
      "asset": "tiles/items/equipment/chelation_claw.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "chelation_claw",
      "className": "ChelationClaw",
      "description": "When you cast a [Blood] or [Metallic] spell targeting an enemy, inflict [3:duration] turns of [hemorrhage] on them",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_chelation_claw.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/chelation_claw.png",
      "id": "equipment_chelation_claw",
      "kind": "equipment",
      "level": 0,
      "name": "Chelation Claw",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Blood"
        },
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Blood",
        "Metallic"
      ]
    },
    "equipment_chill_staff": {
      "asset": "tiles/items/equipment/chill_staff.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "chill_staff",
      "className": "ChillStaff",
      "description": "When you cast an [Ice] spell, the nearest unfrozen enemy to that spell's target is [frozen] for [3:duration] turns",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_chill_staff.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/chill_staff.png",
      "id": "equipment_chill_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Chill Staff",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Ice"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Ice"
      ]
    },
    "equipment_codex_necronomicus": {
      "asset": "tiles/items/equipment/codex_necronomicus.png",
      "augmentSummary": {
        "spellCount": 40
      },
      "baseId": "codex_necronomicus",
      "className": "Necronomicon",
      "description": "When you manually cast a [Dark] spell, there is a chance for it to receive a random upgrade\nWhen a spell is upgraded this way, the HP cost of all spells and equipment increases by 1\nThe chance for a spell to be upgraded is equal to your [Dark] mastery",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {
        "hp_cost": 1
      },
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_codex_necronomicus.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/codex_necronomicus.png",
      "id": "equipment_codex_necronomicus",
      "kind": "equipment",
      "level": 0,
      "name": "Codex Necronomicus",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 2,
          "tag": "Dark"
        },
        {
          "amount": 3,
          "tag": "Word"
        },
        {
          "amount": 5,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Dark",
        "Word"
      ],
      "virtualVariants": [
        {
          "action": {
            "label": "chance to grant a random upgrade to a Dark spell (scales with Dark mastery); each proc adds +1 HP cost to everything",
            "type": "mutates_spell"
          },
          "conditions": [
            "evt.pay_costs",
            "Tags.Dark in evt.spell.tags",
            "evt.caster.is_player_controlled",
            "spell has unapplied upgrades",
            "random.random() * 100 <= owner Dark mastery"
          ],
          "evidence": [
            {
              "file": "Equipment.py",
              "line": 8463,
              "snippet": "self.owner_triggers[EventOnSpellCast] = self.on_cast",
              "symbol": "Necronomicon.on_init"
            },
            {
              "file": "Equipment.py",
              "line": 8480,
              "snippet": "if Tags.Dark not in evt.spell.tags: return",
              "symbol": "Necronomicon.on_cast"
            },
            {
              "file": "Equipment.py",
              "line": 8484,
              "snippet": "if random.random() * 100 > self.owner.get_mastery(Tags.Dark): return",
              "symbol": "Necronomicon.on_cast"
            },
            {
              "file": "Equipment.py",
              "line": 8488,
              "snippet": "if isinstance(upgrade, Upgrade): self.owner.apply_buff(upgrade)",
              "symbol": "Necronomicon.on_cast"
            },
            {
              "file": "Equipment.py",
              "line": 8492,
              "snippet": "self.global_bonuses['hp_cost'] += 1",
              "symbol": "Necronomicon.on_cast"
            }
          ],
          "id": "effect_necronomicon_dark_upgrade_chance",
          "kind": "mutates_spell",
          "state": [
            {
              "name": "global hp_cost bonus grows by 1 per upgrade proc",
              "type": "escalation"
            }
          ],
          "title": "Mutates a known spell"
        }
      ]
    },
    "equipment_codex_of_chaotic_evolution": {
      "asset": "tiles/items/equipment/codex_of_chaotic_evolution.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "codex_of_chaotic_evolution",
      "className": "CodexOfChaoticEvolution",
      "description": "At the beginning of each level, one of your spells receives a random upgrade\nThis effect can grant upgrades to any [Sorcery] or [Chaos] spell that doesn't have all of its upgrades",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_codex_of_chaotic_evolution.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/codex_of_chaotic_evolution.png",
      "id": "equipment_codex_of_chaotic_evolution",
      "kind": "equipment",
      "level": 0,
      "name": "Codex of Chaotic Evolution",
      "ownerTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 2,
          "tag": "Enchantment"
        },
        {
          "amount": 1,
          "tag": "Holy"
        },
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 1,
          "tag": "Slime"
        },
        {
          "amount": 2,
          "tag": "Translocation"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Sorcery",
        "Chaos"
      ]
    },
    "equipment_cold_iron_heart": {
      "asset": "tiles/items/equipment/cold_iron_heart.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "cold_iron_heart",
      "className": "ColdIronHeart",
      "description": "You are immune to [fear]",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_cold_iron_heart.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/cold_iron_heart.png",
      "id": "equipment_cold_iron_heart",
      "kind": "equipment",
      "level": 0,
      "name": "Cold Iron Heart",
      "ownerTriggers": [
        "<class 'Level.EventOnBuffApply'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Blood"
        },
        {
          "amount": 1,
          "tag": "Ice"
        },
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 1,
          "tag": "Any"
        }
      ],
      "resists": {
        "Ice": 25,
        "Poison": 25
      },
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Blood",
        "Ice",
        "Metallic"
      ]
    },
    "equipment_coldsnap_amulet": {
      "asset": "tiles/items/equipment/coldsnap_amulet.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "coldsnap_amulet",
      "className": "StatusOnDamageEquipment",
      "description": "When an enemy takes [Ice:ice] damage, it has a 40% chance to be afflicted with [2:duration] turns of [frozen]",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_coldsnap_amulet.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/coldsnap_amulet.png",
      "id": "equipment_coldsnap_amulet",
      "kind": "equipment",
      "level": 0,
      "name": "Coldsnap Amulet",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Ice"
        },
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Ice"
      ]
    },
    "equipment_conciliator_s_claw": {
      "asset": "tiles/items/equipment/conciliator's_claw.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "conciliator_s_claw",
      "className": "ConciliatorsClaw",
      "description": "Dealing damage to an adjacent enemy heals you and allies in your line of sight for 1 HP",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_conciliator_s_claw.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/items/equipment/conciliators_claw.png",
      "id": "equipment_conciliator_s_claw",
      "kind": "equipment",
      "level": 0,
      "name": "Conciliator's Claw",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Blood"
        },
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Blood",
        "Metallic"
      ]
    },
    "equipment_conjuration_staff": {
      "asset": "tiles/items/equipment/conjuration_staff.png",
      "augmentSummary": {
        "spellCount": 60
      },
      "baseId": "conjuration_staff",
      "className": "ConjurationStaff",
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_conjuration_staff.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/conjuration_staff.png",
      "id": "equipment_conjuration_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Conjuration Staff",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Conjuration"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {
        "Conjuration": {
          "minion_damage": 50,
          "minion_health": 50
        }
      },
      "tags": [
        "Conjuration"
      ]
    },
    "equipment_contagion_corpse": {
      "asset": "tiles/items/equipment/contagion_corpse.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "contagion_corpse",
      "className": "ContagionCorpse",
      "description": "When a [poisoned] unit dies, enemies within [3:radius] tiles are [poisoned] for [7:duration] turns and take [3:damage] [Poison] damage",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDeath'>"
      ],
      "icon": "icons/runtime/equipment_contagion_corpse.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/contagion_corpse.png",
      "id": "equipment_contagion_corpse",
      "kind": "equipment",
      "level": 0,
      "name": "Contagion Corpse",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Dark"
        },
        {
          "amount": 2,
          "tag": "Nature"
        },
        {
          "amount": 1,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Dark",
        "Nature"
      ]
    },
    "equipment_coruscating_wand": {
      "asset": "tiles/items/equipment/coruscating_wand.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "coruscating_wand",
      "className": "StatusOnDamageEquipment",
      "description": "When an enemy takes [Lightning:lightning] damage, it has a 40% chance to be afflicted with [3:duration] turns of [blind]",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_coruscating_wand.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/coruscating_wand.png",
      "id": "equipment_coruscating_wand",
      "kind": "equipment",
      "level": 0,
      "name": "Coruscating Wand",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Lightning"
        },
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Lightning"
      ]
    },
    "equipment_crackledarkener": {
      "asset": "tiles/items/equipment/crackledarkener.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "crackledarkener",
      "className": "Crackledark",
      "description": "When an enemy takes [Dark] damage, deal that much [Lightning] damage to up to [3:num_targets] units in its line of sight within [3:radius] tiles",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_crackledarkener.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/crackledarkener.png",
      "id": "equipment_crackledarkener",
      "kind": "equipment",
      "level": 0,
      "name": "Crackledarkener",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 2,
          "tag": "Lightning"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Dark",
        "Lightning"
      ]
    },
    "equipment_cracklevoid": {
      "asset": "tiles/items/equipment/cracklevoid.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "cracklevoid",
      "className": "CrackleVoid",
      "description": "When an enemy takes [Arcane] damage, up to [2:num_targets] enemies in line of sight within [4:radius] tiles take that much [Lightning] damage",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_cracklevoid.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/cracklevoid.png",
      "id": "equipment_cracklevoid",
      "kind": "equipment",
      "level": 0,
      "name": "Cracklevoid",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 2,
          "tag": "Lightning"
        },
        {
          "amount": 5,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane",
        "Lightning"
      ]
    },
    "equipment_crimson_brooch": {
      "asset": "tiles/items/equipment/crimson_brooch.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "crimson_brooch",
      "className": "CrimsonBrooch",
      "description": "When you pay life, it is preserved in this item\nYou gain a percent damage bonus to [Fire] spells and equipment equal to the amount stored\nResets each level\n[Preserved Life:blood]: [0:blood]",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_crimson_brooch.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/crimson_brooch.png",
      "id": "equipment_crimson_brooch",
      "kind": "equipment",
      "level": 0,
      "name": "Crimson Brooch",
      "ownerTriggers": [
        "<class 'Level.EventOnUnitAdded'>",
        "<class 'Level.EventOnSpendHP'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Blood"
        },
        {
          "amount": 1,
          "tag": "Fire"
        },
        {
          "amount": 1,
          "tag": "Sorcery"
        },
        {
          "amount": 1,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Blood",
        "Fire",
        "Sorcery"
      ]
    },
    "equipment_crimson_coronet": {
      "asset": "tiles/items/equipment/crimson_coronet.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "crimson_coronet",
      "className": "CrimsonCoronet",
      "description": "Grant allies a [Fire] damage aura when they are summoned\nYou can grant a number of these auras each level equal to the product of your [Blood] and [Fire] masteries",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "icon": "icons/runtime/equipment_crimson_coronet.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/crimson_coronet.png",
      "id": "equipment_crimson_coronet",
      "kind": "equipment",
      "level": 0,
      "name": "Crimson Coronet",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Blood"
        },
        {
          "amount": 2,
          "tag": "Fire"
        },
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "helmet",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Blood",
        "Fire",
        "Conjuration"
      ]
    },
    "equipment_crimson_torc": {
      "asset": "tiles/items/equipment/crimson_torc.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "crimson_torc",
      "className": "CrimsonTorc",
      "description": "At the beginning of each level, gain a percent [damage] bonus to [Fire] and [Blood] spells and equipment for [3:duration] turns\nThe bonus is equal to the product of your [Fire] and [Blood] masteries",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_crimson_torc.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/crimson_torc.png",
      "id": "equipment_crimson_torc",
      "kind": "equipment",
      "level": 0,
      "name": "Crimson Torc",
      "ownerTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Blood"
        },
        {
          "amount": 2,
          "tag": "Enchantment"
        },
        {
          "amount": 1,
          "tag": "Fire"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Blood",
        "Fire",
        "Enchantment"
      ]
    },
    "equipment_crisis_charm": {
      "asset": "tiles/items/equipment/crisis_charm.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "crisis_charm",
      "className": "CrisisCharm",
      "description": "Removes all debuffs and restores you to full health if you would die\nDiscarded after use",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_crisis_charm.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/Crisis_Charm.png",
      "id": "equipment_crisis_charm",
      "kind": "equipment",
      "level": 0,
      "name": "Crisis Charm",
      "ownerTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Holy"
        },
        {
          "amount": 1,
          "tag": "Word"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Blood",
        "Enchantment",
        "Holy"
      ]
    },
    "equipment_crown_of_bony_fingers": {
      "asset": "tiles/items/equipment/crown_of_bony_fingers.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "crown_of_bony_fingers",
      "className": "MinionCastHat",
      "description": "Each turn, one of your [Undead:undead] allies casts your Touch of Death spell on a random enemy",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_crown_of_bony_fingers.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/crown_of_bony_fingers.png",
      "id": "equipment_crown_of_bony_fingers",
      "kind": "equipment",
      "level": 0,
      "name": "Crown of Bony Fingers",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Sorcery"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "helmet",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Dark",
        "Sorcery"
      ]
    },
    "equipment_crown_of_devastation": {
      "asset": "tiles/items/equipment/crown_of_devastation.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "crown_of_devastation",
      "className": "CrownOfDevastation",
      "description": "At the beginning of each level, gain the [Devastation:arcane] buff for [3:duration] turns\n[Devastation:arcane] casts Void Beam on up to [3:num_targets] random enemies each turn",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_crown_of_devastation.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/crown_of_devastation.png",
      "id": "equipment_crown_of_devastation",
      "kind": "equipment",
      "level": 0,
      "name": "Crown of Devastation",
      "ownerTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "recipe": [
        {
          "amount": 3,
          "tag": "Arcane"
        },
        {
          "amount": 3,
          "tag": "Eye"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "helmet",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane",
        "Eye"
      ]
    },
    "equipment_crown_of_ragnarok": {
      "asset": "tiles/items/equipment/crown_of_ragnarok.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "crown_of_ragnarok",
      "className": "CrownOfRagnarok",
      "description": "On the 9th turn of each level, cast Earthquake, Flame Burst, and Storm Burst",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_crown_of_ragnarok.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/Crown_of_Ragnarok.png",
      "id": "equipment_crown_of_ragnarok",
      "kind": "equipment",
      "level": 0,
      "name": "Crown of Ragnarok",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Chaos"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "helmet",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Chaos"
      ]
    },
    "equipment_crown_of_virtuous_sin": {
      "asset": "tiles/items/equipment/crown_of_virtuous_sin.png",
      "augmentSummary": {
        "spellCount": 60
      },
      "baseId": "crown_of_virtuous_sin",
      "className": "CrownOfVirtuousSin",
      "conditionalSummary": {
        "count": 31
      },
      "description": "Casting a [Dark] spell grants you a 25% damage bonus to [Holy] spells and equipment, removed when you cast a [Holy] spell\nCasting a [Holy] spell grants you a 25% damage bonus to [Dark] spells and equipment, removed when you cast a [Dark] spell",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 2,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_crown_of_virtuous_sin.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/crown_of_virtuous_sin.png",
      "id": "equipment_crown_of_virtuous_sin",
      "kind": "equipment",
      "level": 0,
      "name": "Crown of Virtuous Sin",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 2,
          "tag": "Dark"
        },
        {
          "amount": 2,
          "tag": "Holy"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "helmet",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Dark": {
          "max_charges": 1
        },
        "Holy": {
          "max_charges": 1
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Dark",
        "Holy"
      ]
    },
    "equipment_cryotic_accumulator": {
      "asset": "tiles/items/equipment/cryotic_accumulator.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "cryotic_accumulator",
      "className": "CryoticAccumulator",
      "description": "When an enemy is unfrozen, they take [Ice] damage\nThe damage is equal to [10:damage] multiplied by the number of turns they spent [frozen]",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'CommonContent.EventOnUnfrozen'>"
      ],
      "icon": "icons/runtime/equipment_cryotic_accumulator.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/cryotic_accumulator.png",
      "id": "equipment_cryotic_accumulator",
      "kind": "equipment",
      "level": 0,
      "name": "Cryotic Accumulator",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Ice"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Ice"
      ]
    },
    "equipment_crystal_dagger": {
      "asset": "tiles/items/equipment/crystal_dagger.png",
      "augmentSummary": {
        "spellCount": 17
      },
      "baseId": "crystal_dagger",
      "className": "CrystalDagger",
      "conditionalSummary": {
        "count": 13
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_crystal_dagger.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/crystal_dagger.png",
      "id": "equipment_crystal_dagger",
      "kind": "equipment",
      "level": 0,
      "name": "Crystal Dagger",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 1,
          "tag": "Ice"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Arcane": {
          "damage": 3
        },
        "Ice": {
          "damage": 3
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Arcane",
        "Ice"
      ]
    },
    "equipment_crystal_oculus": {
      "asset": "tiles/items/equipment/crystal_oculus.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "crystal_oculus",
      "className": "GenericOculusEquip",
      "description": "The first time an enemy takes [Ice:ice] or [Arcane:arcane] damage, it gets -25 [Ice:ice] and [Arcane:arcane] resist",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_crystal_oculus.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/crystal_oculus.png",
      "id": "equipment_crystal_oculus",
      "kind": "equipment",
      "level": 0,
      "name": "Crystal Oculus",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 1,
          "tag": "Ice"
        },
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Ice",
        "Arcane"
      ]
    },
    "equipment_cultist_s_staff": {
      "asset": "tiles/items/equipment/cultist's_staff.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "cultist_s_staff",
      "className": "CultistsStaff",
      "description": "Each turn, [pay 1 HP:blood] to deal [Dark] [damage] equal to your missing HP to the nearest enemy",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnLevelComplete'>"
      ],
      "icon": "icons/runtime/equipment_cultist_s_staff.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/items/equipment/cultists_staff.png",
      "id": "equipment_cultist_s_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Cultist's Staff",
      "ownerTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "recipe": [
        {
          "amount": 2,
          "tag": "Blood"
        },
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Blood",
        "Dark"
      ]
    },
    "equipment_cultist_soles": {
      "asset": "tiles/items/equipment/cultist_soles.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "cultist_soles",
      "className": "SummonShoes",
      "conditionalSummary": {
        "count": 11
      },
      "description": "Every 3 steps, summon a Cultist\n3 steps until summon",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_cultist_soles.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/cultist_soles.png",
      "id": "equipment_cultist_soles",
      "kind": "equipment",
      "level": 0,
      "name": "Cultist Soles",
      "ownerTriggers": [
        "<class 'Level.EventOnMoved'>",
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "boots",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Conjuration",
        "Translocation",
        "Dark"
      ]
    },
    "equipment_cyst_of_eternal_bloom": {
      "asset": "tiles/items/equipment/cyst_of_eternal_bloom.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "cyst_of_eternal_bloom",
      "className": "CystOfEternalBloom",
      "description": "Each turn, unpoisoned units within [7:radius] tiles are [poisoned] for [7:duration] turns\nSummoned allies have a 50% chance to gain the ability to reincarnate on death",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnUnitAdded'>",
        "<class 'Level.EventOnLevelComplete'>"
      ],
      "icon": "icons/runtime/equipment_cyst_of_eternal_bloom.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/cyst_of_eternal_bloom.png",
      "id": "equipment_cyst_of_eternal_bloom",
      "kind": "equipment",
      "level": 0,
      "name": "Cyst of Eternal Bloom",
      "ownerTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Dragon"
        },
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 1,
          "tag": "Lightning"
        },
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 1,
          "tag": "Ritual"
        },
        {
          "amount": 1,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Nature",
        "Dark"
      ]
    },
    "equipment_dark_staff": {
      "asset": "tiles/items/equipment/dark_staff.png",
      "augmentSummary": {
        "spellCount": 40
      },
      "baseId": "dark_staff",
      "className": "DarkStaff",
      "conditionalSummary": {
        "count": 24
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_dark_staff.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/dark_staff.png",
      "id": "equipment_dark_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Dark Staff",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Dark": {
          "max_charges": 1,
          "radius": 1,
          "range": 2
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Dark"
      ]
    },
    "equipment_disintegrator": {
      "asset": "tiles/items/equipment/disintegrator.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "disintegrator",
      "className": "Disintegrator",
      "description": "For every 40 damage dealt by [Sorcery] spells, deal 1 [Physical] damage to all enemies\nDamage Dealt: 0",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 1
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_disintegrator.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/disintegrator.png",
      "id": "equipment_disintegrator",
      "kind": "equipment",
      "level": 0,
      "name": "Disintegrator",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Sorcery"
        },
        {
          "amount": 6,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Sorcery"
      ]
    },
    "equipment_dowsing_spark": {
      "asset": "tiles/items/equipment/dowsing_spark.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "dowsing_spark",
      "className": "DebuffDamager",
      "description": "Each turn, deal [3:damage] [Lightning:lightning] damage to [10:num_targets] random enemies currently afflicted with [soaked]",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_dowsing_spark.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/dowsing_spark.png",
      "id": "equipment_dowsing_spark",
      "kind": "equipment",
      "level": 0,
      "name": "Dowsing Spark",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Lightning"
        },
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Lightning",
        "Nature"
      ]
    },
    "equipment_draco_antiphony_scepter": {
      "asset": "tiles/items/equipment/draco_antiphony_scepter.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "draco_antiphony_scepter",
      "className": "DracoAntiphonyScepter",
      "conditionalSummary": {
        "count": 12
      },
      "description": "When you cast a level 4 or lower [Sorcery] spell, your [Dragon] allies with matching tags will attempt to cast it",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_draco_antiphony_scepter.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/Draco_Antiphony_Scepter.png",
      "id": "equipment_draco_antiphony_scepter",
      "kind": "equipment",
      "level": 0,
      "name": "Draco Antiphony Scepter",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 2,
          "tag": "Dragon"
        },
        {
          "amount": 2,
          "tag": "Sorcery"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Dragon",
        "Sorcery"
      ]
    },
    "equipment_dragon_hunter_s_sigil": {
      "asset": "tiles/items/equipment/dragon_hunter's_sigil.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "dragon_hunter_s_sigil",
      "className": "RechargeOnKillEquipment",
      "conditionalSummary": {
        "count": 23
      },
      "description": "For every [Dragon:dragon] unit killed, one of your [Translocation] spells regains 1 charge\nAt the end of each level, a Rift containing [Dragon:dragon] enemies is created",
      "effectHighlights": [
        "can refund spell charges"
      ],
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDeath'>",
        "<class 'Level.EventOnLevelComplete'>"
      ],
      "icon": "icons/runtime/equipment_dragon_hunter_s_sigil.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/items/equipment/dragon_hunters_sigil.png",
      "id": "equipment_dragon_hunter_s_sigil",
      "kind": "equipment",
      "level": 0,
      "name": "Dragon Hunter's Sigil",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Translocation"
        },
        {
          "amount": 2,
          "tag": "Dragon"
        },
        {
          "amount": 6,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Translocation",
        "Dragon"
      ]
    },
    "equipment_dragonclaw_sabatons": {
      "asset": "tiles/items/equipment/dragonclaw_sabatons.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "dragonclaw_sabatons",
      "className": "DragonclawSabatons",
      "conditionalSummary": {
        "count": 23
      },
      "description": "When you take a step, cast Dragon Claw on a random adjacent enemy",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_dragonclaw_sabatons.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/dragonclaw_sabatons.png",
      "id": "equipment_dragonclaw_sabatons",
      "kind": "equipment",
      "level": 0,
      "name": "Dragonclaw Sabatons",
      "ownerTriggers": [
        "<class 'Level.EventOnMoved'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Blood"
        },
        {
          "amount": 2,
          "tag": "Dragon"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "boots",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Dragon",
        "Translocation"
      ]
    },
    "equipment_dragonspine_cloak": {
      "asset": "tiles/items/equipment/dragonspine_cloak.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "dragonspine_cloak",
      "className": "DragonspineCloak",
      "conditionalSummary": {
        "count": 12
      },
      "description": "Gain +5% to all resistances for each [Dragon] tag in the components used to craft this item",
      "effectHooks": [
        "on_applied"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_dragonspine_cloak.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/dragonspine_cloak.png",
      "id": "equipment_dragonspine_cloak",
      "kind": "equipment",
      "level": 0,
      "name": "Dragonspine Cloak",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Dragon"
        },
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 6,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "armor",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Dragon"
      ]
    },
    "equipment_drain_boots": {
      "asset": "tiles/items/equipment/drain_boots.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "drain_boots",
      "className": "SpellBoots",
      "conditionalSummary": {
        "count": 11
      },
      "description": "Every 6 steps, cast Drain Pulse\n6 steps until cast",
      "effectHooks": [
        "on_applied"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnLevelComplete'>"
      ],
      "icon": "icons/runtime/equipment_drain_boots.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/drain_boots.png",
      "id": "equipment_drain_boots",
      "kind": "equipment",
      "level": 0,
      "name": "Drain Boots",
      "ownerTriggers": [
        "<class 'Level.EventOnMoved'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Blood"
        },
        {
          "amount": 1,
          "tag": "Sorcery"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "boots",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Dark",
        "Blood",
        "Sorcery",
        "Translocation"
      ]
    },
    "equipment_drakenstaff": {
      "asset": "tiles/items/equipment/drakenstaff.png",
      "augmentSummary": {
        "spellCount": 8
      },
      "baseId": "drakenstaff",
      "className": "Drakenstaff",
      "conditionalSummary": {
        "count": 4
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_drakenstaff.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/drakenstaff.png",
      "id": "equipment_drakenstaff",
      "kind": "equipment",
      "level": 0,
      "name": "Drakenstaff",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Dragon"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Dragon": {
          "minion_damage": 12,
          "minion_range": 1
        }
      },
      "tagBonusesPct": {
        "Dragon": {
          "minion_health": 25
        }
      },
      "tags": [
        "Dragon"
      ]
    },
    "equipment_draupnir": {
      "asset": "tiles/items/equipment/draupnir.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "draupnir",
      "className": "Draupnir",
      "description": "Every 9th turn, gain 8 Gold Rings\nEach ring grants [1 SH:shields] and 1 [damage] to [Holy] spells and equipment",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_draupnir.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/draupnir.png",
      "id": "equipment_draupnir",
      "kind": "equipment",
      "level": 0,
      "name": "Draupnir",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Holy"
        },
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Holy",
        "Metallic"
      ]
    },
    "equipment_dream_thief_diadem": {
      "asset": "tiles/items/equipment/dream_thief_diadem.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "dream_thief_diadem",
      "className": "DreamThiefDiadem",
      "description": "When an enemy awakens from [sleep], your [Arcane] and [Dark] allies adjacent to it take an extra turn",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'CommonContent.EventOnAwakened'>"
      ],
      "icon": "icons/runtime/equipment_dream_thief_diadem.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/dream_thief_diadem.png",
      "id": "equipment_dream_thief_diadem",
      "kind": "equipment",
      "level": 0,
      "name": "Dream Thief Diadem",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "helmet",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane",
        "Dark"
      ]
    },
    "equipment_drill_shoes": {
      "asset": "tiles/items/equipment/drill_shoes.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "drill_shoes",
      "className": "DrillShoes",
      "conditionalSummary": {
        "count": 11
      },
      "description": "Grants Burrowing",
      "effectHooks": [
        "on_applied"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_drill_shoes.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/drill_shoes.png",
      "id": "equipment_drill_shoes",
      "kind": "equipment",
      "level": 0,
      "name": "Drill Shoes",
      "ownerTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 3,
          "tag": "Translocation"
        }
      ],
      "resists": {},
      "slot": "boots",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Metallic",
        "Translocation"
      ]
    },
    "equipment_druid_s_dibble": {
      "asset": "tiles/items/equipment/druid's_dibble.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "druid_s_dibble",
      "className": "DruidsDibble",
      "description": "Every other [Nature] spell you cast summons a Flytrap near the target",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_druid_s_dibble.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/items/equipment/druids_dibble.png",
      "id": "equipment_druid_s_dibble",
      "kind": "equipment",
      "level": 0,
      "name": "Druid's Dibble",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Conjuration",
        "Nature"
      ]
    },
    "equipment_dwarf_hat": {
      "asset": "tiles/items/equipment/dwarf_hat.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "dwarf_hat",
      "className": "DwarfHat",
      "description": "At the beginning of each level, if you know at least seven spells, summon 7 Duergar",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_dwarf_hat.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/Dwarf_Hat.png",
      "id": "equipment_dwarf_hat",
      "kind": "equipment",
      "level": 0,
      "name": "Dwarf Hat",
      "ownerTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 1,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "helmet",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Conjuration",
        "Dark",
        "Metallic"
      ]
    },
    "equipment_earthmeld_boots": {
      "asset": "tiles/items/equipment/earthmeld_boots.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "earthmeld_boots",
      "className": "Earthboots",
      "description": "Gain 2 HP each turn unless you moved",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_earthmeld_boots.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/earthmeld_boots.png",
      "id": "equipment_earthmeld_boots",
      "kind": "equipment",
      "level": 0,
      "name": "Earthmeld Boots",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "boots",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Nature"
      ]
    },
    "equipment_earthquake_boots": {
      "asset": "tiles/items/equipment/earthquake_boots.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "earthquake_boots",
      "className": "SpellBoots",
      "conditionalSummary": {
        "count": 11
      },
      "description": "Every 6 steps, cast Earthquake\n6 steps until cast",
      "effectHooks": [
        "on_applied"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnLevelComplete'>"
      ],
      "icon": "icons/runtime/equipment_earthquake_boots.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/Earthquake_Boots.png",
      "id": "equipment_earthquake_boots",
      "kind": "equipment",
      "level": 0,
      "name": "Earthquake Boots",
      "ownerTriggers": [
        "<class 'Level.EventOnMoved'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Sorcery"
        },
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 5,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "boots",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Sorcery",
        "Nature",
        "Translocation"
      ]
    },
    "equipment_earthtroll_armor": {
      "asset": "tiles/items/equipment/earthtroll_armor.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "earthtroll_armor",
      "className": "EarthtrollArmor",
      "description": "Regenerate 5 HP each turn",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_earthtroll_armor.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/earthtroll_armor.png",
      "id": "equipment_earthtroll_armor",
      "kind": "equipment",
      "level": 0,
      "name": "Earthtroll Armor",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Nature"
        },
        {
          "amount": 2,
          "tag": "Metallic"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {
        "Physical": 50
      },
      "slot": "armor",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Nature"
      ]
    },
    "equipment_earthwrath": {
      "asset": "tiles/items/equipment/earthwrath.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "earthwrath",
      "className": "Earthwrath",
      "description": "When you cast a [Nature] or [Chaos] spell, send out tremors along the ground from the target to nearby enemies\nEach tremor deals [9:damage] [Physical] damage to the target and all units in its path\nThe number of targets is equal to the level of the spell\nThe tremors can target enemies up to [4:radius] tiles away",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_earthwrath.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/earthwrath.png",
      "id": "equipment_earthwrath",
      "kind": "equipment",
      "level": 0,
      "name": "Earthwrath",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Chaos"
        },
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Chaos",
        "Nature"
      ]
    },
    "equipment_echo_staff": {
      "asset": "tiles/items/equipment/echo_staff.png",
      "augmentSummary": {
        "spellCount": 74
      },
      "baseId": "echo_staff",
      "className": "EchoStaff",
      "description": "When you manually cast the same [Sorcery] spell twice in a row, gain a charge of that spell",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 2,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_echo_staff.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/echo_staff.png",
      "id": "equipment_echo_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Echo Staff",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 1,
          "tag": "Sorcery"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Sorcery"
      ]
    },
    "equipment_eldritch_mantle": {
      "asset": "tiles/items/equipment/eldritch_mantle.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "eldritch_mantle",
      "className": "EldritchMantle",
      "description": "Tentacles drag the nearest [3:num_targets] enemies along paths toward the wearer each turn\nTentacles deal [12:damage] [Arcane] damage to their targets",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_eldritch_mantle.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/eldritch_mantle.png",
      "id": "equipment_eldritch_mantle",
      "kind": "equipment",
      "level": 0,
      "name": "Eldritch Mantle",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Arcane"
        },
        {
          "amount": 2,
          "tag": "Translocation"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {
        "Arcane": 25,
        "Physical": 25
      },
      "slot": "armor",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane"
      ]
    },
    "equipment_electroplasm_ampule": {
      "asset": "tiles/items/equipment/electroplasm_ampule.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "electroplasm_ampule",
      "className": "ElectroplasmAmpule",
      "description": "When allies are summoned, they are afflicted with [Electroplasm:lightning]\n[Electroplasm:lightning] deals [1:damage] [Lightning] damage to afflicted units each turn\nIf a unit with [Electroplasm:lightning] dies to [Lightning] damage, an Electric Slime is summoned nearby",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "icon": "icons/runtime/equipment_electroplasm_ampule.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/electroplasm_ampule.png",
      "id": "equipment_electroplasm_ampule",
      "kind": "equipment",
      "level": 0,
      "name": "Electroplasm Ampule",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Lightning"
        },
        {
          "amount": 1,
          "tag": "Slime"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Conjuration",
        "Lightning",
        "Slime"
      ]
    },
    "equipment_enchanters_boon": {
      "asset": "tiles/items/equipment/enchanters_boon.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "enchanters_boon",
      "className": "EnchantersBoon",
      "description": "When you manually cast a self-targeted [Enchantment] spell, one of your allies also casts it",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_enchanters_boon.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/enchanters_boon.png",
      "id": "equipment_enchanters_boon",
      "kind": "equipment",
      "level": 0,
      "name": "Enchanters Boon",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 2,
          "tag": "Enchantment"
        },
        {
          "amount": 7,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Enchantment"
      ]
    },
    "equipment_enchantment_staff": {
      "asset": "tiles/items/equipment/enchantment_staff.png",
      "augmentSummary": {
        "spellCount": 59
      },
      "baseId": "enchantment_staff",
      "className": "EnchantmentStaff",
      "conditionalSummary": {
        "count": 3
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_enchantment_staff.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/enchantment_staff.png",
      "id": "equipment_enchantment_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Enchantment Staff",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Enchantment": {
          "duration": 3,
          "max_charges": 2
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Enchantment"
      ]
    },
    "equipment_entropic_wand": {
      "asset": "tiles/items/equipment/entropic_wand.png",
      "augmentSummary": {
        "spellCount": 10
      },
      "baseId": "entropic_wand",
      "className": "EntropicWand",
      "conditionalSummary": {
        "count": 12
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_entropic_wand.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/entropic_wand.png",
      "id": "equipment_entropic_wand",
      "kind": "equipment",
      "level": 0,
      "name": "Entropic Wand",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Chaos"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {
        "Chaos": {
          "damage": 33,
          "duration": 33,
          "num_targets": 33,
          "range": 33
        }
      },
      "tags": [
        "Chaos"
      ]
    },
    "equipment_erebus_lance": {
      "asset": "tiles/items/equipment/erebus_lance.png",
      "augmentSummary": {
        "spellCount": 26
      },
      "baseId": "erebus_lance",
      "className": "ErebusLance",
      "conditionalSummary": {
        "count": 13
      },
      "description": "When you cast a [Dark] spell targeting an enemy, send out a destructive beam toward the target\nThe beam destroys walls and deals [Dark] damage equal to your [Dark] mastery",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_erebus_lance.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/Erebus_Lance.png",
      "id": "equipment_erebus_lance",
      "kind": "equipment",
      "level": 0,
      "name": "Erebus Lance",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 2,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Dark": {
          "range": 3
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Dark"
      ]
    },
    "equipment_evermelting_cube": {
      "asset": "tiles/items/equipment/evermelting_cube.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "evermelting_cube",
      "className": "EvermeltingCube",
      "description": "When an enemy is unfrozen, it is soaked for [3 turns:duration]",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'CommonContent.EventOnUnfrozen'>"
      ],
      "icon": "icons/runtime/equipment_evermelting_cube.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/evermelting_cube.png",
      "id": "equipment_evermelting_cube",
      "kind": "equipment",
      "level": 0,
      "name": "Evermelting Cube",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Ice"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Ice"
      ]
    },
    "equipment_exploding_boots": {
      "asset": "tiles/items/equipment/exploding_boots.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "exploding_boots",
      "className": "SpellBoots",
      "conditionalSummary": {
        "count": 11
      },
      "description": "Every 8 steps, cast Flame Burst\n8 steps until cast",
      "effectHooks": [
        "on_applied"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnLevelComplete'>"
      ],
      "icon": "icons/runtime/equipment_exploding_boots.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/exploding_boots.png",
      "id": "equipment_exploding_boots",
      "kind": "equipment",
      "level": 0,
      "name": "Exploding Boots",
      "ownerTriggers": [
        "<class 'Level.EventOnMoved'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Fire"
        },
        {
          "amount": 1,
          "tag": "Sorcery"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 5,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "boots",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Fire",
        "Sorcery",
        "Translocation"
      ]
    },
    "equipment_explosive_spore_manual": {
      "asset": "tiles/items/equipment/explosive_spore_manual.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "explosive_spore_manual",
      "className": "ExplosiveSporeManual",
      "description": "While enemies live, cast Combust Poison at the end of each turn",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 2,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnLevelComplete'>"
      ],
      "icon": "icons/runtime/equipment_explosive_spore_manual.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/explosive_spore_manual.png",
      "id": "equipment_explosive_spore_manual",
      "kind": "equipment",
      "level": 0,
      "name": "Explosive Spore Manual",
      "ownerTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "recipe": [
        {
          "amount": 2,
          "tag": "Fire"
        },
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 1,
          "tag": "Word"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Fire",
        "Nature"
      ]
    },
    "equipment_eye_helm": {
      "asset": "tiles/items/equipment/eye_helm.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "eye_helm",
      "className": "EyeHelm",
      "description": "When you cast an [Eye] spell, gain 3 [SH:shields], up to a max of 20",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_eye_helm.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/eye_helm.png",
      "id": "equipment_eye_helm",
      "kind": "equipment",
      "level": 0,
      "name": "Eye Helm",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 1,
          "tag": "Eye"
        },
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 1,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "helmet",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane",
        "Eye"
      ]
    },
    "equipment_eye_of_ammut": {
      "asset": "tiles/items/equipment/eye_of_ammut.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "eye_of_ammut",
      "className": "EyeOfAmmut",
      "description": "When you cast an [Eye] spell, gain [Eye of Judgement:holy] for [3:duration] turns\n[Eye of Judgement:holy] deals [30:damage] [Holy] damage to the lowest HP enemy in your line of sight each turn",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_eye_of_ammut.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/eye_of_ammut.png",
      "id": "equipment_eye_of_ammut",
      "kind": "equipment",
      "level": 0,
      "name": "Eye of Ammut",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Eye"
        },
        {
          "amount": 2,
          "tag": "Holy"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Eye",
        "Holy"
      ]
    },
    "equipment_eye_of_mot": {
      "asset": "tiles/items/equipment/eye_of_mot.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "eye_of_mot",
      "className": "EyeOfMot",
      "description": "Redeal half the damage dealt by [Eye] spells as [Dark] damage",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 40
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_eye_of_mot.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/eye_of_mot.png",
      "id": "equipment_eye_of_mot",
      "kind": "equipment",
      "level": 0,
      "name": "Eye of Mot",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Eye"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Dark",
        "Eye"
      ]
    },
    "equipment_eye_of_tamtu": {
      "asset": "tiles/items/equipment/eye_of_tamtu.png",
      "augmentSummary": {
        "spellCount": 20
      },
      "baseId": "eye_of_tamtu",
      "className": "EyeOfTamtu",
      "conditionalSummary": {
        "count": 11
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_eye_of_tamtu.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/eye_of_tamtu.png",
      "id": "equipment_eye_of_tamtu",
      "kind": "equipment",
      "level": 0,
      "name": "Eye of Tamtu",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Chaos"
        },
        {
          "amount": 1,
          "tag": "Dragon"
        },
        {
          "amount": 1,
          "tag": "Eye"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {
        "Chaos": {
          "damage": 100
        },
        "Dragon": {
          "minion_health": 100
        },
        "Eye": {
          "duration": 100
        }
      },
      "tags": [
        "Chaos",
        "Dragon",
        "Eye"
      ]
    },
    "equipment_eye_rock_pendant": {
      "asset": "tiles/items/equipment/eye_rock_pendant.png",
      "augmentSummary": {
        "spellCount": 5
      },
      "baseId": "eye_rock_pendant",
      "className": "EyeNecklace",
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_eye_rock_pendant.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/eye_rock_pendant.png",
      "id": "equipment_eye_rock_pendant",
      "kind": "equipment",
      "level": 0,
      "name": "Eye Rock Pendant",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Eye"
        },
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Eye": {
          "shot_cooldown": -1
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Eye"
      ]
    },
    "equipment_fae_plate": {
      "asset": "tiles/items/equipment/fae_plate.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "fae_plate",
      "className": "FaeRobe",
      "description": "Gain 1 [SH:shields] each turn, up to a max of 3",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_fae_plate.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/fae_plate.png",
      "id": "equipment_fae_plate",
      "kind": "equipment",
      "level": 0,
      "name": "Fae Plate",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "armor",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane"
      ]
    },
    "equipment_fae_thorn_staff": {
      "asset": "tiles/items/equipment/fae_thorn_staff.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "fae_thorn_staff",
      "className": "FaeThornStaff",
      "description": "When you cast an [Arcane] or [Nature] spell, summon [3:num_summons] temporary Fae Thorns near the target",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_fae_thorn_staff.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/fae_thorn_staff.png",
      "id": "equipment_fae_thorn_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Fae Thorn Staff",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 2,
          "tag": "Nature"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane",
        "Conjuration",
        "Nature"
      ]
    },
    "equipment_fae_toxin_pouch": {
      "asset": "tiles/items/equipment/fae_toxin_pouch.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "fae_toxin_pouch",
      "className": "DebuffDamager",
      "description": "Each turn, deal [10:damage] [Arcane:arcane] damage to [3:num_targets] random enemies currently afflicted with [poison]",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_fae_toxin_pouch.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/fae_toxin_pouch.png",
      "id": "equipment_fae_toxin_pouch",
      "kind": "equipment",
      "level": 0,
      "name": "Fae Toxin Pouch",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane",
        "Nature"
      ]
    },
    "equipment_fanged_amulet": {
      "asset": "tiles/items/equipment/fanged_amulet.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "fanged_amulet",
      "className": "FangedAmulet",
      "description": "Each turn, deal [Physical] damage equal to your [Blood] mastery to an adjacent unit\nHeal for the damage dealt",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_fanged_amulet.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/Fanged_Amulet.png",
      "id": "equipment_fanged_amulet",
      "kind": "equipment",
      "level": 0,
      "name": "Fanged Amulet",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Blood"
        },
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Blood"
      ]
    },
    "equipment_finger_6": {
      "asset": "tiles/items/equipment/finger_6.png",
      "augmentSummary": {
        "spellCount": 25
      },
      "baseId": "finger_6",
      "className": "FingerSix",
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {
        "num_summons": 1,
        "num_targets": 1
      },
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_finger_6.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/finger_6.png",
      "id": "equipment_finger_6",
      "kind": "equipment",
      "level": 0,
      "name": "Finger 6",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 1,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane",
        "Conjuration"
      ]
    },
    "equipment_fire_frenzy_mask": {
      "asset": "tiles/items/equipment/fire_frenzy_mask.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "fire_frenzy_mask",
      "className": "GenericFrenzyMask",
      "description": "When you cast a [Fire:fire] spell, your [Fire:fire] spells and equipment gain [2 damage:damage] for [6:duration] turns",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_fire_frenzy_mask.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/fire_frenzy_mask.png",
      "id": "equipment_fire_frenzy_mask",
      "kind": "equipment",
      "level": 0,
      "name": "Fire Frenzy Mask",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 2,
          "tag": "Fire"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "helmet",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Fire"
      ]
    },
    "equipment_flagellant_s_cup": {
      "asset": "tiles/items/equipment/flagellant's_cup.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "flagellant_s_cup",
      "className": "FlagellantsCup",
      "description": "At the beginning of each turn, [pay 1 HP:blood]\nIf you have any debuffs, remove one",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnLevelComplete'>"
      ],
      "icon": "icons/runtime/equipment_flagellant_s_cup.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/items/equipment/flagellants_cup.png",
      "id": "equipment_flagellant_s_cup",
      "kind": "equipment",
      "level": 0,
      "name": "Flagellant's Cup",
      "ownerTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Blood"
        },
        {
          "amount": 1,
          "tag": "Holy"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Blood",
        "Holy"
      ]
    },
    "equipment_flaming_claw_staff": {
      "asset": "tiles/items/equipment/flaming_claw_staff.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "flaming_claw_staff",
      "className": "FireClawStaff",
      "description": "When your allies damage enemies, redeal half the damage dealt as [Fire] damage",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_flaming_claw_staff.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/flaming_claw_staff.png",
      "id": "equipment_flaming_claw_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Flaming Claw Staff",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 2,
          "tag": "Fire"
        },
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Conjuration",
        "Fire"
      ]
    },
    "equipment_galvanic_armor": {
      "asset": "tiles/items/equipment/galvanic_armor.png",
      "augmentSummary": {
        "spellCount": 12
      },
      "baseId": "galvanic_armor",
      "className": "GalvanicArmor",
      "conditionalSummary": {
        "count": 5
      },
      "description": "When you cast a [Metallic] spell, gain Galvanic Redirection with duration equal to the spell's level\nGalvanic Redirection redirects incoming [Lightning] damage in a beam toward a random enemy in line of sight",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_galvanic_armor.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/galvanic_armor.png",
      "id": "equipment_galvanic_armor",
      "kind": "equipment",
      "level": 0,
      "name": "Galvanic Armor",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Lightning"
        },
        {
          "amount": 2,
          "tag": "Metallic"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {
        "Lightning": 25,
        "Physical": 25
      },
      "slot": "armor",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Lightning": {
          "radius": 1
        },
        "Metallic": {
          "radius": 1
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Lightning",
        "Metallic"
      ]
    },
    "equipment_galvanic_blade": {
      "asset": "tiles/items/equipment/galvanic_blade.png",
      "augmentSummary": {
        "spellCount": 20
      },
      "baseId": "galvanic_blade",
      "className": "GalvanicBlade",
      "conditionalSummary": {
        "count": 6
      },
      "description": "Each turn, deal [Physical] and [Lightning] damage to an adjacent enemy\nThe damage is the product of your [Lightning] and [Metallic] masteries",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_galvanic_blade.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/galvanic_blade.png",
      "id": "equipment_galvanic_blade",
      "kind": "equipment",
      "level": 0,
      "name": "Galvanic Blade",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Lightning"
        },
        {
          "amount": 2,
          "tag": "Metallic"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Lightning": {
          "damage": 6
        },
        "Metallic": {
          "damage": 6
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Lightning",
        "Metallic"
      ]
    },
    "equipment_galvanic_focus": {
      "asset": "tiles/items/equipment/galvanic_focus.png",
      "augmentSummary": {
        "spellCount": 38
      },
      "baseId": "galvanic_focus",
      "className": "GalvanicFocus",
      "conditionalSummary": {
        "count": 22
      },
      "description": "Targeting a [Metallic] or [Construct] enemy with a [Lightning] spell inflicts a debuff which reduces their [Lightning] resistance by 10%",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_galvanic_focus.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/galvanic_focus.png",
      "id": "equipment_galvanic_focus",
      "kind": "equipment",
      "level": 0,
      "name": "Galvanic Focus",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Lightning"
        },
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Lightning": {
          "duration": 3,
          "max_charges": 1
        },
        "Metallic": {
          "duration": 3,
          "max_charges": 1
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Lightning",
        "Metallic"
      ]
    },
    "equipment_geometer_s_staff": {
      "asset": "tiles/items/equipment/geometer's_staff.png",
      "augmentSummary": {
        "spellCount": 128
      },
      "baseId": "geometer_s_staff",
      "className": "GeometerStaff",
      "conditionalSummary": {
        "count": 2
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {
        "radius": 2,
        "range": 1
      },
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_geometer_s_staff.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/items/equipment/geometers_staff.png",
      "id": "equipment_geometer_s_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Geometer's Staff",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 4,
          "tag": "Translocation"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane",
        "Translocation"
      ]
    },
    "equipment_ghost_slippers": {
      "asset": "tiles/items/equipment/ghost_slippers.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "ghost_slippers",
      "className": "SummonShoes",
      "conditionalSummary": {
        "count": 11
      },
      "description": "Every 2 steps, summon a Ghost\n2 steps until summon",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_ghost_slippers.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/ghost_slippers.png",
      "id": "equipment_ghost_slippers",
      "kind": "equipment",
      "level": 0,
      "name": "Ghost Slippers",
      "ownerTriggers": [
        "<class 'Level.EventOnMoved'>",
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "boots",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Conjuration",
        "Translocation",
        "Dark"
      ]
    },
    "equipment_ghostfire_scepter": {
      "asset": "tiles/items/equipment/ghostfire_scepter.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "ghostfire_scepter",
      "className": "GhostfireScepter",
      "description": "When an enemy takes [Dark] and [Fire] damage in the same turn, summon a temporary Burning Ghost near that enemy",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_ghostfire_scepter.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/ghostfire_scepter.png",
      "id": "equipment_ghostfire_scepter",
      "kind": "equipment",
      "level": 0,
      "name": "Ghostfire Scepter",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Fire"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Conjuration",
        "Dark",
        "Fire"
      ]
    },
    "equipment_glasya_s_bite": {
      "asset": "tiles/items/equipment/glasya's_bite.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "glasya_s_bite",
      "className": "GlasyasBite",
      "description": "When you enter a level, inflict [bleed] on random enemies\nThe number of affected enemies is equal to your [Chaos] mastery\nThe duration is equal to your [Blood] mastery",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_glasya_s_bite.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/items/equipment/glasyas_bite.png",
      "id": "equipment_glasya_s_bite",
      "kind": "equipment",
      "level": 0,
      "name": "Glasya's Bite",
      "ownerTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Blood"
        },
        {
          "amount": 1,
          "tag": "Chaos"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Blood",
        "Chaos"
      ]
    },
    "equipment_glittering_dancer_s_robes": {
      "asset": "tiles/items/equipment/glittering_dancer's_robes.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "glittering_dancer_s_robes",
      "className": "GlitteringDancersRobes",
      "conditionalSummary": {
        "count": 11
      },
      "description": "When you cast three [Arcane] spells in a row, regain a charge of a random [Translocation] spell and summon [2:num_summons] temporary Faeries",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_glittering_dancer_s_robes.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/items/equipment/glittering_dancers_robes.png",
      "id": "equipment_glittering_dancer_s_robes",
      "kind": "equipment",
      "level": 0,
      "name": "Glittering Dancer's Robes",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 2,
          "tag": "Translocation"
        }
      ],
      "resists": {},
      "slot": "armor",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane",
        "Conjuration",
        "Translocation"
      ]
    },
    "equipment_gnome_shoes": {
      "asset": "tiles/items/equipment/gnome_shoes.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "gnome_shoes",
      "className": "SummonShoes",
      "conditionalSummary": {
        "count": 11
      },
      "description": "Every 4 steps, summon a Gnome\n4 steps until summon",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_gnome_shoes.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/gnome_shoes.png",
      "id": "equipment_gnome_shoes",
      "kind": "equipment",
      "level": 0,
      "name": "Gnome Shoes",
      "ownerTriggers": [
        "<class 'Level.EventOnMoved'>",
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 1,
          "tag": "Arcane"
        }
      ],
      "resists": {},
      "slot": "boots",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Conjuration",
        "Translocation",
        "Nature",
        "Arcane"
      ]
    },
    "equipment_grave_curse_doll": {
      "asset": "tiles/items/equipment/grave_curse_doll.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "grave_curse_doll",
      "className": "CurseDoll",
      "description": "When one of your [Dark:dark] or [Undead:undead] allies dies to an enemy, cast Shadow Hex on the killer",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDeath'>"
      ],
      "icon": "icons/runtime/equipment_grave_curse_doll.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/grave_curse_doll.png",
      "id": "equipment_grave_curse_doll",
      "kind": "equipment",
      "level": 0,
      "name": "Grave Curse Doll",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Dark"
        },
        {
          "amount": 2,
          "tag": "Enchantment"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Dark",
        "Enchantment"
      ]
    },
    "equipment_grave_hunger_amulet": {
      "asset": "tiles/items/equipment/grave_hunger_amulet.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "grave_hunger_amulet",
      "className": "GraveHungerAmulet",
      "description": "[Undead] allies learn Hunger\nHunger deals [7:minion_damage] [Dark] damage to a target and heals the caster for damage dealt\nHunger has [3:range] range and a [3 turn:cooldown] cooldown",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "icon": "icons/runtime/equipment_grave_hunger_amulet.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/grave_hunger_amulet.png",
      "id": "equipment_grave_hunger_amulet",
      "kind": "equipment",
      "level": 0,
      "name": "Grave Hunger Amulet",
      "ownerTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Conjuration",
        "Dark"
      ]
    },
    "equipment_grey_goo": {
      "asset": "tiles/items/equipment/grey_goo.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "grey_goo",
      "className": "GreyGoo",
      "description": "If you would summon a Green Slime, you instead summon Grey Goo\nGrey Goo have the Ecophagy buff which causes its owner to eat any adjacent walls at the end of their turn, gaining 1 max HP for each wall consumed this way",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnUnitPreAdded'>"
      ],
      "icon": "icons/runtime/equipment_grey_goo.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/grey_goo.png",
      "id": "equipment_grey_goo",
      "kind": "equipment",
      "level": 0,
      "name": "Grey Goo",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 1,
          "tag": "Slime"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Metallic",
        "Slime"
      ]
    },
    "equipment_hallucinogenic_spore_staff": {
      "asset": "tiles/items/equipment/hallucinogenic_spore_staff.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "hallucinogenic_spore_staff",
      "className": "HallucinogenicSporeStaff",
      "description": "When [poison] is inflicted on an unpoisoned enemy, they are [berserked] for [3:duration] turns",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnBuffApply'>"
      ],
      "icon": "icons/runtime/equipment_hallucinogenic_spore_staff.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/Hallucinogenic_Spore_Staff.png",
      "id": "equipment_hallucinogenic_spore_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Hallucinogenic Spore Staff",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Chaos"
        },
        {
          "amount": 2,
          "tag": "Nature"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Chaos",
        "Nature"
      ]
    },
    "equipment_halo_hunter_s_sigil": {
      "asset": "tiles/items/equipment/halo_hunter's_sigil.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "halo_hunter_s_sigil",
      "className": "RechargeOnKillEquipment",
      "description": "For every [Holy:holy] unit killed, one of your [Dark] spells regains 1 charge\nAt the end of each level, a Rift containing [Holy:holy] enemies is created",
      "effectHighlights": [
        "can refund spell charges"
      ],
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDeath'>",
        "<class 'Level.EventOnLevelComplete'>"
      ],
      "icon": "icons/runtime/equipment_halo_hunter_s_sigil.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/items/equipment/halo_hunters_sigil.png",
      "id": "equipment_halo_hunter_s_sigil",
      "kind": "equipment",
      "level": 0,
      "name": "Halo Hunter's Sigil",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Dark"
        },
        {
          "amount": 2,
          "tag": "Holy"
        },
        {
          "amount": 6,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Dark",
        "Holy"
      ]
    },
    "equipment_haunted_blood_vial": {
      "asset": "tiles/items/equipment/haunted_blood_vial.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "haunted_blood_vial",
      "className": "BloodReaper",
      "description": "When a [Demon] or [Living] unit dies, heal 2 HP",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDeath'>"
      ],
      "icon": "icons/runtime/equipment_haunted_blood_vial.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/haunted_blood_vial.png",
      "id": "equipment_haunted_blood_vial",
      "kind": "equipment",
      "level": 0,
      "name": "Haunted Blood Vial",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Blood"
        },
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Blood"
      ]
    },
    "equipment_heavenrender": {
      "asset": "tiles/items/equipment/heavenrender.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "heavenrender",
      "className": "Heavenrender",
      "description": "When you cast a [Holy] spell, deal [Fire] and [Lightning] damage to enemies within [2:radius] tiles of the target\nDamage dealt is equal to your mastery in the respective school",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_heavenrender.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/Heavenrender.png",
      "id": "equipment_heavenrender",
      "kind": "equipment",
      "level": 0,
      "name": "Heavenrender",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Fire"
        },
        {
          "amount": 2,
          "tag": "Holy"
        },
        {
          "amount": 1,
          "tag": "Lightning"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Fire",
        "Holy",
        "Lightning"
      ]
    },
    "equipment_hellfire_mantle": {
      "asset": "tiles/items/equipment/hellfire_mantle.png",
      "augmentSummary": {
        "spellCount": 64
      },
      "baseId": "hellfire_mantle",
      "className": "HellfireMantle",
      "conditionalSummary": {
        "count": 41
      },
      "description": "Each turn, deal [3:damage] [Fire] damage to other units within [4:radius] tiles",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_hellfire_mantle.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/hellfire_mantle.png",
      "id": "equipment_hellfire_mantle",
      "kind": "equipment",
      "level": 0,
      "name": "Hellfire Mantle",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Dark"
        },
        {
          "amount": 2,
          "tag": "Fire"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {
        "Dark": 50,
        "Fire": 50
      },
      "slot": "armor",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Dark": {
          "max_charges": 1
        },
        "Fire": {
          "max_charges": 1
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Dark",
        "Fire"
      ]
    },
    "equipment_helm_of_hexes": {
      "asset": "tiles/items/equipment/helm_of_hexes.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "helm_of_hexes",
      "className": "HelmOfHexes",
      "description": "When an enemy gains a debuff, there is a 50% chance to apply another random debuff for the same duration, up to a maximum of [6:duration] turns\nThis item can apply:\n[Blind], [poison], [fear], [silence], [frozen], [sleep], and [petrified]",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnBuffApply'>"
      ],
      "icon": "icons/runtime/equipment_helm_of_hexes.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/helm_of_hexes.png",
      "id": "equipment_helm_of_hexes",
      "kind": "equipment",
      "level": 0,
      "name": "Helm of Hexes",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 2,
          "tag": "Enchantment"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "helmet",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Enchantment"
      ]
    },
    "equipment_helm_of_the_host": {
      "asset": "tiles/items/equipment/helm_of_the_host.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "helm_of_the_host",
      "className": "HelmOfTheHost",
      "description": "Each turn, your allies heal for 1% of the total damage dealt by your allies this level\nDamage Dealt: 0\nHP / turn: 0",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_helm_of_the_host.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/helm_of_the_host.png",
      "id": "equipment_helm_of_the_host",
      "kind": "equipment",
      "level": 0,
      "name": "Helm of the Host",
      "ownerTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "recipe": [
        {
          "amount": 3,
          "tag": "Conjuration"
        },
        {
          "amount": 2,
          "tag": "Holy"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "helmet",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Conjuration"
      ]
    },
    "equipment_hemlock_needle": {
      "asset": "tiles/items/equipment/hemlock_needle.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "hemlock_needle",
      "className": "DebuffDamager",
      "description": "Each turn, deal [6:damage] [Dark:dark] damage to [5:num_targets] random enemies currently afflicted with [bleed]",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_hemlock_needle.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/hemlock_needle.png",
      "id": "equipment_hemlock_needle",
      "kind": "equipment",
      "level": 0,
      "name": "Hemlock Needle",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Blood"
        },
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Blood",
        "Dark"
      ]
    },
    "equipment_hemocorruptor": {
      "asset": "tiles/items/equipment/hemocorruptor.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "hemocorruptor",
      "className": "Hemocorruptor",
      "description": "When your allies heal, up to [2:num_targets] enemies in line of sight within [5:radius] tiles take that much [Poison] damage",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnHealed'>"
      ],
      "icon": "icons/runtime/equipment_hemocorruptor.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/hemocorruptor.png",
      "id": "equipment_hemocorruptor",
      "kind": "equipment",
      "level": 0,
      "name": "Hemocorruptor",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Blood"
        },
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Blood",
        "Nature",
        "Dark"
      ]
    },
    "equipment_hex_specialist_s_ring": {
      "asset": "tiles/items/equipment/hex_specialist's_ring.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "hex_specialist_s_ring",
      "className": "HexSpecialistsRing",
      "description": "Each turn, enemies take [1:damage] [Arcane] damage for each debuff they have",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_hex_specialist_s_ring.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/items/equipment/hex_specialists_ring.png",
      "id": "equipment_hex_specialist_s_ring",
      "kind": "equipment",
      "level": 0,
      "name": "Hex Specialist's Ring",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 2,
          "tag": "Enchantment"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Enchantment"
      ]
    },
    "equipment_holy_staff": {
      "asset": "tiles/items/equipment/holy_staff.png",
      "augmentSummary": {
        "spellCount": 25
      },
      "baseId": "holy_staff",
      "className": "HolyStaff",
      "conditionalSummary": {
        "count": 15
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_holy_staff.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/holy_staff.png",
      "id": "equipment_holy_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Holy Staff",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Holy"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Holy": {
          "max_charges": 1,
          "minion_range": 1,
          "radius": 1
        }
      },
      "tagBonusesPct": {
        "Holy": {
          "minion_duration": 50
        }
      },
      "tags": [
        "Holy"
      ]
    },
    "equipment_horn_of_the_wild_hunt": {
      "asset": "tiles/items/equipment/horn_of_the_wild_hunt.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "horn_of_the_wild_hunt",
      "className": "HornOfTheWildHunt",
      "description": "When you manually cast a [Nature] spell, your [Nature] and [Living] allies take an extra turn",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_horn_of_the_wild_hunt.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/horn_of_the_wild_hunt.png",
      "id": "equipment_horn_of_the_wild_hunt",
      "kind": "equipment",
      "level": 0,
      "name": "Horn of the Wild Hunt",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 2,
          "tag": "Enchantment"
        },
        {
          "amount": 2,
          "tag": "Nature"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Nature"
      ]
    },
    "equipment_horn_of_ur": {
      "asset": "tiles/items/equipment/horn_of_ur.png",
      "augmentSummary": {
        "spellCount": 46
      },
      "baseId": "horn_of_ur",
      "className": "HornofUr",
      "conditionalSummary": {
        "count": 16
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_horn_of_ur.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/horn_of_ur.png",
      "id": "equipment_horn_of_ur",
      "kind": "equipment",
      "level": 0,
      "name": "Horn of Ur",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Dragon"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Dragon": {
          "requires_los": -1
        }
      },
      "tagBonusesPct": {
        "Conjuration": {
          "range": 100
        }
      },
      "tags": [
        "Dragon",
        "Conjuration"
      ]
    },
    "equipment_hypno_bauble": {
      "asset": "tiles/items/equipment/hypno_bauble.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "hypno_bauble",
      "className": "StatusOnDamageEquipment",
      "description": "When an enemy takes [Arcane:arcane] damage, it has a 40% chance to be afflicted with [3:duration] turns of [sleep]",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_hypno_bauble.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/hypno_bauble.png",
      "id": "equipment_hypno_bauble",
      "kind": "equipment",
      "level": 0,
      "name": "Hypno Bauble",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 1,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane"
      ]
    },
    "equipment_ice_caller_staff": {
      "asset": "tiles/items/equipment/ice_caller_staff.png",
      "augmentSummary": {
        "spellCount": 18
      },
      "baseId": "ice_caller_staff",
      "className": "IceCallerStaff",
      "conditionalSummary": {
        "count": 15
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_ice_caller_staff.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/ice_caller_staff.png",
      "id": "equipment_ice_caller_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Ice Caller Staff",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Ice"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Ice": {
          "max_charges": 1,
          "minion_range": 1
        }
      },
      "tagBonusesPct": {
        "Ice": {
          "minion_duration": 50,
          "minion_health": 50
        }
      },
      "tags": [
        "Ice"
      ]
    },
    "equipment_ice_frenzy_mask": {
      "asset": "tiles/items/equipment/ice_frenzy_mask.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "ice_frenzy_mask",
      "className": "GenericFrenzyMask",
      "description": "When you cast an [Ice:ice] spell, your [Ice:ice] spells and equipment gain [2 damage:damage] for [6:duration] turns",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_ice_frenzy_mask.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/ice_frenzy_mask.png",
      "id": "equipment_ice_frenzy_mask",
      "kind": "equipment",
      "level": 0,
      "name": "Ice Frenzy Mask",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 2,
          "tag": "Ice"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "helmet",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Ice"
      ]
    },
    "equipment_ice_sickle": {
      "asset": "tiles/items/equipment/ice_sickle.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "ice_sickle",
      "className": "IceSickle",
      "description": "When you manually cast an [Arcane] spell targeting a [frozen] unit, make a copy of that spell targeting each other frozen enemy in line of sight\nRemove [frozen] from affected units",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_ice_sickle.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/ice_sickle.png",
      "id": "equipment_ice_sickle",
      "kind": "equipment",
      "level": 0,
      "name": "Ice Sickle",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 1,
          "tag": "Ice"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane",
        "Ice"
      ]
    },
    "equipment_icy_chill_mask": {
      "asset": "tiles/items/equipment/icy_chill_mask.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "icy_chill_mask",
      "className": "MaskOfIcyChill",
      "description": "When you cast an [Ice] spell, deal [1:damage] [Ice] damage to enemies in line of sight of the target",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_icy_chill_mask.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/icy_chill_mask.png",
      "id": "equipment_icy_chill_mask",
      "kind": "equipment",
      "level": 0,
      "name": "Icy Chill Mask",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Eye"
        },
        {
          "amount": 2,
          "tag": "Ice"
        },
        {
          "amount": 6,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "helmet",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Eye",
        "Ice"
      ]
    },
    "equipment_icy_claw_staff": {
      "asset": "tiles/items/equipment/icy_claw_staff.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "icy_claw_staff",
      "className": "IceClawStaff",
      "description": "When your allies damage enemies, redeal half the damage dealt as [Ice] damage",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_icy_claw_staff.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/icy_claw_staff.png",
      "id": "equipment_icy_claw_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Icy Claw Staff",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 2,
          "tag": "Ice"
        },
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Conjuration",
        "Ice"
      ]
    },
    "equipment_icy_cruciform": {
      "asset": "tiles/items/equipment/icy_cruciform.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "icy_cruciform",
      "className": "DebuffDamager",
      "description": "Each turn, deal [15:damage] [Holy:holy] damage to [2:num_targets] random enemies currently afflicted with [frozen]",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_icy_cruciform.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/icy_cruciform.png",
      "id": "equipment_icy_cruciform",
      "kind": "equipment",
      "level": 0,
      "name": "Icy Cruciform",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Ice"
        },
        {
          "amount": 1,
          "tag": "Holy"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Ice",
        "Holy"
      ]
    },
    "equipment_icy_vengeance_icon": {
      "asset": "tiles/items/equipment/icy_vengeance_icon.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "icy_vengeance_icon",
      "className": "IcyVengeanceIcon",
      "description": "When your allies die, up to [3:num_targets] random enemies within [5:radius] tiles take [Ice] damage equal to half the dead ally's max HP",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDeath'>"
      ],
      "icon": "icons/runtime/equipment_icy_vengeance_icon.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/icy_vengeance_icon.png",
      "id": "equipment_icy_vengeance_icon",
      "kind": "equipment",
      "level": 0,
      "name": "Icy Vengeance Icon",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 2,
          "tag": "Ice"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Conjuration",
        "Dark",
        "Ice"
      ]
    },
    "equipment_iron_legion_s_banner": {
      "asset": "tiles/items/equipment/iron_legion's_banner.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "iron_legion_s_banner",
      "className": "IronLegionsBanner",
      "conditionalSummary": {
        "count": 3
      },
      "description": "[Metallic] and [Construct] allies gain 2 [SH:shields] and [10:duration] turns of [quickstep:translocation] when summoned",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "icon": "icons/runtime/equipment_iron_legion_s_banner.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/items/equipment/iron_legions_banner.png",
      "id": "equipment_iron_legion_s_banner",
      "kind": "equipment",
      "level": 0,
      "name": "Iron Legion's Banner",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Metallic": {
          "num_summons": 1
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Conjuration",
        "Metallic"
      ]
    },
    "equipment_jaculus_idol": {
      "asset": "tiles/items/equipment/jaculus_idol.png",
      "augmentSummary": {
        "spellCount": 12
      },
      "baseId": "jaculus_idol",
      "className": "JaculusIdol",
      "conditionalSummary": {
        "count": 15
      },
      "description": "[Dragon] allies you summon gain [quickstep:translocation]",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "icon": "icons/runtime/equipment_jaculus_idol.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/jaculus_idol.png",
      "id": "equipment_jaculus_idol",
      "kind": "equipment",
      "level": 0,
      "name": "Jaculus Idol",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Dragon"
        },
        {
          "amount": 2,
          "tag": "Enchantment"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Dragon": {
          "quick_cast": 1
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Dragon",
        "Enchantment",
        "Translocation"
      ]
    },
    "equipment_jade_shard": {
      "asset": "tiles/items/equipment/jade_shard.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "jade_shard",
      "className": "JadeShard",
      "description": "Each turn, enemies adjacent to your [Living] allies are [poisoned] for [12:duration] turns",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_jade_shard.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/jade_shard.png",
      "id": "equipment_jade_shard",
      "kind": "equipment",
      "level": 0,
      "name": "Jade Shard",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Nature"
      ]
    },
    "equipment_keraunos": {
      "asset": "tiles/items/equipment/keraunos.png",
      "augmentSummary": {
        "spellCount": 22
      },
      "baseId": "keraunos",
      "className": "Keraunos",
      "conditionalSummary": {
        "count": 12
      },
      "description": "When you manually cast a [Lightning] spell targeting a unit, cast it again [2:num_targets] more times",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_keraunos.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/keraunos.png",
      "id": "equipment_keraunos",
      "kind": "equipment",
      "level": 0,
      "name": "Keraunos",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 6,
          "tag": "Lightning"
        },
        {
          "amount": 2,
          "tag": "Nature"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {
        "Lightning": {
          "damage": 100,
          "max_charges": 100
        }
      },
      "tags": [
        "Lightning"
      ]
    },
    "equipment_kobold_clogs": {
      "asset": "tiles/items/equipment/kobold_clogs.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "kobold_clogs",
      "className": "SummonShoes",
      "conditionalSummary": {
        "count": 11
      },
      "description": "Every 2 steps, summon a Kobold\n2 steps until summon",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_kobold_clogs.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/kobold_clogs.png",
      "id": "equipment_kobold_clogs",
      "kind": "equipment",
      "level": 0,
      "name": "Kobold Clogs",
      "ownerTriggers": [
        "<class 'Level.EventOnMoved'>",
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "boots",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Conjuration",
        "Translocation"
      ]
    },
    "equipment_lightning_staff": {
      "asset": "tiles/items/equipment/lightning_staff.png",
      "augmentSummary": {
        "spellCount": 22
      },
      "baseId": "lightning_staff",
      "className": "LightningStaff",
      "conditionalSummary": {
        "count": 12
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_lightning_staff.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/lightning_staff.png",
      "id": "equipment_lightning_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Lightning Staff",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Lightning"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Lightning": {
          "damage": 7,
          "max_charges": 1,
          "minion_damage": 4
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Lightning"
      ]
    },
    "equipment_lightning_tether": {
      "asset": "tiles/items/equipment/lightning_tether.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "lightning_tether",
      "className": "LightningTether",
      "description": "[Construct] and [Metallic] allies learn Lightning Tether\nLightning Tether deals [8:minion_damage] [Lightning] damage, pulls the target 1 tile closer, and stuns for [1:duration] turns\nLightning Tether has [3:range] range and a [6 turn:cooldown] cooldown",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "icon": "icons/runtime/equipment_lightning_tether.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/lightning_tether.png",
      "id": "equipment_lightning_tether",
      "kind": "equipment",
      "level": 0,
      "name": "Lightning Tether",
      "ownerTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Lightning"
        },
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Lightning",
        "Metallic"
      ]
    },
    "equipment_macrophagic_mask": {
      "asset": "tiles/items/equipment/macrophagic_mask.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "macrophagic_mask",
      "className": "MacrophagicMask",
      "description": "When [Living] or [Slime] allies damage an enemy, they gain 2 max HP",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_macrophagic_mask.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/macrophagic_mask.png",
      "id": "equipment_macrophagic_mask",
      "kind": "equipment",
      "level": 0,
      "name": "Macrophagic Mask",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Blood"
        },
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 1,
          "tag": "Slime"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "helmet",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Blood",
        "Nature",
        "Slime"
      ]
    },
    "equipment_magic_minion_shield": {
      "asset": "tiles/items/equipment/magic_minion_shield.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "magic_minion_shield",
      "className": "MagicMinionShield",
      "description": "[Arcane] allies gain [3 SH:shields] when summoned\nOther allies gain [1 SH:shields] instead",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "icon": "icons/runtime/equipment_magic_minion_shield.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/magic_minion_shield.png",
      "id": "equipment_magic_minion_shield",
      "kind": "equipment",
      "level": 0,
      "name": "Magic Minion Shield",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane",
        "Conjuration"
      ]
    },
    "equipment_magic_wand": {
      "asset": "tiles/items/equipment/magic_wand.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "magic_wand",
      "className": "MagicWand",
      "description": "This item gains the tags of the components used to craft it\nWhen you cast a spell, for each tag it shares with this item, shoot a [3:damage] damage bolt at a random enemy in your line of sight\nIf the shared tag is also a damage type, the bolt deals that type of damage, otherwise a random damage type is chosen",
      "effectHooks": [
        "on_pre_craft"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 2,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_magic_wand.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/magic_wand.png",
      "id": "equipment_magic_wand",
      "kind": "equipment",
      "level": 0,
      "name": "Magic Wand",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 5,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Sorcery"
      ],
      "virtualVariants": [
        {
          "action": {
            "from": "components used to craft item",
            "to": "item.tags",
            "type": "copies_tags"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Equipment.py",
              "line": 6682,
              "snippet": "def on_pre_craft(self, player):",
              "symbol": "MagicWand.on_pre_craft"
            },
            {
              "file": "Equipment.py",
              "line": 6683,
              "snippet": "for component, val in self.crafting_input_fns.items():",
              "symbol": "MagicWand.on_pre_craft"
            }
          ],
          "id": "effect_magic_wand_component_tag_copy",
          "kind": "copies_tags",
          "state": [
            {
              "name": "component tags copied before craft",
              "type": "virtual_variant"
            }
          ],
          "title": "Copies component tags into a crafted variant"
        }
      ]
    },
    "equipment_mandala_mukluks": {
      "asset": "tiles/items/equipment/mandala_mukluks.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "mandala_mukluks",
      "className": "MandalaMukluks",
      "conditionalSummary": {
        "count": 11
      },
      "description": "Picking up a Memory Orb grants the [Ritual Preparedness:ritual] buff\n[Ritual Preparedness:ritual] causes your next channeled [Ritual] spell to be activated repeatedly until it is completed",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_mandala_mukluks.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/mandala_mukluks.png",
      "id": "equipment_mandala_mukluks",
      "kind": "equipment",
      "level": 0,
      "name": "Mandala Mukluks",
      "ownerTriggers": [
        "<class 'Level.EventOnItemPickup'>"
      ],
      "recipe": [
        {
          "amount": 4,
          "tag": "Ritual"
        },
        {
          "amount": 2,
          "tag": "Translocation"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "boots",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Ritual",
        "Translocation"
      ]
    },
    "equipment_marksman_cap": {
      "asset": "tiles/items/equipment/marksman_cap.png",
      "augmentSummary": {
        "spellCount": 124
      },
      "baseId": "marksman_cap",
      "className": "MarksmanCap",
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {
        "minion_range": 1,
        "range": 2
      },
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_marksman_cap.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/marksman_cap.png",
      "id": "equipment_marksman_cap",
      "kind": "equipment",
      "level": 0,
      "name": "Marksman Cap",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "helmet",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Conjuration"
      ]
    },
    "equipment_mask_of_nihilo": {
      "asset": "tiles/items/equipment/mask_of_nihilo.png",
      "augmentSummary": {
        "spellCount": 23
      },
      "baseId": "mask_of_nihilo",
      "className": "MaskOfNihilo",
      "conditionalSummary": {
        "count": 11
      },
      "description": "Damage you take reduces this item's [Dark] resistance by the same amount",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_mask_of_nihilo.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/mask_of_nihilo.png",
      "id": "equipment_mask_of_nihilo",
      "kind": "equipment",
      "level": 0,
      "name": "Mask of Nihilo",
      "ownerTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "recipe": [
        {
          "amount": 3,
          "tag": "Chaos"
        },
        {
          "amount": 3,
          "tag": "Dark"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {
        "Dark": 1000
      },
      "slot": "helmet",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {
        "Chaos": {
          "damage": 300
        },
        "Dark": {
          "damage": 300
        }
      },
      "tags": [
        "Chaos",
        "Dark"
      ]
    },
    "equipment_mask_of_woe": {
      "asset": "tiles/items/equipment/mask_of_woe.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "mask_of_woe",
      "className": "MaskOfWoe",
      "description": "At the end of your turn, increase the duration of debuffs on enemies within [2:radius] tiles by [1:duration]",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_mask_of_woe.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/mask_of_woe.png",
      "id": "equipment_mask_of_woe",
      "kind": "equipment",
      "level": 0,
      "name": "Mask of Woe",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "helmet",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Enchantment"
      ]
    },
    "equipment_memory_staff": {
      "asset": "tiles/items/equipment/memory_staff.png",
      "augmentSummary": {
        "spellCount": 186
      },
      "baseId": "memory_staff",
      "className": "StaffOfMemory",
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {
        "max_charges": 100
      },
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_memory_staff.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/memory_staff.png",
      "id": "equipment_memory_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Memory Staff",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 3,
          "tag": "Arcane"
        },
        {
          "amount": 5,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane"
      ]
    },
    "equipment_menacing_eye_mask": {
      "asset": "tiles/items/equipment/menacing_eye_mask.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "menacing_eye_mask",
      "className": "MenacingEyeMask",
      "description": "When one of your [Eye] spells damages an enemy, inflict [2:duration] turns of [fear] on them",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_menacing_eye_mask.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/menacing_eye_mask.png",
      "id": "equipment_menacing_eye_mask",
      "kind": "equipment",
      "level": 0,
      "name": "Menacing Eye Mask",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 2,
          "tag": "Eye"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "helmet",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Dark",
        "Eye"
      ]
    },
    "equipment_metallurgy_mitts": {
      "asset": "tiles/items/equipment/metallurgy_mitts.png",
      "augmentSummary": {
        "spellCount": 37
      },
      "baseId": "metallurgy_mitts",
      "className": "MetallurgyMitts",
      "conditionalSummary": {
        "count": 28
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_metallurgy_mitts.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/metallurgy_mitts.png",
      "id": "equipment_metallurgy_mitts",
      "kind": "equipment",
      "level": 0,
      "name": "Metallurgy Mitts",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Fire"
        },
        {
          "amount": 2,
          "tag": "Metallic"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {
        "Fire": 25,
        "Physical": 25
      },
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Fire": {
          "radius": 1,
          "range": 2
        },
        "Metallic": {
          "max_charges": 3
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Fire",
        "Metallic"
      ]
    },
    "equipment_minion_regeneration_amulet": {
      "asset": "tiles/items/equipment/minion_regeneration_amulet.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "minion_regeneration_amulet",
      "className": "MinionRegenerationAmulet",
      "description": "Each turn, heal each of your allies for [2 HP:heal]",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_minion_regeneration_amulet.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/minion_regeneration_amulet.png",
      "id": "equipment_minion_regeneration_amulet",
      "kind": "equipment",
      "level": 0,
      "name": "Minion Regeneration Amulet",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 1,
          "tag": "Holy"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Nature",
        "Holy"
      ]
    },
    "equipment_molten_carapace": {
      "asset": "tiles/items/equipment/molten_carapace.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "molten_carapace",
      "className": "MoltenCarapace",
      "description": "You are immune to [freeze]",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_molten_carapace.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/molten_carapace.png",
      "id": "equipment_molten_carapace",
      "kind": "equipment",
      "level": 0,
      "name": "Molten Carapace",
      "ownerTriggers": [
        "<class 'Level.EventOnBuffApply'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Blood"
        },
        {
          "amount": 1,
          "tag": "Fire"
        },
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 1,
          "tag": "Any"
        }
      ],
      "resists": {
        "Fire": 25,
        "Ice": 25
      },
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Blood",
        "Fire",
        "Metallic"
      ]
    },
    "equipment_monkey_skull_amulet": {
      "asset": "tiles/items/equipment/monkey_skull_amulet.png",
      "augmentSummary": {
        "spellCount": 38
      },
      "baseId": "monkey_skull_amulet",
      "className": "MonkeySkull",
      "conditionalSummary": {
        "count": 7
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_monkey_skull_amulet.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/monkey_skull_amulet.png",
      "id": "equipment_monkey_skull_amulet",
      "kind": "equipment",
      "level": 0,
      "name": "Monkey Skull Amulet",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 1,
          "tag": "Sorcery"
        },
        {
          "amount": 1,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Conjuration": {
          "radius": 1
        },
        "Enchantment": {
          "minion_damage": 6
        },
        "Sorcery": {
          "duration": 3
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Conjuration",
        "Enchantment",
        "Sorcery"
      ]
    },
    "equipment_moon_crown": {
      "asset": "tiles/items/equipment/moon_crown.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "moon_crown",
      "className": "MinionCastHat",
      "description": "Each turn, one of your [Holy:holy] allies casts your Void Beam spell on a random enemy",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_moon_crown.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/moon_crown.png",
      "id": "equipment_moon_crown",
      "kind": "equipment",
      "level": 0,
      "name": "Moon Crown",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 1,
          "tag": "Sorcery"
        },
        {
          "amount": 1,
          "tag": "Holy"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "helmet",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane",
        "Sorcery",
        "Holy"
      ]
    },
    "equipment_mortal_hunter_s_sigil": {
      "asset": "tiles/items/equipment/mortal_hunter's_sigil.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "mortal_hunter_s_sigil",
      "className": "RechargeOnKillEquipment",
      "description": "For every [Living:living] unit killed, one of your [Blood] spells regains 1 charge\nAt the end of each level, a Rift containing [Living:living] enemies is created",
      "effectHighlights": [
        "can refund spell charges"
      ],
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDeath'>",
        "<class 'Level.EventOnLevelComplete'>"
      ],
      "icon": "icons/runtime/equipment_mortal_hunter_s_sigil.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/items/equipment/mortal_hunters_sigil.png",
      "id": "equipment_mortal_hunter_s_sigil",
      "kind": "equipment",
      "level": 0,
      "name": "Mortal Hunter's Sigil",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Blood"
        },
        {
          "amount": 2,
          "tag": "Nature"
        },
        {
          "amount": 6,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Blood",
        "Nature"
      ]
    },
    "equipment_mourning_bell": {
      "asset": "tiles/items/equipment/mourning_bell.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "mourning_bell",
      "className": "MourningBell",
      "description": "At the end of your turn, if at least 10 creatures have died since the last toll, the bell tolls, dealing [10:damage] [Dark] and [Holy] damage to enemies within [4:radius] tiles\nDeath Toll : 0 / 10",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDeath'>"
      ],
      "icon": "icons/runtime/equipment_mourning_bell.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/mourning_bell.png",
      "id": "equipment_mourning_bell",
      "kind": "equipment",
      "level": 0,
      "name": "Mourning Bell",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Holy"
        },
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Dark",
        "Holy"
      ]
    },
    "equipment_multicolored_rage_rod": {
      "asset": "tiles/items/equipment/multicolored_rage_rod.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "multicolored_rage_rod",
      "className": "MulticoloredRageRod",
      "description": "All spells and equipment gain +1 damage for each unique tag amongst all the spells you have cast this level",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_multicolored_rage_rod.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/multicolored_rage_rod.png",
      "id": "equipment_multicolored_rage_rod",
      "kind": "equipment",
      "level": 0,
      "name": "Multicolored Rage Rod",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>",
        "<class 'Level.EventOnUnitAdded'>",
        "<class 'Level.EventOnBuffRemove'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 1,
          "tag": "Sorcery"
        },
        {
          "amount": 7,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Enchantment",
        "Sorcery"
      ]
    },
    "equipment_multimancer_s_staff": {
      "asset": "tiles/items/equipment/multimancer's_staff.png",
      "augmentSummary": {
        "spellCount": 17
      },
      "baseId": "multimancer_s_staff",
      "className": "MultimancerStaff",
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {
        "num_targets": 50
      },
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_multimancer_s_staff.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/items/equipment/multimancers_staff.png",
      "id": "equipment_multimancer_s_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Multimancer's Staff",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 6,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane"
      ]
    },
    "equipment_nature_staff": {
      "asset": "tiles/items/equipment/nature_staff.png",
      "augmentSummary": {
        "spellCount": 33
      },
      "baseId": "nature_staff",
      "className": "NatureStaff",
      "conditionalSummary": {
        "count": 21
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_nature_staff.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/nature_staff.png",
      "id": "equipment_nature_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Nature Staff",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Nature"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {
        "Nature": {
          "max_charges": 50,
          "minion_damage": 50,
          "minion_health": 50
        }
      },
      "tags": [
        "Nature"
      ]
    },
    "equipment_neanderthal_s_tooth": {
      "asset": "tiles/items/equipment/neanderthals_tooth.png",
      "augmentSummary": {
        "spellCount": 10
      },
      "baseId": "neanderthal_s_tooth",
      "className": "NeanderthalsTooth",
      "conditionalSummary": {
        "count": 8
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_neanderthal_s_tooth.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/neanderthals_tooth.png",
      "id": "equipment_neanderthal_s_tooth",
      "kind": "equipment",
      "level": 0,
      "name": "Neanderthal's Tooth",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Blood"
        },
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 1,
          "tag": "Slime"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Blood": {
          "radius": 1
        },
        "Metallic": {
          "requires_los": -1
        },
        "Slime": {
          "quick_cast": 1
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Blood",
        "Metallic",
        "Slime"
      ]
    },
    "equipment_necromancer_s_staff": {
      "asset": "tiles/items/equipment/necromancer's_staff.png",
      "augmentSummary": {
        "spellCount": 40
      },
      "baseId": "necromancer_s_staff",
      "className": "NecromancersStaff",
      "conditionalSummary": {
        "count": 24
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_necromancer_s_staff.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/items/equipment/necromancers_staff.png",
      "id": "equipment_necromancer_s_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Necromancer's Staff",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Conjuration"
        },
        {
          "amount": 2,
          "tag": "Dark"
        },
        {
          "amount": 6,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {
        "Dark": {
          "max_charges": 100,
          "minion_damage": 100,
          "minion_health": 100
        }
      },
      "tags": [
        "Dark"
      ]
    },
    "equipment_necrosis_blade": {
      "asset": "tiles/items/equipment/necrosis_blade.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "necrosis_blade",
      "className": "StatusOnDamageEquipment",
      "description": "When an enemy takes [Dark:dark] damage, it has a 60% chance to be afflicted with [3:duration] turns of [necrosis]",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_necrosis_blade.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/necrosis_blade.png",
      "id": "equipment_necrosis_blade",
      "kind": "equipment",
      "level": 0,
      "name": "Necrosis Blade",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Dark"
      ]
    },
    "equipment_necrostatic_staff": {
      "asset": "tiles/items/equipment/necrostatic_staff.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "necrostatic_staff",
      "className": "NecrostaticStaff",
      "description": "Each of your [Undead] allies grants you a +1 [damage] bonus to [Lightning] spells and equipment until they die",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_necrostatic_staff.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/necrostatic_staff.png",
      "id": "equipment_necrostatic_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Necrostatic Staff",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Lightning"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Dark",
        "Lightning"
      ]
    },
    "equipment_nightmare_hexbag": {
      "asset": "tiles/items/equipment/nightmare_hexbag.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "nightmare_hexbag",
      "className": "DebuffDamager",
      "description": "Each turn, deal [2:damage] [Dark:dark] damage to [15:num_targets] random enemies currently afflicted with [sleep]",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_nightmare_hexbag.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/nightmare_hexbag.png",
      "id": "equipment_nightmare_hexbag",
      "kind": "equipment",
      "level": 0,
      "name": "Nightmare Hexbag",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane",
        "Dark"
      ]
    },
    "equipment_numen_censer": {
      "asset": "tiles/items/equipment/numen_censer.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "numen_censer",
      "className": "NumenCenser",
      "description": "When allies are summoned, a burst of energy is released at their location\nAdjacent allies are healed for 7 HP and adjacent enemies take [2:damage] [Holy] and [Arcane] damage",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 3,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "icon": "icons/runtime/equipment_numen_censer.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/numen_censer.png",
      "id": "equipment_numen_censer",
      "kind": "equipment",
      "level": 0,
      "name": "Numen Censer",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 2,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Holy"
        },
        {
          "amount": 5,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane",
        "Conjuration",
        "Holy"
      ]
    },
    "equipment_ogre_boots": {
      "asset": "tiles/items/equipment/ogre_boots.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "ogre_boots",
      "className": "SummonShoes",
      "conditionalSummary": {
        "count": 11
      },
      "description": "Every 4 steps, summon a Ogre\n4 steps until summon",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_ogre_boots.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/ogre_boots.png",
      "id": "equipment_ogre_boots",
      "kind": "equipment",
      "level": 0,
      "name": "Ogre Boots",
      "ownerTriggers": [
        "<class 'Level.EventOnMoved'>",
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "boots",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Conjuration",
        "Translocation"
      ]
    },
    "equipment_ooze_wand": {
      "asset": "tiles/items/equipment/ooze_wand.png",
      "augmentSummary": {
        "spellCount": 4
      },
      "baseId": "ooze_wand",
      "className": "OozeWand",
      "conditionalSummary": {
        "count": 1
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_ooze_wand.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/ooze_wand.png",
      "id": "equipment_ooze_wand",
      "kind": "equipment",
      "level": 0,
      "name": "Ooze Wand",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Slime"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {
        "Slime": {
          "minion_health": 100,
          "minion_range": 100
        }
      },
      "tags": [
        "Slime"
      ]
    },
    "equipment_oozing_scale_armor": {
      "asset": "tiles/items/equipment/oozing_scale_armor.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "oozing_scale_armor",
      "className": "OozingScaleArmor",
      "description": "Spawn a slime of a matching type when you take damage from an enemy\nIf there is no slime which matches the damage type, spawns a random slime",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_oozing_scale_armor.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/oozing_scale_armor.png",
      "id": "equipment_oozing_scale_armor",
      "kind": "equipment",
      "level": 0,
      "name": "Oozing Scale Armor",
      "ownerTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Dragon"
        },
        {
          "amount": 2,
          "tag": "Slime"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {
        "Physical": 50,
        "Poison": 100
      },
      "slot": "armor",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Conjuration",
        "Slime"
      ]
    },
    "equipment_orb_controller_s_mitts": {
      "asset": "tiles/items/equipment/orb_controller's_mitts.png",
      "augmentSummary": {
        "spellCount": 4
      },
      "baseId": "orb_controller_s_mitts",
      "className": "OrbControllersMitts",
      "conditionalSummary": {
        "count": 11
      },
      "description": "Casting an [Orb] spell to relocate it refunds the spell's charge",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_orb_controller_s_mitts.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/items/equipment/orb_controllers_mitts.png",
      "id": "equipment_orb_controller_s_mitts",
      "kind": "equipment",
      "level": 0,
      "name": "Orb Controller's Mitts",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Orb"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Orb",
        "Translocation"
      ]
    },
    "equipment_orb_of_infinite_slaughter": {
      "asset": "tiles/items/equipment/orb_of_infinite_slaughter.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "orb_of_infinite_slaughter",
      "className": "OrbOfInfiniteSlaughter",
      "description": "Units explode on death, dealing [Dark] damage to adjacent units\nThe damage dealt is equal to your [Blood] mastery\nYou are healed for any damage dealt by this item",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDeath'>"
      ],
      "icon": "icons/runtime/equipment_orb_of_infinite_slaughter.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/orb_of_infinite_slaughter.png",
      "id": "equipment_orb_of_infinite_slaughter",
      "kind": "equipment",
      "level": 0,
      "name": "Orb of Infinite Slaughter",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Chaos"
        },
        {
          "amount": 1,
          "tag": "Dragon"
        },
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 1,
          "tag": "Holy"
        },
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 1,
          "tag": "Orb"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Blood",
        "Dark"
      ]
    },
    "equipment_orrery_of_the_unnamed_one": {
      "asset": "tiles/items/equipment/orrery_of_the_unnamed_one.png",
      "augmentSummary": {
        "spellCount": 4
      },
      "baseId": "orrery_of_the_unnamed_one",
      "className": "OrreryOfTheUnnamedOne",
      "conditionalSummary": {
        "count": 1
      },
      "description": "Summoning an [Orb] ally grants them a spell you know on a 3 turn cooldown\nSpells are chosen from: Darkness, Drain Pulse, Earthquake, Flame Burst, and Storm Burst",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "icon": "icons/runtime/equipment_orrery_of_the_unnamed_one.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/orrery_of_the_unnamed_one.png",
      "id": "equipment_orrery_of_the_unnamed_one",
      "kind": "equipment",
      "level": 0,
      "name": "Orrery of the Unnamed One",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Blood"
        },
        {
          "amount": 1,
          "tag": "Holy"
        },
        {
          "amount": 1,
          "tag": "Ice"
        },
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 1,
          "tag": "Orb"
        },
        {
          "amount": 1,
          "tag": "Dragon"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 1,
          "tag": "Eye"
        },
        {
          "amount": 1,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {
        "Orb": {
          "minion_health": 100
        }
      },
      "tags": [
        "Dark",
        "Orb"
      ]
    },
    "equipment_paralyzing_venom": {
      "asset": "tiles/items/equipment/paralyzing_venom.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "paralyzing_venom",
      "className": "StatusOnDamageEquipment",
      "description": "When an enemy takes [Poison:poison] damage, it has a 30% chance to be afflicted with [2:duration] turns of [stun]",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_paralyzing_venom.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/paralyzing_venom.png",
      "id": "equipment_paralyzing_venom",
      "kind": "equipment",
      "level": 0,
      "name": "Paralyzing Venom",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Nature"
      ]
    },
    "equipment_pedantic_pendant": {
      "asset": "tiles/items/equipment/pedantic_pendant.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "pedantic_pendant",
      "className": "PedanticPendant",
      "conditionalSummary": {
        "count": 2
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_pedantic_pendant.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/pedantic_pendant.png",
      "id": "equipment_pedantic_pendant",
      "kind": "equipment",
      "level": 0,
      "name": "Pedantic Pendant",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Word"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Word": {
          "duration": 3,
          "max_charges": 1
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Word"
      ]
    },
    "equipment_philosopher_s_stone": {
      "asset": "tiles/items/equipment/philosopher's_stone.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "philosopher_s_stone",
      "className": "PhilosophersStone",
      "description": "This item gains the tags of the components used to craft it\nWhen you cast a spell that shares a tag with this item, there is a 10% chance for all of your spells to regain a charge",
      "effectHighlights": [
        "chance to refund charges"
      ],
      "effectHooks": [
        "on_pre_craft"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 2,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_philosopher_s_stone.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/items/equipment/philosophers_stone.png",
      "id": "equipment_philosopher_s_stone",
      "kind": "equipment",
      "level": 0,
      "name": "Philosopher's Stone",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 10,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Sorcery"
      ],
      "virtualVariants": [
        {
          "action": {
            "from": "components used to craft item",
            "to": "item.tags",
            "type": "copies_tags"
          },
          "conditions": [],
          "evidence": [
            {
              "file": "Equipment.py",
              "line": 6653,
              "snippet": "def on_pre_craft(self, player):",
              "symbol": "PhilosophersStone.on_pre_craft"
            },
            {
              "file": "Equipment.py",
              "line": 6654,
              "snippet": "for component, val in self.crafting_input_fns.items():",
              "symbol": "PhilosophersStone.on_pre_craft"
            }
          ],
          "id": "effect_philosophers_stone_component_tag_copy",
          "kind": "copies_tags",
          "state": [
            {
              "name": "component tags copied before craft",
              "type": "virtual_variant"
            }
          ],
          "title": "Copies component tags into a crafted variant"
        },
        {
          "action": {
            "amount": 1,
            "targets": "all owner spells",
            "type": "refund_charges"
          },
          "conditions": [
            "spell shares a tag with this crafted item variant",
            "random 10% chance succeeds"
          ],
          "evidence": [
            {
              "file": "Equipment.py",
              "line": 6664,
              "snippet": "for s in self.owner.spells: s.refund_charges(1); s.do_ui_flash(random.choice(shared))",
              "symbol": "PhilosophersStone.on_cast"
            }
          ],
          "id": "effect_philosophers_stone_charge_restore",
          "kind": "adds_bonus",
          "state": [
            {
              "name": "depends on copied component tags",
              "type": "loadout"
            }
          ],
          "title": "Restores spell charges conditionally"
        }
      ]
    },
    "equipment_plague_doctor_s_cane": {
      "asset": "tiles/items/equipment/plague_doctor's_cane.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "plague_doctor_s_cane",
      "className": "PlagueDoctorsCane",
      "description": "Each turn, deal [10:damage] [Physical] damage to an adjacent enemy, pushing them up to one tile away and [stunning:stun] them for [2:duration] turns",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_plague_doctor_s_cane.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/items/equipment/plague_doctors_cane.png",
      "id": "equipment_plague_doctor_s_cane",
      "kind": "equipment",
      "level": 0,
      "name": "Plague Doctor's Cane",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Dark",
        "Nature"
      ]
    },
    "equipment_plague_doctor_s_mask": {
      "asset": "tiles/items/equipment/plague_doctor's_mask.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "plague_doctor_s_mask",
      "className": "PlagueDoctorsmask",
      "description": "You are immune to [necrosis]",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_plague_doctor_s_mask.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/items/equipment/plague_doctors_mask.png",
      "id": "equipment_plague_doctor_s_mask",
      "kind": "equipment",
      "level": 0,
      "name": "Plague Doctor's Mask",
      "ownerTriggers": [
        "<class 'Level.EventOnBuffApply'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {
        "Dark": 25,
        "Poison": 25
      },
      "slot": "helmet",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Dark",
        "Nature"
      ]
    },
    "equipment_plague_doctor_s_robe": {
      "asset": "tiles/items/equipment/plague_doctor's_robe.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "plague_doctor_s_robe",
      "className": "PlagueDoctorsRobes",
      "description": "Each turn, inflict a stack of permanent [necrosis] on other units within [5:radius] tiles",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_plague_doctor_s_robe.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/items/equipment/plague_doctors_robe.png",
      "id": "equipment_plague_doctor_s_robe",
      "kind": "equipment",
      "level": 0,
      "name": "Plague Doctor's Robe",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Dark"
        },
        {
          "amount": 2,
          "tag": "Nature"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {
        "Dark": 50,
        "Poison": 50
      },
      "slot": "armor",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Dark",
        "Nature"
      ]
    },
    "equipment_plaguebringer": {
      "asset": "tiles/items/equipment/plaguebringer.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "plaguebringer",
      "className": "Plaguebringer",
      "description": "Redeal damage dealt to enemies by [Demon] allies as [Poison] damage",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 42
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_plaguebringer.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/plaguebringer.png",
      "id": "equipment_plaguebringer",
      "kind": "equipment",
      "level": 0,
      "name": "Plaguebringer",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Chaos"
        },
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Dark",
        "Chaos"
      ]
    },
    "equipment_plasmic_distributor": {
      "asset": "tiles/items/equipment/plasmic_distributor.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "plasmic_distributor",
      "className": "PlasmicDistributor",
      "description": "When allies are summoned adjacent to you, cast Vampiricism on them\nThis item can activate up to [3:num_targets] times each level\nVampiricism Bestowed: [0:blood] / [3:num_targets]",
      "effectHooks": [
        "on_applied"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 1
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "icon": "icons/runtime/equipment_plasmic_distributor.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/plasmic_distributor.png",
      "id": "equipment_plasmic_distributor",
      "kind": "equipment",
      "level": 0,
      "name": "Plasmic Distributor",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Blood"
        },
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Blood"
      ]
    },
    "equipment_prism_of_shattered_sensations": {
      "asset": "tiles/items/equipment/prism_of_shattered_sensations.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "prism_of_shattered_sensations",
      "className": "PrismOfShatteredSensations",
      "description": "Enemies are [stunned] for [1:duration] turns when they are healed or take damage",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 2,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnHealed'>",
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_prism_of_shattered_sensations.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/prism_of_shattered_sensations.png",
      "id": "equipment_prism_of_shattered_sensations",
      "kind": "equipment",
      "level": 0,
      "name": "Prism of Shattered Sensations",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Arcane"
        },
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 1,
          "tag": "Holy"
        },
        {
          "amount": 1,
          "tag": "Lightning"
        },
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 2,
          "tag": "Sorcery"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Chaos"
      ]
    },
    "equipment_prismatic_links": {
      "asset": "tiles/items/equipment/prismatic_links.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "prismatic_links",
      "className": "PrinceOfRuinLike",
      "description": "When an enemy dies to [Holy:holy] or [Ice:ice] damage, a random enemy in their line of sight within [3:radius] tiles takes [9:damage] damage of that type",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDeath'>"
      ],
      "icon": "icons/runtime/equipment_prismatic_links.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/prismatic_links.png",
      "id": "equipment_prismatic_links",
      "kind": "equipment",
      "level": 0,
      "name": "Prismatic Links",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Holy"
        },
        {
          "amount": 1,
          "tag": "Ice"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Holy",
        "Ice"
      ]
    },
    "equipment_prismatic_plate": {
      "asset": "tiles/items/equipment/prismatic_plate.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "prismatic_plate",
      "className": "PrismaticPlate",
      "description": "When you cast a [Holy] spell, if you have any [SH:shields], lose [1 SH:shields] and unleash beams of light in all 8 directions\nThe beams deal [25:damage] [Holy] damage to units in their path but stop when they encounter a wall",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_prismatic_plate.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/prismatic_plate.png",
      "id": "equipment_prismatic_plate",
      "kind": "equipment",
      "level": 0,
      "name": "Prismatic Plate",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Ice"
        },
        {
          "amount": 1,
          "tag": "Holy"
        },
        {
          "amount": 2,
          "tag": "Metallic"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {
        "Holy": 25,
        "Physical": 25
      },
      "slot": "armor",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Ice",
        "Holy",
        "Metallic"
      ]
    },
    "equipment_psychopomp_staff": {
      "asset": "tiles/items/equipment/psychopomp_staff.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "psychopomp_staff",
      "className": "PsychopompStaff",
      "description": "Redeals damage dealt by you and your allies to [sleeping] enemies\nIf this item kills a unit, regain a charge of a random [Arcane] spell",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_psychopomp_staff.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/psychopomp_staff.png",
      "id": "equipment_psychopomp_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Psychopomp Staff",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Arcane"
        },
        {
          "amount": 2,
          "tag": "Dark"
        },
        {
          "amount": 6,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane",
        "Dark"
      ]
    },
    "equipment_pulse_accelerator": {
      "asset": "tiles/items/equipment/pulse_accelerator.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "pulse_accelerator",
      "className": "PulseAccelerator",
      "description": "Casting a [Blood] spell grants you [2:duration] turns of [quickstep:translocation] and quickcast on all spells",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 2,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_pulse_accelerator.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/pulse_accelerator.png",
      "id": "equipment_pulse_accelerator",
      "kind": "equipment",
      "level": 0,
      "name": "Pulse Accelerator",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Blood"
        },
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 1,
          "tag": "Lightning"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Blood"
      ]
    },
    "equipment_purity_oculus": {
      "asset": "tiles/items/equipment/purity_oculus.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "purity_oculus",
      "className": "GenericOculusEquip",
      "description": "The first time an enemy takes [Fire:fire] or [Holy:holy] damage, it gets -25 [Fire:fire] and [Holy:holy] resist",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_purity_oculus.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/purity_oculus.png",
      "id": "equipment_purity_oculus",
      "kind": "equipment",
      "level": 0,
      "name": "Purity Oculus",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 1,
          "tag": "Fire"
        },
        {
          "amount": 1,
          "tag": "Holy"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Fire",
        "Holy"
      ]
    },
    "equipment_pyrophilia_locket": {
      "asset": "tiles/items/equipment/pyrophilia_locket.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "pyrophilia_locket",
      "className": "PyrophiliaLocket",
      "description": "When an enemy takes [Fire] damage, your allies in line of sight of them heal for half that damage",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_pyrophilia_locket.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/pyrophilia_locket.png",
      "id": "equipment_pyrophilia_locket",
      "kind": "equipment",
      "level": 0,
      "name": "Pyrophilia Locket",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Fire"
        },
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Fire",
        "Nature"
      ]
    },
    "equipment_pyrostatic_curse_doll": {
      "asset": "tiles/items/equipment/pyrostatic_curse_doll.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "pyrostatic_curse_doll",
      "className": "CurseDoll",
      "description": "When one of your [Fire:fire] or [Lightning:lightning] allies dies to an enemy, cast Pyrostatic Curse on the killer",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDeath'>"
      ],
      "icon": "icons/runtime/equipment_pyrostatic_curse_doll.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/pyrostatic_curse_doll.png",
      "id": "equipment_pyrostatic_curse_doll",
      "kind": "equipment",
      "level": 0,
      "name": "Pyrostatic Curse Doll",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Fire"
        },
        {
          "amount": 2,
          "tag": "Lightning"
        },
        {
          "amount": 2,
          "tag": "Enchantment"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Fire",
        "Lightning",
        "Enchantment"
      ]
    },
    "equipment_pyrostatic_oculus": {
      "asset": "tiles/items/equipment/pyrostatic_oculus.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "pyrostatic_oculus",
      "className": "GenericOculusEquip",
      "description": "The first time an enemy takes [Fire:fire] or [Lightning:lightning] damage, it gets -25 [Fire:fire] and [Lightning:lightning] resist",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_pyrostatic_oculus.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/pyrostatic_oculus.png",
      "id": "equipment_pyrostatic_oculus",
      "kind": "equipment",
      "level": 0,
      "name": "Pyrostatic Oculus",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 1,
          "tag": "Fire"
        },
        {
          "amount": 1,
          "tag": "Lightning"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Fire",
        "Lightning"
      ]
    },
    "equipment_pyrrhic_censer": {
      "asset": "tiles/items/equipment/pyrrhic_censer.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "pyrrhic_censer",
      "className": "PyrrhicCenser",
      "description": "When allies are summoned, a burst of flames is released at their location\nAdjacent enemies take [Fire] damage equal to half the summoned ally's max HP",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "icon": "icons/runtime/equipment_pyrrhic_censer.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/pyrrhic_censer.png",
      "id": "equipment_pyrrhic_censer",
      "kind": "equipment",
      "level": 0,
      "name": "Pyrrhic Censer",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Fire"
        },
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Conjuration",
        "Fire",
        "Nature"
      ]
    },
    "equipment_quicksilver_armor": {
      "asset": "tiles/items/equipment/quicksilver_armor.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "quicksilver_armor",
      "className": "QuicksilverArmor",
      "description": "Cast Mercurize on melee attackers",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 2,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "icon": "icons/runtime/equipment_quicksilver_armor.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/quicksilver_armor.png",
      "id": "equipment_quicksilver_armor",
      "kind": "equipment",
      "level": 0,
      "name": "Quicksilver Armor",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {
        "Physical": 50
      },
      "slot": "armor",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Dark",
        "Enchantment",
        "Metallic"
      ]
    },
    "equipment_quickstep_boots": {
      "asset": "tiles/items/equipment/quickstep_boots.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "quickstep_boots",
      "className": "QuickstepBoots",
      "conditionalSummary": {
        "count": 11
      },
      "description": "Walking only takes half of your turn",
      "effectHooks": [
        "on_applied"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_quickstep_boots.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/quickstep_boots.png",
      "id": "equipment_quickstep_boots",
      "kind": "equipment",
      "level": 0,
      "name": "Quickstep Boots",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 3,
          "tag": "Translocation"
        }
      ],
      "resists": {},
      "slot": "boots",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Translocation"
      ]
    },
    "equipment_quill_staff": {
      "asset": "tiles/items/equipment/quill_staff.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "quill_staff",
      "className": "QuillStaff",
      "description": "When one of your [Living] allies damages an enemy in your line of sight, deal [8:damage] [Physical] damage to that enemy",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_quill_staff.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/quill_staff.png",
      "id": "equipment_quill_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Quill Staff",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Eye"
        },
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 2,
          "tag": "Nature"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Nature"
      ]
    },
    "equipment_raiment_of_eyes": {
      "asset": "tiles/items/equipment/raiment_of_eyes.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "raiment_of_eyes",
      "className": "RaimentOfEyes",
      "description": "When allies are summoned, grant them your [Eye] [Enchantment] spells that they share a tag with\nEach level, you may grant a number of these spells equal to your [Eye] mastery",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "icon": "icons/runtime/equipment_raiment_of_eyes.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/Raiment_of_Eyes.png",
      "id": "equipment_raiment_of_eyes",
      "kind": "equipment",
      "level": 0,
      "name": "Raiment of Eyes",
      "ownerTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 2,
          "tag": "Enchantment"
        },
        {
          "amount": 1,
          "tag": "Eye"
        },
        {
          "amount": 5,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "armor",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Enchantment",
        "Eye"
      ]
    },
    "equipment_rain_beacon": {
      "asset": "tiles/items/equipment/rain_beacon.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "rain_beacon",
      "className": "RainBeacon",
      "description": "Each turn, summon a random number of [Rain Clouds:nature] across the level\nThe [Rain Clouds:nature] last for [5:duration] turns\nThe maximum number summoned each turn is your [Nature] mastery",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_rain_beacon.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/rain_beacon.png",
      "id": "equipment_rain_beacon",
      "kind": "equipment",
      "level": 0,
      "name": "Rain Beacon",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Nature"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Nature"
      ]
    },
    "equipment_rainbow_blade": {
      "asset": "tiles/items/equipment/rainbow_blade.png",
      "augmentSummary": {
        "spellCount": 44
      },
      "baseId": "rainbow_blade",
      "className": "RainbowBlade",
      "conditionalSummary": {
        "count": 34
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_rainbow_blade.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/rainbow_blade.png",
      "id": "equipment_rainbow_blade",
      "kind": "equipment",
      "level": 0,
      "name": "Rainbow Blade",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Fire"
        },
        {
          "amount": 1,
          "tag": "Chaos"
        },
        {
          "amount": 1,
          "tag": "Lightning"
        },
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 1,
          "tag": "Ice"
        },
        {
          "amount": 1,
          "tag": "Ritual"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Chaos": {
          "damage": 6
        },
        "Fire": {
          "damage": 6
        },
        "Ice": {
          "damage": 6
        },
        "Lightning": {
          "damage": 6
        },
        "Nature": {
          "damage": 6
        },
        "Ritual": {
          "damage": 6
        },
        "Translocation": {
          "damage": 6
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Fire",
        "Chaos",
        "Lightning",
        "Nature",
        "Ice",
        "Ritual",
        "Translocation"
      ]
    },
    "equipment_rapid_ritual_rod": {
      "asset": "tiles/items/equipment/rapid_ritual_rod.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "rapid_ritual_rod",
      "className": "RapidRitualRod",
      "description": "Your channeled [Ritual] spells activate an additional time each turn",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_rapid_ritual_rod.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/rapid_ritual_rod.png",
      "id": "equipment_rapid_ritual_rod",
      "kind": "equipment",
      "level": 0,
      "name": "Rapid Ritual Rod",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Ritual"
        },
        {
          "amount": 5,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Ritual"
      ]
    },
    "equipment_razoreye": {
      "asset": "tiles/items/equipment/razoreye.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "razoreye",
      "className": "Razoreye",
      "description": "When you cast a [Metallic] spell, deal [27:damage] [Physical] damage to 1 enemy in line of sight per spell level",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_razoreye.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/razoreye.png",
      "id": "equipment_razoreye",
      "kind": "equipment",
      "level": 0,
      "name": "Razoreye",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Eye"
        },
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Eye",
        "Metallic"
      ]
    },
    "equipment_red_majesty": {
      "asset": "tiles/items/equipment/red_majesty.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "red_majesty",
      "className": "FreeCastStaff",
      "description": "For every 100 damage dealt to enemies by [Blood:blood] spells or equipment, cast Scourge on a random enemy\nDamage Dealt: 0",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_red_majesty.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/red_majesty.png",
      "id": "equipment_red_majesty",
      "kind": "equipment",
      "level": 0,
      "name": "Red Majesty",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Holy"
        },
        {
          "amount": 2,
          "tag": "Enchantment"
        },
        {
          "amount": 2,
          "tag": "Blood"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Holy",
        "Enchantment",
        "Blood"
      ]
    },
    "equipment_red_obsidian_shard": {
      "asset": "tiles/items/equipment/red_obsidian_shard.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "red_obsidian_shard",
      "className": "RedObsidianShard",
      "description": "Each turn, enemies adjacent to your [Demon] and [Undead] allies take [10:damage] [Fire] damage",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_red_obsidian_shard.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/red_obsidian_shard.png",
      "id": "equipment_red_obsidian_shard",
      "kind": "equipment",
      "level": 0,
      "name": "Red Obsidian Shard",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 1,
          "tag": "Fire"
        },
        {
          "amount": 1,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Enchantment",
        "Fire"
      ]
    },
    "equipment_rift_breaker": {
      "asset": "tiles/items/equipment/rift_breaker.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "rift_breaker",
      "className": "RiftBreaker",
      "conditionalSummary": {
        "count": 11
      },
      "description": "If you cast a spell while standing on a Rift, the Rift is consumed\nWhen you consume a rift, your spells regain all charges, you heal for any missing HP, and you gain [20 SH:shields]",
      "effectHighlights": [
        "can fully restore spell charges"
      ],
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 3,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_rift_breaker.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/rift_breaker.png",
      "id": "equipment_rift_breaker",
      "kind": "equipment",
      "level": 0,
      "name": "Rift Breaker",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane",
        "Translocation"
      ]
    },
    "equipment_rift_key_staff": {
      "asset": "tiles/items/equipment/rift_key_staff.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "rift_key_staff",
      "className": "RiftKeyStaff",
      "conditionalSummary": {
        "count": 11
      },
      "description": "Create an additional Rift upon level victory",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnLevelComplete'>"
      ],
      "icon": "icons/runtime/equipment_rift_key_staff.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/Rift_Key_Staff.png",
      "id": "equipment_rift_key_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Rift Key Staff",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 2,
          "tag": "Translocation"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Translocation"
      ]
    },
    "equipment_rimeblight_pulverizer": {
      "asset": "tiles/items/equipment/rimeblight_pulverizer.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "rimeblight_pulverizer",
      "className": "RimeblightPulverizer",
      "description": "When an enemy is unfrozen, they take [25:damage] [Poison] damage and are [poisoned] for [10:duration] turns",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 2,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'CommonContent.EventOnUnfrozen'>"
      ],
      "icon": "icons/runtime/equipment_rimeblight_pulverizer.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/rimeblight_pulverizer.png",
      "id": "equipment_rimeblight_pulverizer",
      "kind": "equipment",
      "level": 0,
      "name": "Rimeblight Pulverizer",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Ice"
        },
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Ice",
        "Nature"
      ]
    },
    "equipment_ring_of_magnetic_charisma": {
      "asset": "tiles/items/equipment/ring_of_magnetic_charisma.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "ring_of_magnetic_charisma",
      "className": "RingOfMagneticCharisma",
      "description": "At the beginning of each level, turn the nearest enemy Spawner or [Construct] into an ally",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_ring_of_magnetic_charisma.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/Ring_of_Magnetic_Charisma.png",
      "id": "equipment_ring_of_magnetic_charisma",
      "kind": "equipment",
      "level": 0,
      "name": "Ring of Magnetic Charisma",
      "ownerTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "recipe": [
        {
          "amount": 2,
          "tag": "Enchantment"
        },
        {
          "amount": 2,
          "tag": "Metallic"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Enchantment",
        "Metallic"
      ]
    },
    "equipment_robe_of_agony": {
      "asset": "tiles/items/equipment/robe_of_agony.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "robe_of_agony",
      "className": "RobeOfAgony",
      "description": "When you cast a [Lightning:lightning] or [Dark:dark] spell, deal [8:damage] [Lightning:lightning] damage to a random enemy in line of sight, and [8:damage] [Dark:dark] damage to another",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_robe_of_agony.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/robe_of_agony.png",
      "id": "equipment_robe_of_agony",
      "kind": "equipment",
      "level": 0,
      "name": "Robe of Agony",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Lightning"
        },
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Eye"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {
        "Dark": 25,
        "Lightning": 25
      },
      "slot": "armor",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Lightning",
        "Dark"
      ]
    },
    "equipment_robe_of_crystals": {
      "asset": "tiles/items/equipment/robe_of_crystals.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "robe_of_crystals",
      "className": "RobeOfCrystals",
      "description": "When you cast a [Arcane:arcane] or [Ice:ice] spell, deal [8:damage] [Arcane:arcane] damage to a random enemy in line of sight, and [8:damage] [Ice:ice] damage to another",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_robe_of_crystals.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/robe_of_crystals.png",
      "id": "equipment_robe_of_crystals",
      "kind": "equipment",
      "level": 0,
      "name": "Robe of Crystals",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 1,
          "tag": "Ice"
        },
        {
          "amount": 1,
          "tag": "Eye"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {
        "Arcane": 25,
        "Ice": 25
      },
      "slot": "armor",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane",
        "Ice"
      ]
    },
    "equipment_robe_of_fire": {
      "asset": "tiles/items/equipment/robe_of_fire.png",
      "augmentSummary": {
        "spellCount": 21
      },
      "baseId": "robe_of_fire",
      "className": "ElementalRobe",
      "conditionalSummary": {
        "count": 19
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_robe_of_fire.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/robe_of_fire.png",
      "id": "equipment_robe_of_fire",
      "kind": "equipment",
      "level": 0,
      "name": "Robe of Fire",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Fire"
        },
        {
          "amount": 7,
          "tag": "Any"
        }
      ],
      "resists": {
        "Fire": 50,
        "Ice": 25
      },
      "slot": "armor",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {
        "Fire": {
          "damage": 25,
          "minion_damage": 25
        }
      },
      "tags": [
        "Fire"
      ]
    },
    "equipment_robe_of_frostfire": {
      "asset": "tiles/items/equipment/robe_of_frostfire.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "robe_of_frostfire",
      "className": "RobeOfFrostfire",
      "description": "When you cast a [Fire:fire] or [Ice:ice] spell, deal [8:damage] [Fire:fire] damage to a random enemy in line of sight, and [8:damage] [Ice:ice] damage to another",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_robe_of_frostfire.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/robe_of_frostfire.png",
      "id": "equipment_robe_of_frostfire",
      "kind": "equipment",
      "level": 0,
      "name": "Robe of Frostfire",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Fire"
        },
        {
          "amount": 1,
          "tag": "Ice"
        },
        {
          "amount": 1,
          "tag": "Eye"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {
        "Fire": 25,
        "Ice": 25
      },
      "slot": "armor",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Fire",
        "Ice"
      ]
    },
    "equipment_robe_of_ice": {
      "asset": "tiles/items/equipment/robe_of_ice.png",
      "augmentSummary": {
        "spellCount": 11
      },
      "baseId": "robe_of_ice",
      "className": "ElementalRobe",
      "conditionalSummary": {
        "count": 8
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_robe_of_ice.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/robe_of_ice.png",
      "id": "equipment_robe_of_ice",
      "kind": "equipment",
      "level": 0,
      "name": "Robe of Ice",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Ice"
        },
        {
          "amount": 7,
          "tag": "Any"
        }
      ],
      "resists": {
        "Fire": 25,
        "Ice": 50
      },
      "slot": "armor",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {
        "Ice": {
          "damage": 25,
          "duration": 25
        }
      },
      "tags": [
        "Ice"
      ]
    },
    "equipment_robe_of_rifts": {
      "asset": "tiles/items/equipment/robe_of_rifts.png",
      "augmentSummary": {
        "spellCount": 11
      },
      "baseId": "robe_of_rifts",
      "className": "ElementalRobe",
      "conditionalSummary": {
        "count": 5
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_robe_of_rifts.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/robe_of_rifts.png",
      "id": "equipment_robe_of_rifts",
      "kind": "equipment",
      "level": 0,
      "name": "Robe of Rifts",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Translocation"
        },
        {
          "amount": 7,
          "tag": "Any"
        }
      ],
      "resists": {
        "Arcane": 25,
        "Dark": 25,
        "Physical": 25
      },
      "slot": "armor",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {
        "Translocation": {
          "max_charges": 100,
          "range": 50
        }
      },
      "tags": [
        "Translocation"
      ]
    },
    "equipment_robe_of_storms": {
      "asset": "tiles/items/equipment/robe_of_storms.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "robe_of_storms",
      "className": "RobeOfStorms",
      "description": "When an enemy takes [Ice] or [Lightning] damage, gain 1 [SH:shields] up to a max of 2",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 6
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_robe_of_storms.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/robe_of_storms.png",
      "id": "equipment_robe_of_storms",
      "kind": "equipment",
      "level": 0,
      "name": "Robe of Storms",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Ice"
        },
        {
          "amount": 1,
          "tag": "Lightning"
        },
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {
        "Ice": 25,
        "Lightning": 25
      },
      "slot": "armor",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Ice",
        "Lightning"
      ]
    },
    "equipment_robe_of_the_druids": {
      "asset": "tiles/items/equipment/robe_of_the_druids.png",
      "augmentSummary": {
        "spellCount": 25
      },
      "baseId": "robe_of_the_druids",
      "className": "ElementalRobe",
      "conditionalSummary": {
        "count": 15
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_robe_of_the_druids.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/robe_of_the_druids.png",
      "id": "equipment_robe_of_the_druids",
      "kind": "equipment",
      "level": 0,
      "name": "Robe of the Druids",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Nature"
        },
        {
          "amount": 7,
          "tag": "Any"
        }
      ],
      "resists": {
        "Poison": 100
      },
      "slot": "armor",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {
        "Nature": {
          "damage": 25,
          "minion_health": 50
        }
      },
      "tags": [
        "Nature"
      ]
    },
    "equipment_robe_of_twilight": {
      "asset": "tiles/items/equipment/robe_of_twilight.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "robe_of_twilight",
      "className": "RobeOfTwilight",
      "description": "When you cast a [Dark:dark] or [Holy:holy] spell, deal [8:damage] [Dark:dark] damage to a random enemy in line of sight, and [8:damage] [Holy:holy] damage to another",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_robe_of_twilight.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/robe_of_twilight.png",
      "id": "equipment_robe_of_twilight",
      "kind": "equipment",
      "level": 0,
      "name": "Robe of Twilight",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Holy"
        },
        {
          "amount": 1,
          "tag": "Eye"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {
        "Dark": 25,
        "Holy": 25
      },
      "slot": "armor",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Dark",
        "Holy"
      ]
    },
    "equipment_robe_of_void": {
      "asset": "tiles/items/equipment/robe_of_void.png",
      "augmentSummary": {
        "spellCount": 40
      },
      "baseId": "robe_of_void",
      "className": "ElementalRobe",
      "conditionalSummary": {
        "count": 23
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_robe_of_void.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/robe_of_void.png",
      "id": "equipment_robe_of_void",
      "kind": "equipment",
      "level": 0,
      "name": "Robe of Void",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Arcane"
        },
        {
          "amount": 7,
          "tag": "Any"
        }
      ],
      "resists": {
        "Arcane": 50,
        "Dark": 25
      },
      "slot": "armor",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {
        "Arcane": {
          "damage": 25,
          "max_charges": 25
        }
      },
      "tags": [
        "Arcane"
      ]
    },
    "equipment_robes_of_virtuous_sin": {
      "asset": "tiles/items/equipment/robes_of_virtuous_sin.png",
      "augmentSummary": {
        "spellCount": 60
      },
      "baseId": "robes_of_virtuous_sin",
      "className": "RobesOfVirtuousSin",
      "conditionalSummary": {
        "count": 31
      },
      "description": "Casting a [Dark] spell heals you\nCasting a [Holy] spell removes debuffs from you\nHealing and debuffs removed equal the highest spell level of the opposing school\n[Life Restored:dark]: [0:holy]\n[Debuffs Removed:holy]: [0:dark]",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_robes_of_virtuous_sin.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/robes_of_virtuous_sin.png",
      "id": "equipment_robes_of_virtuous_sin",
      "kind": "equipment",
      "level": 0,
      "name": "Robes of Virtuous Sin",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 2,
          "tag": "Dark"
        },
        {
          "amount": 2,
          "tag": "Holy"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "armor",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Dark": {
          "max_charges": 1
        },
        "Holy": {
          "max_charges": 1
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Dark",
        "Holy"
      ]
    },
    "equipment_rod_of_heaven_s_assault": {
      "asset": "tiles/items/equipment/rod_of_heaven's_assault.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "rod_of_heaven_s_assault",
      "className": "RodOfHeavensAssault",
      "description": "At the beginning of each level, cast Heavenly Blast on [Demon] and [Undead] enemies in your line of sight",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 2,
        "pathCount": 1
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_rod_of_heaven_s_assault.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/items/equipment/rod_of_heavens_assault.png",
      "id": "equipment_rod_of_heaven_s_assault",
      "kind": "equipment",
      "level": 0,
      "name": "Rod of Heaven's Assault",
      "ownerTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Eye"
        },
        {
          "amount": 1,
          "tag": "Holy"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Holy"
      ]
    },
    "equipment_ruinous_curse_doll": {
      "asset": "tiles/items/equipment/ruinous_curse_doll.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "ruinous_curse_doll",
      "className": "CurseDoll",
      "description": "When one of your [Demon:demon] or [Blood:blood] allies dies to an enemy, cast Lifedrain on the killer",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDeath'>"
      ],
      "icon": "icons/runtime/equipment_ruinous_curse_doll.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/ruinous_curse_doll.png",
      "id": "equipment_ruinous_curse_doll",
      "kind": "equipment",
      "level": 0,
      "name": "Ruinous Curse Doll",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Blood"
        },
        {
          "amount": 2,
          "tag": "Dark"
        },
        {
          "amount": 2,
          "tag": "Enchantment"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Blood",
        "Dark",
        "Enchantment"
      ]
    },
    "equipment_runespeaker_s_gorget": {
      "asset": "tiles/items/equipment/runespeaker's_gorget.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "runespeaker_s_gorget",
      "className": "RunespeakersGorget",
      "description": "You are immune to [silence]",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_runespeaker_s_gorget.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/items/equipment/runespeakers_gorget.png",
      "id": "equipment_runespeaker_s_gorget",
      "kind": "equipment",
      "level": 0,
      "name": "Runespeaker's Gorget",
      "ownerTriggers": [
        "<class 'Level.EventOnBuffApply'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 1,
          "tag": "Word"
        },
        {
          "amount": 1,
          "tag": "Any"
        }
      ],
      "resists": {
        "Arcane": 25,
        "Physical": 25
      },
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Word",
        "Arcane",
        "Metallic"
      ]
    },
    "equipment_runic_hourglass": {
      "asset": "tiles/items/equipment/runic_hourglass.png",
      "augmentSummary": {
        "spellCount": 18
      },
      "baseId": "runic_hourglass",
      "className": "RunicHourglass",
      "conditionalSummary": {
        "count": 10
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_runic_hourglass.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/runic_hourglass.png",
      "id": "equipment_runic_hourglass",
      "kind": "equipment",
      "level": 0,
      "name": "Runic Hourglass",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {
        "Arcane": {
          "duration": 50,
          "minion_duration": 50
        }
      },
      "tags": [
        "Arcane",
        "Enchantment"
      ]
    },
    "equipment_sacrificial_dagger": {
      "asset": "tiles/items/equipment/sacrificial_dagger.png",
      "augmentSummary": {
        "spellCount": 19
      },
      "baseId": "sacrificial_dagger",
      "className": "SacrificialDagger",
      "conditionalSummary": {
        "count": 13
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_sacrificial_dagger.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/sacrificial_dagger.png",
      "id": "equipment_sacrificial_dagger",
      "kind": "equipment",
      "level": 0,
      "name": "Sacrificial Dagger",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Blood"
        },
        {
          "amount": 1,
          "tag": "Holy"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Blood": {
          "damage": 3
        },
        "Holy": {
          "damage": 3
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Blood",
        "Holy"
      ]
    },
    "equipment_sandals_of_virtuous_sin": {
      "asset": "tiles/items/equipment/sandals_of_virtuous_sin.png",
      "augmentSummary": {
        "spellCount": 60
      },
      "baseId": "sandals_of_virtuous_sin",
      "className": "SandalsOfVirtuousSin",
      "conditionalSummary": {
        "count": 31
      },
      "description": "Casting a [Dark] or [Holy] spell grants a buff for [5:duration] turns that deals damage of the opposing type to enemies within [3:radius] tiles when you take a step\nThe damage dealt by the buff is equal to the highest known spell level of the spell school matching the damage type\n[Holy]: [0:holy]\n[Dark]: [0:dark]",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 2,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_sandals_of_virtuous_sin.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/sandals_of_virtuous_sin.png",
      "id": "equipment_sandals_of_virtuous_sin",
      "kind": "equipment",
      "level": 0,
      "name": "Sandals of Virtuous Sin",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Holy"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "boots",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Dark": {
          "max_charges": 1
        },
        "Holy": {
          "max_charges": 1
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Dark",
        "Holy"
      ]
    },
    "equipment_sanguine_frost_wand": {
      "asset": "tiles/items/equipment/sanguine_frost_wand.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "sanguine_frost_wand",
      "className": "SanguineFrostWand",
      "description": "When you pay life, there is a chance to regain a charge of a random [Ice] spell\nThe chance is equal to the life paid\nIf this fails to reward a charge, the chance accumulates until it succeeds\nAccumulated Chance: 0%",
      "effectHighlights": [
        "can refund spell charges"
      ],
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_sanguine_frost_wand.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/sanguine_frost_wand.png",
      "id": "equipment_sanguine_frost_wand",
      "kind": "equipment",
      "level": 0,
      "name": "Sanguine Frost Wand",
      "ownerTriggers": [
        "<class 'Level.EventOnSpendHP'>"
      ],
      "recipe": [
        {
          "amount": 2,
          "tag": "Blood"
        },
        {
          "amount": 1,
          "tag": "Ice"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Blood",
        "Ice"
      ]
    },
    "equipment_scales_of_virtuous_sin": {
      "asset": "tiles/items/equipment/scales_of_virtuous_sin.png",
      "augmentSummary": {
        "spellCount": 60
      },
      "baseId": "scales_of_virtuous_sin",
      "className": "ScalesOfVirtuousSin",
      "conditionalSummary": {
        "count": 31
      },
      "description": "Redeal half the damage dealt by [Holy] spells as [Dark] damage\nRedeal half the damage dealt by [Dark] spells as [Holy] damage",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_scales_of_virtuous_sin.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/scales_of_virtuous_sin.png",
      "id": "equipment_scales_of_virtuous_sin",
      "kind": "equipment",
      "level": 0,
      "name": "Scales of Virtuous Sin",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Dark"
        },
        {
          "amount": 2,
          "tag": "Holy"
        },
        {
          "amount": 5,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Dark": {
          "max_charges": 1
        },
        "Holy": {
          "max_charges": 1
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Dark",
        "Holy"
      ]
    },
    "equipment_scepter_of_sorrows": {
      "asset": "tiles/items/equipment/scepter_of_sorrows.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "scepter_of_sorrows",
      "className": "ScepterOfSorrows",
      "description": "When an enemy takes [Dark] and [Ice] damage in the same turn, summon a temporary Sorrow Spirit near that enemy",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_scepter_of_sorrows.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/scepter_of_sorrows.png",
      "id": "equipment_scepter_of_sorrows",
      "kind": "equipment",
      "level": 0,
      "name": "Scepter of Sorrows",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Ice"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Conjuration",
        "Dark",
        "Ice"
      ]
    },
    "equipment_searing_eye_stone": {
      "asset": "tiles/items/equipment/searing_eye_stone.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "searing_eye_stone",
      "className": "SearingEyeStone",
      "description": "When you cast a [Fire] spell, deal 1 [Fire] damage to enemies in line of sight of the target",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_searing_eye_stone.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/searing_eye_stone.png",
      "id": "equipment_searing_eye_stone",
      "kind": "equipment",
      "level": 0,
      "name": "Searing Eye Stone",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Eye"
        },
        {
          "amount": 1,
          "tag": "Fire"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Eye",
        "Fire"
      ]
    },
    "equipment_shatter_shards_necklace": {
      "asset": "tiles/items/equipment/shatter_shards_necklace.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "shatter_shards_necklace",
      "className": "ShatterShardsNecklace",
      "description": "When a unit is unfrozen or a [frozen] unit dies, up to [3:num_targets] enemies within [3:radius] tiles take [6:damage] [Ice] and [Physical] damage",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'CommonContent.EventOnUnfrozen'>"
      ],
      "icon": "icons/runtime/equipment_shatter_shards_necklace.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/shatter_shards_necklace.png",
      "id": "equipment_shatter_shards_necklace",
      "kind": "equipment",
      "level": 0,
      "name": "Shatter Shards Necklace",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Ice"
        },
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Ice",
        "Metallic"
      ]
    },
    "equipment_shepherd_s_staff": {
      "asset": "tiles/items/equipment/shepherd's_staff.png",
      "augmentSummary": {
        "spellCount": 40
      },
      "baseId": "shepherd_s_staff",
      "className": "ShepherdsStaff",
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_shepherd_s_staff.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/items/equipment/shepherds_staff.png",
      "id": "equipment_shepherd_s_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Shepherd's Staff",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Conjuration": {
          "minion_range": 1,
          "num_summons": 1
        }
      },
      "tagBonusesPct": {
        "Conjuration": {
          "minion_duration": 50
        }
      },
      "tags": [
        "Conjuration"
      ]
    },
    "equipment_silken_links": {
      "asset": "tiles/items/equipment/silken_links.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "silken_links",
      "className": "PrinceOfRuinLike",
      "description": "When an enemy dies to [Arcane:arcane] or [Poison:poison] damage, a random enemy in their line of sight within [3:radius] tiles takes [9:damage] damage of that type",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDeath'>"
      ],
      "icon": "icons/runtime/equipment_silken_links.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/silken_links.png",
      "id": "equipment_silken_links",
      "kind": "equipment",
      "level": 0,
      "name": "Silken Links",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane",
        "Nature"
      ]
    },
    "equipment_silken_sandals": {
      "asset": "tiles/items/equipment/silken_sandals.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "silken_sandals",
      "className": "SilkenSandals",
      "conditionalSummary": {
        "count": 11
      },
      "description": "When you take a step, gain 1 [SH:shields]",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_silken_sandals.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/silken_sandals.png",
      "id": "equipment_silken_sandals",
      "kind": "equipment",
      "level": 0,
      "name": "Silken Sandals",
      "ownerTriggers": [
        "<class 'Level.EventOnMoved'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Holy"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "boots",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Holy",
        "Translocation"
      ]
    },
    "equipment_silvermelt": {
      "asset": "tiles/items/equipment/silvermelt.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "silvermelt",
      "className": "FreeCastStaff",
      "description": "For every 80 damage dealt to enemies by [Fire:fire] spells or equipment, cast Mercurize on a random enemy\nDamage Dealt: 0",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_silvermelt.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/silvermelt.png",
      "id": "equipment_silvermelt",
      "kind": "equipment",
      "level": 0,
      "name": "Silvermelt",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Dark"
        },
        {
          "amount": 2,
          "tag": "Metallic"
        },
        {
          "amount": 2,
          "tag": "Enchantment"
        },
        {
          "amount": 2,
          "tag": "Conjuration"
        },
        {
          "amount": 2,
          "tag": "Fire"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Dark",
        "Metallic",
        "Enchantment",
        "Conjuration",
        "Fire"
      ]
    },
    "equipment_skull_necklace": {
      "asset": "tiles/items/equipment/skull_necklace.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "skull_necklace",
      "className": "SkullNecklace",
      "description": "When you cast a [Dark] spell, your [Undead] allies gain [1:minion_damage] damage to their spells for [20:duration] turns",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_skull_necklace.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/skull_necklace.png",
      "id": "equipment_skull_necklace",
      "kind": "equipment",
      "level": 0,
      "name": "Skull Necklace",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Dark",
        "Enchantment"
      ]
    },
    "equipment_skybreaker_array": {
      "asset": "tiles/items/equipment/skybreaker_array.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "skybreaker_array",
      "className": "SkybreakerArray",
      "description": "When an enemy teleports to a tile you can see, they take [20:damage] [Lightning] damage and are immobilized for [4:duration] turns",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnMoved'>"
      ],
      "icon": "icons/runtime/equipment_skybreaker_array.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/skybreaker_array.png",
      "id": "equipment_skybreaker_array",
      "kind": "equipment",
      "level": 0,
      "name": "Skybreaker Array",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 1,
          "tag": "Eye"
        },
        {
          "amount": 1,
          "tag": "Lightning"
        },
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane",
        "Eye",
        "Lightning",
        "Metallic"
      ]
    },
    "equipment_slime_staff": {
      "asset": "tiles/items/equipment/slime_staff.png",
      "augmentSummary": {
        "spellCount": 6
      },
      "baseId": "slime_staff",
      "className": "SlimeStaff",
      "conditionalSummary": {
        "count": 5
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_slime_staff.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/slime_staff.png",
      "id": "equipment_slime_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Slime Staff",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Slime"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Slime": {
          "max_charges": 3,
          "range": 3
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Slime"
      ]
    },
    "equipment_slime_striders": {
      "asset": "tiles/items/equipment/slime_striders.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "slime_striders",
      "className": "SummonShoes",
      "conditionalSummary": {
        "count": 11
      },
      "description": "Every 3 steps, summon a Green Slime\n3 steps until summon",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_slime_striders.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/slime_striders.png",
      "id": "equipment_slime_striders",
      "kind": "equipment",
      "level": 0,
      "name": "Slime Striders",
      "ownerTriggers": [
        "<class 'Level.EventOnMoved'>",
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 1,
          "tag": "Slime"
        },
        {
          "amount": 1,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "boots",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Conjuration",
        "Translocation",
        "Slime"
      ]
    },
    "equipment_slime_timer": {
      "asset": "tiles/items/equipment/slime_timer.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "slime_timer",
      "className": "SlimeTimer",
      "description": "When [Slime] allies are summoned, their chance to grow is increased by 25%",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "icon": "icons/runtime/equipment_slime_timer.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/slime_timer.png",
      "id": "equipment_slime_timer",
      "kind": "equipment",
      "level": 0,
      "name": "Slime Timer",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 1,
          "tag": "Slime"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane",
        "Slime"
      ]
    },
    "equipment_slimebirth_cantromancy": {
      "asset": "tiles/items/equipment/slimebirth_cantromancy.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "slimebirth_cantromancy",
      "className": "SlimeBirthCantromancy",
      "description": "When [Slime] allies are summoned, they cast a random cantrip you know that they share a tag with",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "icon": "icons/runtime/equipment_slimebirth_cantromancy.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/slimebirth_cantromancy.png",
      "id": "equipment_slimebirth_cantromancy",
      "kind": "equipment",
      "level": 0,
      "name": "Slimebirth Cantromancy",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 1,
          "tag": "Slime"
        },
        {
          "amount": 2,
          "tag": "Sorcery"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane",
        "Slime"
      ]
    },
    "equipment_slimecrusted_scarificator": {
      "asset": "tiles/items/equipment/slimecrusted_scarificator.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "slimecrusted_scarificator",
      "className": "SlimecrustedScarificator",
      "description": "Summon a Blood Slime nearby for every [10:minion_health] HP you spend\nHP: [0:blood] / [10:minion_health]",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_slimecrusted_scarificator.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/slimecrusted_scarificator.png",
      "id": "equipment_slimecrusted_scarificator",
      "kind": "equipment",
      "level": 0,
      "name": "Slimecrusted Scarificator",
      "ownerTriggers": [
        "<class 'Level.EventOnSpendHP'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Blood"
        },
        {
          "amount": 1,
          "tag": "Slime"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Blood",
        "Slime"
      ]
    },
    "equipment_slimy_voodoo_mantle": {
      "asset": "tiles/items/equipment/slimy_voodoo_mantle.png",
      "augmentSummary": {
        "spellCount": 6
      },
      "baseId": "slimy_voodoo_mantle",
      "className": "SlimyVoodooMantle",
      "conditionalSummary": {
        "count": 5
      },
      "description": "If you would take damage, deal that much damage to one of your adjacent [Slime] allies instead",
      "effectHooks": [
        "on_applied"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_slimy_voodoo_mantle.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/slimy_voodoo_mantle.png",
      "id": "equipment_slimy_voodoo_mantle",
      "kind": "equipment",
      "level": 0,
      "name": "Slimy Voodoo Mantle",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Slime"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "armor",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Slime": {
          "max_charges": 2,
          "minion_health": 10
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Slime"
      ]
    },
    "equipment_slippery_hex_dagger": {
      "asset": "tiles/items/equipment/slippery_hex_dagger.png",
      "augmentSummary": {
        "spellCount": 20
      },
      "baseId": "slippery_hex_dagger",
      "className": "SlipperyHexDagger",
      "conditionalSummary": {
        "count": 3
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_slippery_hex_dagger.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/slippery_hex_dagger.png",
      "id": "equipment_slippery_hex_dagger",
      "kind": "equipment",
      "level": 0,
      "name": "Slippery Hex Dagger",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 1,
          "tag": "Slime"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Enchantment": {
          "damage": 3
        },
        "Slime": {
          "damage": 3
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Enchantment",
        "Slime"
      ]
    },
    "equipment_snow_shoes": {
      "asset": "tiles/items/equipment/snow_shoes.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "snow_shoes",
      "className": "SnowShoes",
      "description": "When a unit is [frozen], heal 2 HP",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnBuffApply'>"
      ],
      "icon": "icons/runtime/equipment_snow_shoes.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/snow_shoes.png",
      "id": "equipment_snow_shoes",
      "kind": "equipment",
      "level": 0,
      "name": "Snow Shoes",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Ice"
        },
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "boots",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Ice",
        "Nature"
      ]
    },
    "equipment_snow_staff": {
      "asset": "tiles/items/equipment/snow_staff.png",
      "augmentSummary": {
        "spellCount": 18
      },
      "baseId": "snow_staff",
      "className": "SnowStaff",
      "conditionalSummary": {
        "count": 15
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_snow_staff.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/snow_staff.png",
      "id": "equipment_snow_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Snow Staff",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Ice"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Ice": {
          "damage": 5,
          "duration": 3,
          "max_charges": 1
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Ice"
      ]
    },
    "equipment_solid_steel_staff": {
      "asset": "tiles/items/equipment/solid_steel_staff.png",
      "augmentSummary": {
        "spellCount": 16
      },
      "baseId": "solid_steel_staff",
      "className": "SolidSteelStaff",
      "conditionalSummary": {
        "count": 14
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_solid_steel_staff.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/solid_steel_staff.png",
      "id": "equipment_solid_steel_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Solid Steel Staff",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Metallic"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Metallic": {
          "damage": 10,
          "duration": 2
        }
      },
      "tagBonusesPct": {
        "Metallic": {
          "range": 25
        }
      },
      "tags": [
        "Metallic"
      ]
    },
    "equipment_sonic_shields": {
      "asset": "tiles/items/equipment/sonic_shields.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "sonic_shields",
      "className": "SonicShields",
      "description": "When one of your allies loses a shield, up to [2:num_targets] enemies in their line of sight within [5:radius] tiles take [1:damage] [Physical] and [Arcane] damage\nEnemies hit are [silenced] for [2:duration] turns",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 2,
        "pathCount": 19
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnShieldRemoved'>"
      ],
      "icon": "icons/runtime/equipment_sonic_shields.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/sonic_shields.png",
      "id": "equipment_sonic_shields",
      "kind": "equipment",
      "level": 0,
      "name": "Sonic Shields",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Arcane"
        },
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 5,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane",
        "Metallic"
      ]
    },
    "equipment_sorcery_staff": {
      "asset": "tiles/items/equipment/sorcery_staff.png",
      "augmentSummary": {
        "spellCount": 74
      },
      "baseId": "sorcery_staff",
      "className": "SorceryStaff",
      "conditionalSummary": {
        "count": 1
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_sorcery_staff.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/sorcery_staff.png",
      "id": "equipment_sorcery_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Sorcery Staff",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Sorcery"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Sorcery": {
          "max_charges": 1,
          "range": 1
        }
      },
      "tagBonusesPct": {
        "Sorcery": {
          "damage": 33
        }
      },
      "tags": [
        "Sorcery"
      ]
    },
    "equipment_sorcwinter": {
      "asset": "tiles/items/equipment/sorcwinter.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "sorcwinter",
      "className": "FreeCastStaff",
      "description": "For every 120 damage dealt to enemies by [Sorcery:sorcery] spells or equipment, cast Death Chill on a random enemy\nDamage Dealt: 0",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_sorcwinter.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/sorcwinter.png",
      "id": "equipment_sorcwinter",
      "kind": "equipment",
      "level": 0,
      "name": "Sorcwinter",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Enchantment"
        },
        {
          "amount": 2,
          "tag": "Dark"
        },
        {
          "amount": 2,
          "tag": "Ice"
        },
        {
          "amount": 2,
          "tag": "Sorcery"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Enchantment",
        "Dark",
        "Ice",
        "Sorcery"
      ]
    },
    "equipment_soul_harvester": {
      "asset": "tiles/items/equipment/soul_harvester.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "soul_harvester",
      "className": "SoulHarvester",
      "description": "When an enemy dies, there is a 10% chance to regain a charge of your [Dark] and [Holy] spells\nThis chance is tripled if they died to [Dark] or [Holy] damage",
      "effectHighlights": [
        "can refund spell charges"
      ],
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 2,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDeath'>"
      ],
      "icon": "icons/runtime/equipment_soul_harvester.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/soul_harvester.png",
      "id": "equipment_soul_harvester",
      "kind": "equipment",
      "level": 0,
      "name": "Soul Harvester",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 3,
          "tag": "Dark"
        },
        {
          "amount": 3,
          "tag": "Holy"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Dark",
        "Holy"
      ]
    },
    "equipment_soulmail": {
      "asset": "tiles/items/equipment/soulmail.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "soulmail",
      "className": "ArmorOfSouls",
      "description": "When a [Living] unit dies, gain 1 [SH:shields], up to a max of 4",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDeath'>"
      ],
      "icon": "icons/runtime/equipment_soulmail.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/soulmail.png",
      "id": "equipment_soulmail",
      "kind": "equipment",
      "level": 0,
      "name": "Soulmail",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Holy"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {
        "Arcane": 25,
        "Dark": 25,
        "Physical": 25
      },
      "slot": "armor",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane",
        "Dark",
        "Holy"
      ]
    },
    "equipment_spark_conductor": {
      "asset": "tiles/items/equipment/spark_conductor.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "spark_conductor",
      "className": "SparkConductor",
      "description": "When [Metallic] or [Construct] allies are summoned, they gain the Galvanic Redirection buff\nGalvanic Redirection causes [Lightning] damage they would take to instead be redirected in a beam toward a random enemy in their line of sight",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "icon": "icons/runtime/equipment_spark_conductor.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/spark_conductor.png",
      "id": "equipment_spark_conductor",
      "kind": "equipment",
      "level": 0,
      "name": "Spark Conductor",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Lightning"
        },
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Lightning",
        "Metallic"
      ]
    },
    "equipment_spawning_venom": {
      "asset": "tiles/items/equipment/spawning_venom.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "spawning_venom",
      "className": "SpawningVenom",
      "description": "When enemies are killed by [Poison] damage, summon a Giant Spider nearby",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDeath'>"
      ],
      "icon": "icons/runtime/equipment_spawning_venom.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/spawning_venom.png",
      "id": "equipment_spawning_venom",
      "kind": "equipment",
      "level": 0,
      "name": "Spawning Venom",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 2,
          "tag": "Nature"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Nature",
        "Conjuration"
      ]
    },
    "equipment_spirit_visor": {
      "asset": "tiles/items/equipment/spirit_visor.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "spirit_visor",
      "className": "SpiritVisor",
      "description": "When you take damage, gain 1 [SH:shields]",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 16
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_spirit_visor.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/spirit_visor.png",
      "id": "equipment_spirit_visor",
      "kind": "equipment",
      "level": 0,
      "name": "Spirit Visor",
      "ownerTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {
        "Arcane": -25,
        "Physical": -25
      },
      "slot": "helmet",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane",
        "Enchantment"
      ]
    },
    "equipment_staff_of_heaven_s_vengeance": {
      "asset": "tiles/items/equipment/staff_of_heaven's_vengeance.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "staff_of_heaven_s_vengeance",
      "className": "StaffOfHeavensVengeance",
      "description": "When you or one of your [Living] or [Holy] allies takes damage from an enemy, deal [7:damage] [Holy] damage to that enemy",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_staff_of_heaven_s_vengeance.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/items/equipment/staff_of_heavens_vengeance.png",
      "id": "equipment_staff_of_heaven_s_vengeance",
      "kind": "equipment",
      "level": 0,
      "name": "Staff of Heaven's Vengeance",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 3,
          "tag": "Holy"
        },
        {
          "amount": 5,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Holy"
      ]
    },
    "equipment_stagnation_basin": {
      "asset": "tiles/items/equipment/stagnation_basin.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "stagnation_basin",
      "className": "StagnationBasin",
      "description": "When an enemy is Soaked, they are [poisoned] for [10:duration] turns",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnBuffApply'>"
      ],
      "icon": "icons/runtime/equipment_stagnation_basin.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/stagnation_basin.png",
      "id": "equipment_stagnation_basin",
      "kind": "equipment",
      "level": 0,
      "name": "Stagnation Basin",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Nature"
      ]
    },
    "equipment_starblesser": {
      "asset": "tiles/items/equipment/starblesser.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "starblesser",
      "className": "FreeCastStaff",
      "description": "For every 80 damage dealt to enemies by [Arcane:arcane] spells or equipment, cast Heavenly Blast on a random enemy\nDamage Dealt: 0",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_starblesser.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/starblesser.png",
      "id": "equipment_starblesser",
      "kind": "equipment",
      "level": 0,
      "name": "Starblesser",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Holy"
        },
        {
          "amount": 2,
          "tag": "Sorcery"
        },
        {
          "amount": 2,
          "tag": "Arcane"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Holy",
        "Sorcery",
        "Arcane"
      ]
    },
    "equipment_stolen_flame_choker": {
      "asset": "tiles/items/equipment/stolen_flame_choker.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "stolen_flame_choker",
      "className": "StolenFlameChoker",
      "description": "[Demon] allies learn Fire Breath\nFire Breath deals [5:minion_damage] [Fire] damage to units in a cone\nFire Breath has [3:range] range and a [3 turn:cooldown] cooldown",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "icon": "icons/runtime/equipment_stolen_flame_choker.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/stolen_flame_choker.png",
      "id": "equipment_stolen_flame_choker",
      "kind": "equipment",
      "level": 0,
      "name": "Stolen Flame Choker",
      "ownerTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Dragon"
        },
        {
          "amount": 1,
          "tag": "Fire"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Fire",
        "Conjuration"
      ]
    },
    "equipment_stone_curse_doll": {
      "asset": "tiles/items/equipment/stone_curse_doll.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "stone_curse_doll",
      "className": "CurseDoll",
      "description": "When one of your [Arcane:arcane] or [Construct:construct] allies dies to an enemy, cast Petrify on the killer",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDeath'>"
      ],
      "icon": "icons/runtime/equipment_stone_curse_doll.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/stone_curse_doll.png",
      "id": "equipment_stone_curse_doll",
      "kind": "equipment",
      "level": 0,
      "name": "Stone Curse Doll",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Arcane"
        },
        {
          "amount": 2,
          "tag": "Enchantment"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane",
        "Enchantment"
      ]
    },
    "equipment_stone_mask": {
      "asset": "tiles/items/equipment/stone_mask.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "stone_mask",
      "className": "StoneMask",
      "description": "Each turn, [petrify] an enemy in your line of sight for [6:duration] turns",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_stone_mask.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/stone_mask.png",
      "id": "equipment_stone_mask",
      "kind": "equipment",
      "level": 0,
      "name": "Stone Mask",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 1,
          "tag": "Eye"
        },
        {
          "amount": 1,
          "tag": "Any"
        }
      ],
      "resists": {
        "Physical": 25
      },
      "slot": "helmet",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane",
        "Enchantment",
        "Eye"
      ]
    },
    "equipment_stoneeater_amulet": {
      "asset": "tiles/items/equipment/stoneeater_amulet.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "stoneeater_amulet",
      "className": "StoneeaterAmulet",
      "description": "Each turn, eat adjacent walls\nHeal 10 HP for each wall you eat",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_stoneeater_amulet.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/Stoneeater_Amulet.png",
      "id": "equipment_stoneeater_amulet",
      "kind": "equipment",
      "level": 0,
      "name": "Stoneeater Amulet",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Metallic"
      ]
    },
    "equipment_storm_beacon": {
      "asset": "tiles/items/equipment/storm_beacon.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "storm_beacon",
      "className": "StormBeacon",
      "description": "Each turn, summon a random number of [Storm Clouds:lightning] across the level\nThe [Storm Clouds:lightning] deal [10:damage] damage and last for [5:duration] turns\nThe maximum number summoned each turn is your [Lightning] mastery",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_storm_beacon.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/storm_beacon.png",
      "id": "equipment_storm_beacon",
      "kind": "equipment",
      "level": 0,
      "name": "Storm Beacon",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Lightning"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Lightning"
      ]
    },
    "equipment_storm_boots": {
      "asset": "tiles/items/equipment/storm_boots.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "storm_boots",
      "className": "SpellBoots",
      "conditionalSummary": {
        "count": 11
      },
      "description": "Every 8 steps, cast Storm Burst\n8 steps until cast",
      "effectHooks": [
        "on_applied"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnLevelComplete'>"
      ],
      "icon": "icons/runtime/equipment_storm_boots.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/storm_boots.png",
      "id": "equipment_storm_boots",
      "kind": "equipment",
      "level": 0,
      "name": "Storm Boots",
      "ownerTriggers": [
        "<class 'Level.EventOnMoved'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Ice"
        },
        {
          "amount": 1,
          "tag": "Lightning"
        },
        {
          "amount": 1,
          "tag": "Sorcery"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "boots",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Ice",
        "Lightning",
        "Sorcery",
        "Translocation"
      ]
    },
    "equipment_storm_caller_staff": {
      "asset": "tiles/items/equipment/storm_caller_staff.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "storm_caller_staff",
      "className": "StormCallerStaff",
      "description": "When enemies take [Ice] or [Lightning] damage, create a corresponding [Blizzard:ice] or [Storm Cloud:lightning] nearby\n[Blizzards:ice] deal [5:damage] [Ice] damage and may [freeze] enemies\n[Storm Cloud:lightning] strike inconsistently and deal twice as much [Lightning] damage\nClouds last [2:duration] turns",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_storm_caller_staff.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/storm_caller_staff.png",
      "id": "equipment_storm_caller_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Storm Caller Staff",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Ice"
        },
        {
          "amount": 2,
          "tag": "Lightning"
        },
        {
          "amount": 2,
          "tag": "Nature"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Ice",
        "Lightning",
        "Nature"
      ]
    },
    "equipment_storm_oculus": {
      "asset": "tiles/items/equipment/storm_oculus.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "storm_oculus",
      "className": "GenericOculusEquip",
      "description": "The first time an enemy takes [Ice:ice] or [Lightning:lightning] damage, it gets -25 [Ice:ice] and [Lightning:lightning] resist",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_storm_oculus.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/storm_oculus.png",
      "id": "equipment_storm_oculus",
      "kind": "equipment",
      "level": 0,
      "name": "Storm Oculus",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 1,
          "tag": "Ice"
        },
        {
          "amount": 1,
          "tag": "Lightning"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Ice",
        "Lightning"
      ]
    },
    "equipment_storm_wand": {
      "asset": "tiles/items/equipment/storm_wand.png",
      "augmentSummary": {
        "spellCount": 16
      },
      "baseId": "storm_wand",
      "className": "StormWand",
      "conditionalSummary": {
        "count": 7
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_storm_wand.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/storm_wand.png",
      "id": "equipment_storm_wand",
      "kind": "equipment",
      "level": 0,
      "name": "Storm Wand",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Lightning"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Lightning": {
          "num_targets": 2,
          "range": 2
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Lightning"
      ]
    },
    "equipment_stormbrood_trickshoes": {
      "asset": "tiles/items/equipment/stormbrood_trickshoes.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "stormbrood_trickshoes",
      "className": "StormbroodTrickshoes",
      "conditionalSummary": {
        "count": 11
      },
      "description": "When you cast a [Translocation] spell, summon a Storm Troll at your original location\nIt can cast your Blink on an 8 turn cooldown",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 2
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_stormbrood_trickshoes.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/stormbrood_trickshoes.png",
      "id": "equipment_stormbrood_trickshoes",
      "kind": "equipment",
      "level": 0,
      "name": "Stormbrood Trickshoes",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Lightning"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 1,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "boots",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Lightning",
        "Translocation"
      ]
    },
    "equipment_stormtroll_armor": {
      "asset": "tiles/items/equipment/stormtroll_armor.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "stormtroll_armor",
      "className": "StormtrollArmor",
      "description": "Regenerate 5 HP each turn",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_stormtroll_armor.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/stormtroll_armor.png",
      "id": "equipment_stormtroll_armor",
      "kind": "equipment",
      "level": 0,
      "name": "Stormtroll Armor",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Lightning"
        },
        {
          "amount": 2,
          "tag": "Nature"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {
        "Lightning": 50
      },
      "slot": "armor",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Lightning",
        "Nature"
      ]
    },
    "equipment_sunforged_iris": {
      "asset": "tiles/items/equipment/sunforged_iris.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "sunforged_iris",
      "className": "SunforgedIris",
      "description": "You are immune to [blind]",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_sunforged_iris.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/sunforged_iris.png",
      "id": "equipment_sunforged_iris",
      "kind": "equipment",
      "level": 0,
      "name": "Sunforged Iris",
      "ownerTriggers": [
        "<class 'Level.EventOnBuffApply'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Eye"
        },
        {
          "amount": 1,
          "tag": "Holy"
        },
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 1,
          "tag": "Any"
        }
      ],
      "resists": {
        "Fire": 25,
        "Holy": 25
      },
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Eye",
        "Holy",
        "Metallic"
      ]
    },
    "equipment_talking_hat": {
      "asset": "tiles/items/equipment/talking_hat.png",
      "augmentSummary": {
        "spellCount": 59
      },
      "baseId": "talking_hat",
      "className": "TalkingHat",
      "conditionalSummary": {
        "count": 3
      },
      "description": "Your [Enchantment] spells gain quickcast",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_talking_hat.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/Talking_Hat.png",
      "id": "equipment_talking_hat",
      "kind": "equipment",
      "level": 0,
      "name": "Talking Hat",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 3,
          "tag": "Enchantment"
        },
        {
          "amount": 5,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "helmet",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Enchantment": {
          "quick_cast": 1
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Enchantment"
      ]
    },
    "equipment_the_bladestaff": {
      "asset": "tiles/items/equipment/the_bladestaff.png",
      "augmentSummary": {
        "spellCount": 78
      },
      "baseId": "the_bladestaff",
      "className": "BladeStaff",
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {
        "damage": 6
      },
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_the_bladestaff.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/the_bladestaff.png",
      "id": "equipment_the_bladestaff",
      "kind": "equipment",
      "level": 0,
      "name": "The Bladestaff",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 3,
          "tag": "Metallic"
        },
        {
          "amount": 5,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Metallic"
      ]
    },
    "equipment_the_blazeloom": {
      "asset": "tiles/items/equipment/the_blazeloom.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "the_blazeloom",
      "className": "FreeCastStaff",
      "description": "For every 120 damage dealt to enemies by [Enchantment:enchantment] spells or equipment, cast Blazerip on a random enemy\nDamage Dealt: 0",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_the_blazeloom.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/the_blazeloom.png",
      "id": "equipment_the_blazeloom",
      "kind": "equipment",
      "level": 0,
      "name": "The Blazeloom",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Arcane"
        },
        {
          "amount": 2,
          "tag": "Fire"
        },
        {
          "amount": 2,
          "tag": "Sorcery"
        },
        {
          "amount": 2,
          "tag": "Enchantment"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane",
        "Fire",
        "Sorcery",
        "Enchantment"
      ]
    },
    "equipment_the_bloodwell": {
      "asset": "tiles/items/equipment/the_bloodwell.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "the_bloodwell",
      "className": "TheBloodwell",
      "description": "Heal 1 HP when a unit takes damage from [bleed]",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_the_bloodwell.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/the_bloodwell.png",
      "id": "equipment_the_bloodwell",
      "kind": "equipment",
      "level": 0,
      "name": "The Bloodwell",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Blood"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Blood"
      ]
    },
    "equipment_the_boiler": {
      "asset": "tiles/items/equipment/the_boiler.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "the_boiler",
      "className": "Kettlestaff",
      "description": "Each turn, all soaked enemies take [25:damage] [Fire] damage",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_the_boiler.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/the_boiler.png",
      "id": "equipment_the_boiler",
      "kind": "equipment",
      "level": 0,
      "name": "The Boiler",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Fire"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Fire"
      ]
    },
    "equipment_the_dynamo": {
      "asset": "tiles/items/equipment/the_dynamo.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "the_dynamo",
      "className": "FreeCastStaff",
      "description": "For every 100 damage dealt to enemies by [Lightning:lightning] spells or equipment, cast Annihilate on a random enemy\nDamage Dealt: 0",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_the_dynamo.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/the_dynamo.png",
      "id": "equipment_the_dynamo",
      "kind": "equipment",
      "level": 0,
      "name": "The Dynamo",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Chaos"
        },
        {
          "amount": 2,
          "tag": "Sorcery"
        },
        {
          "amount": 2,
          "tag": "Lightning"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Chaos",
        "Sorcery",
        "Lightning"
      ]
    },
    "equipment_the_flamenweaver": {
      "asset": "tiles/items/equipment/the_flamenweaver.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "the_flamenweaver",
      "className": "Flamenweaver",
      "description": "Redeal half the damage you deal with other [Enchantment] spells and equipment as [Fire] damage",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 40
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_the_flamenweaver.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/the_flamenweaver.png",
      "id": "equipment_the_flamenweaver",
      "kind": "equipment",
      "level": 0,
      "name": "The Flamenweaver",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 2,
          "tag": "Fire"
        },
        {
          "amount": 5,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Enchantment",
        "Fire"
      ]
    },
    "equipment_the_gloomthorn": {
      "asset": "tiles/items/equipment/the_gloomthorn.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "the_gloomthorn",
      "className": "FreeCastStaff",
      "description": "For every 120 damage dealt to enemies by [Dark:dark] spells or equipment, cast Prison of Thorns on a random enemy\nDamage Dealt: 0",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_the_gloomthorn.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/the_gloomthorn.png",
      "id": "equipment_the_gloomthorn",
      "kind": "equipment",
      "level": 0,
      "name": "The Gloomthorn",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Arcane"
        },
        {
          "amount": 2,
          "tag": "Conjuration"
        },
        {
          "amount": 2,
          "tag": "Nature"
        },
        {
          "amount": 2,
          "tag": "Dark"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane",
        "Conjuration",
        "Nature",
        "Dark"
      ]
    },
    "equipment_the_north_pole": {
      "asset": "tiles/items/equipment/the_north_pole.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "the_north_pole",
      "className": "TheNorthPole",
      "description": "When a [Metallic] unit is summoned, cast Magnetize on it",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 2,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "icon": "icons/runtime/equipment_the_north_pole.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/the_north_pole.png",
      "id": "equipment_the_north_pole",
      "kind": "equipment",
      "level": 0,
      "name": "The North Pole",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Enchantment"
        },
        {
          "amount": 2,
          "tag": "Lightning"
        },
        {
          "amount": 2,
          "tag": "Metallic"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Lightning",
        "Metallic"
      ]
    },
    "equipment_the_purifier": {
      "asset": "tiles/items/equipment/the_purifier.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "the_purifier",
      "className": "FreeCastStaff",
      "description": "For every 120 damage dealt to enemies by [Holy:holy] spells or equipment, cast Immolate on a random enemy\nDamage Dealt: 0",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_the_purifier.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/the_purifier.png",
      "id": "equipment_the_purifier",
      "kind": "equipment",
      "level": 0,
      "name": "The Purifier",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Fire"
        },
        {
          "amount": 2,
          "tag": "Enchantment"
        },
        {
          "amount": 2,
          "tag": "Holy"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Fire",
        "Enchantment",
        "Holy"
      ]
    },
    "equipment_the_sparkloom": {
      "asset": "tiles/items/equipment/the_sparkloom.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "the_sparkloom",
      "className": "FreeCastStaff",
      "description": "For every 120 damage dealt to enemies by [Enchantment:enchantment] spells or equipment, cast Lightning Bolt on a random enemy\nDamage Dealt: 0",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_the_sparkloom.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/the_sparkloom.png",
      "id": "equipment_the_sparkloom",
      "kind": "equipment",
      "level": 0,
      "name": "The Sparkloom",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Lightning"
        },
        {
          "amount": 2,
          "tag": "Sorcery"
        },
        {
          "amount": 2,
          "tag": "Enchantment"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Lightning",
        "Sorcery",
        "Enchantment"
      ]
    },
    "equipment_thorn_hunter_s_sigil": {
      "asset": "tiles/items/equipment/thorn_hunter's_sigil.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "thorn_hunter_s_sigil",
      "className": "RechargeOnKillEquipment",
      "description": "For every [Nature:nature] unit killed, one of your [Fire] spells regains 1 charge\nAt the end of each level, a Rift containing [Nature:nature] enemies is created",
      "effectHighlights": [
        "can refund spell charges"
      ],
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDeath'>",
        "<class 'Level.EventOnLevelComplete'>"
      ],
      "icon": "icons/runtime/equipment_thorn_hunter_s_sigil.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/items/equipment/thorn_hunters_sigil.png",
      "id": "equipment_thorn_hunter_s_sigil",
      "kind": "equipment",
      "level": 0,
      "name": "Thorn Hunter's Sigil",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Fire"
        },
        {
          "amount": 2,
          "tag": "Nature"
        },
        {
          "amount": 6,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Fire",
        "Nature"
      ]
    },
    "equipment_timelord_s_staff": {
      "asset": "tiles/items/equipment/timelord's_staff.png",
      "augmentSummary": {
        "spellCount": 67
      },
      "baseId": "timelord_s_staff",
      "className": "TimelordsStaff",
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {
        "duration": 3
      },
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_timelord_s_staff.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/items/equipment/timelords_staff.png",
      "id": "equipment_timelord_s_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Timelord's Staff",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Arcane"
        },
        {
          "amount": 2,
          "tag": "Enchantment"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane",
        "Enchantment"
      ]
    },
    "equipment_timestriders": {
      "asset": "tiles/items/equipment/timestriders.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "timestriders",
      "className": "TimeStriders",
      "conditionalSummary": {
        "count": 11
      },
      "description": "At the beginning of each level, enemies are [stunned] for [1:duration] turn",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_timestriders.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/timestriders.png",
      "id": "equipment_timestriders",
      "kind": "equipment",
      "level": 0,
      "name": "Timestriders",
      "ownerTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 1,
          "tag": "Word"
        },
        {
          "amount": 1,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "boots",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane",
        "Translocation"
      ]
    },
    "equipment_titan_s_bane": {
      "asset": "tiles/items/equipment/titan's_bane.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "titan_s_bane",
      "className": "TitansBane",
      "description": "When you manually cast a [Sorcery] spell targeting a giant, cast it again\nAny unit that occupies more than one tile is considered a giant",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_titan_s_bane.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/items/equipment/titans_bane.png",
      "id": "equipment_titan_s_bane",
      "kind": "equipment",
      "level": 0,
      "name": "Titan's Bane",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 2,
          "tag": "Arcane"
        },
        {
          "amount": 1,
          "tag": "Sorcery"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane",
        "Sorcery"
      ]
    },
    "equipment_travellers_shoes": {
      "asset": "tiles/items/equipment/travellers_shoes.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "travellers_shoes",
      "className": "TravellersBoots",
      "conditionalSummary": {
        "count": 11
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_travellers_shoes.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/travellers_shoes.png",
      "id": "equipment_travellers_shoes",
      "kind": "equipment",
      "level": 0,
      "name": "Travellers Shoes",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Metallic"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {
        "Fire": 25,
        "Ice": 25,
        "Lightning": 25
      },
      "slot": "boots",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Translocation"
      ]
    },
    "equipment_treelord_staff": {
      "asset": "tiles/items/equipment/treelord_staff.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "treelord_staff",
      "className": "TreelordStaff",
      "description": "When you cast a level 3 or higher [Nature] spell, summon a Treant nearby",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_treelord_staff.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/treelord_staff.png",
      "id": "equipment_treelord_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Treelord Staff",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Conjuration",
        "Nature"
      ]
    },
    "equipment_tundra_mantle": {
      "asset": "tiles/items/equipment/tundra_mantle.png",
      "augmentSummary": {
        "spellCount": 18
      },
      "baseId": "tundra_mantle",
      "className": "TundraMantle",
      "conditionalSummary": {
        "count": 15
      },
      "description": "Each turn, soaked enemies within [5:radius] tiles are [frozen] for [3:duration] turns",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_tundra_mantle.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/tundra_mantle.png",
      "id": "equipment_tundra_mantle",
      "kind": "equipment",
      "level": 0,
      "name": "Tundra Mantle",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Ice"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {
        "Ice": 50
      },
      "slot": "armor",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Ice": {
          "max_charges": 2
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Ice"
      ]
    },
    "equipment_twilight_lantern": {
      "asset": "tiles/items/equipment/twilight_lantern.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "twilight_lantern",
      "className": "TwilightLantern",
      "description": "When you cast a [Dark] or [Holy] spell, gain Twilight Sentinel with duration equal to the spell's level\nTwilight Sentinel deals [6:damage] [Dark] damage to one random enemy in line of sight each turn, and then [6:damage] [Holy] damage to another",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_twilight_lantern.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/twilight_lantern.png",
      "id": "equipment_twilight_lantern",
      "kind": "equipment",
      "level": 0,
      "name": "Twilight Lantern",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Eye"
        },
        {
          "amount": 1,
          "tag": "Holy"
        },
        {
          "amount": 1,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Dark",
        "Eye",
        "Holy"
      ]
    },
    "equipment_twilight_oculus": {
      "asset": "tiles/items/equipment/twilight_oculus.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "twilight_oculus",
      "className": "GenericOculusEquip",
      "description": "The first time an enemy takes [Dark:dark] or [Holy:holy] damage, it gets -25 [Dark:dark] and [Holy:holy] resist",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_twilight_oculus.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/twilight_oculus.png",
      "id": "equipment_twilight_oculus",
      "kind": "equipment",
      "level": 0,
      "name": "Twilight Oculus",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Holy"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Dark",
        "Holy"
      ]
    },
    "equipment_umbral_totem": {
      "asset": "tiles/items/equipment/umbral_totem.png",
      "augmentSummary": {
        "spellCount": 27
      },
      "baseId": "umbral_totem",
      "className": "UmbralTotem",
      "conditionalSummary": {
        "count": 14
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_umbral_totem.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/umbral_totem.png",
      "id": "equipment_umbral_totem",
      "kind": "equipment",
      "level": 0,
      "name": "Umbral Totem",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Dark"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {
        "Dark": {
          "damage": 50,
          "duration": 50
        }
      },
      "tags": [
        "Dark"
      ]
    },
    "equipment_unblinking_eye": {
      "asset": "tiles/items/equipment/unblinking_eye.png",
      "augmentSummary": {
        "spellCount": 13
      },
      "baseId": "unblinking_eye",
      "className": "UnblinkingEye",
      "conditionalSummary": {
        "count": 3
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_unblinking_eye.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/unblinking_eye.png",
      "id": "equipment_unblinking_eye",
      "kind": "equipment",
      "level": 0,
      "name": "Unblinking Eye",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 1,
          "tag": "Eye"
        },
        {
          "amount": 5,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Eye": {
          "max_charges": 2,
          "minion_duration": 10,
          "shot_cooldown": -1
        }
      },
      "tagBonusesPct": {
        "Eye": {
          "duration": 50
        }
      },
      "tags": [
        "Eye"
      ]
    },
    "equipment_unholy_expurgator": {
      "asset": "tiles/items/equipment/unholy_expurgator.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "unholy_expurgator",
      "className": "UnholyExpurgator",
      "description": "[Dark] and [Holy] allies learn Expurgate\nExpurgate is a melee spell\nExpurgate deals [8:minion_damage] [Dark], [Holy], and [Physical] damage\nExpurgate has a [3 turn:cooldown] cooldown",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "icon": "icons/runtime/equipment_unholy_expurgator.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/unholy_expurgator.png",
      "id": "equipment_unholy_expurgator",
      "kind": "equipment",
      "level": 0,
      "name": "Unholy Expurgator",
      "ownerTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "recipe": [
        {
          "amount": 2,
          "tag": "Dark"
        },
        {
          "amount": 2,
          "tag": "Holy"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Dark",
        "Holy"
      ]
    },
    "equipment_vampiric_vestments": {
      "asset": "tiles/items/equipment/vampiric_vestments.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "vampiric_vestments",
      "className": "VampiricVestments",
      "description": "When a [Living] unit dies, heal 5 HP",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDeath'>"
      ],
      "icon": "icons/runtime/equipment_vampiric_vestments.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/vampiric_vestments.png",
      "id": "equipment_vampiric_vestments",
      "kind": "equipment",
      "level": 0,
      "name": "Vampiric Vestments",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Blood"
        },
        {
          "amount": 2,
          "tag": "Dark"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {
        "Dark": 25,
        "Ice": 25
      },
      "slot": "armor",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Blood",
        "Dark"
      ]
    },
    "equipment_veilpiercer_s_monocle": {
      "asset": "tiles/items/equipment/veilpiercer's_monocle.png",
      "augmentSummary": {
        "spellCount": 8
      },
      "baseId": "veilpiercer_s_monocle",
      "className": "VeilpiercersMonocle",
      "conditionalSummary": {
        "count": 5
      },
      "description": "Gain clarity when you cast a [Translocation] spell\nThe buff's duration is equal to the spell's level",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_veilpiercer_s_monocle.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/items/equipment/veilpiercers_monocle.png",
      "id": "equipment_veilpiercer_s_monocle",
      "kind": "equipment",
      "level": 0,
      "name": "Veilpiercer's Monocle",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 2,
          "tag": "Translocation"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "helmet",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Translocation": {
          "range": 3
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Enchantment",
        "Translocation"
      ]
    },
    "equipment_venom_spitter_casque": {
      "asset": "tiles/items/equipment/venom_spitter_casque.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "venom_spitter_casque",
      "className": "VenomSpitterCasque",
      "description": "[Living] and [Nature] allies learn Venom Spit\nVenom Spit deals [4:minion_damage] [Poison] damage and inflicts [Poison] for [10:duration] turns\nVenom Spit has [3:range] range and a [3 turn:cooldown] cooldown",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "icon": "icons/runtime/equipment_venom_spitter_casque.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/venom_spitter_casque.png",
      "id": "equipment_venom_spitter_casque",
      "kind": "equipment",
      "level": 0,
      "name": "Venom Spitter Casque",
      "ownerTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "recipe": [
        {
          "amount": 2,
          "tag": "Nature"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Nature"
      ]
    },
    "equipment_venomancer_s_vial": {
      "asset": "tiles/items/equipment/venomancer's_vial.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "venomancer_s_vial",
      "className": "VenomancersVial",
      "description": "[Poisoned] enemies take [4:poison] additional [Poison] damage each turn",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_venomancer_s_vial.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/items/equipment/venomancers_vial.png",
      "id": "equipment_venomancer_s_vial",
      "kind": "equipment",
      "level": 0,
      "name": "Venomancer's Vial",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Dark"
        },
        {
          "amount": 2,
          "tag": "Nature"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Nature",
        "Dark"
      ]
    },
    "equipment_vial_of_ambrosia": {
      "asset": "tiles/items/equipment/vial_of_ambrosia.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "vial_of_ambrosia",
      "className": "VialOfAmbrosia",
      "description": "At the beginning of each level, gain immunity to [stun] effects for [10:duration] turns",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_vial_of_ambrosia.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/vial_of_ambrosia.png",
      "id": "equipment_vial_of_ambrosia",
      "kind": "equipment",
      "level": 0,
      "name": "Vial of Ambrosia",
      "ownerTriggers": [
        "<class 'Level.EventOnUnitAdded'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 1,
          "tag": "Holy"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Enchantment",
        "Holy"
      ]
    },
    "equipment_vile_dagger": {
      "asset": "tiles/items/equipment/vile_dagger.png",
      "augmentSummary": {
        "spellCount": 28
      },
      "baseId": "vile_dagger",
      "className": "VileDagger",
      "conditionalSummary": {
        "count": 16
      },
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_vile_dagger.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/vile_dagger.png",
      "id": "equipment_vile_dagger",
      "kind": "equipment",
      "level": 0,
      "name": "Vile Dagger",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Dark": {
          "damage": 3
        },
        "Nature": {
          "damage": 3
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Dark",
        "Nature"
      ]
    },
    "equipment_void_hunter_s_sigil": {
      "asset": "tiles/items/equipment/void_hunter's_sigil.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "void_hunter_s_sigil",
      "className": "RechargeOnKillEquipment",
      "description": "For every [Arcane:arcane] unit killed, one of your [Arcane] spells regains 1 charge\nAt the end of each level, a Rift containing [Arcane:arcane] enemies is created",
      "effectHighlights": [
        "can refund spell charges"
      ],
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDeath'>",
        "<class 'Level.EventOnLevelComplete'>"
      ],
      "icon": "icons/runtime/equipment_void_hunter_s_sigil.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/items/equipment/void_hunters_sigil.png",
      "id": "equipment_void_hunter_s_sigil",
      "kind": "equipment",
      "level": 0,
      "name": "Void Hunter's Sigil",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Arcane"
        },
        {
          "amount": 2,
          "tag": "Arcane"
        },
        {
          "amount": 6,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane"
      ]
    },
    "equipment_void_oculus": {
      "asset": "tiles/items/equipment/void_oculus.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "void_oculus",
      "className": "GenericOculusEquip",
      "description": "The first time an enemy takes [Dark:dark] or [Arcane:arcane] damage, it gets -25 [Dark:dark] and [Arcane:arcane] resist",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_void_oculus.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/void_oculus.png",
      "id": "equipment_void_oculus",
      "kind": "equipment",
      "level": 0,
      "name": "Void Oculus",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Dark",
        "Arcane"
      ]
    },
    "equipment_void_spike_stone": {
      "asset": "tiles/items/equipment/void_spike_stone.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "void_spike_stone",
      "className": "VoidSpikeStone",
      "description": "When you or one of your [Arcane] or [Undead] allies take damage from an enemy, deal [5:damage] [Arcane] damage to the enemy",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 40
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_void_spike_stone.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/void_spike_stone.png",
      "id": "equipment_void_spike_stone",
      "kind": "equipment",
      "level": 0,
      "name": "Void Spike Stone",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane"
      ]
    },
    "equipment_void_traveler_s_cloak": {
      "asset": "tiles/items/equipment/void_traveler's_cloak.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "void_traveler_s_cloak",
      "className": "VoidTravelersCloak",
      "conditionalSummary": {
        "count": 11
      },
      "description": "When you teleport, gain 2 [SH:shields]",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_void_traveler_s_cloak.png",
      "iconFallback": false,
      "iconMatch": "normalized",
      "iconSource": "tiles/items/equipment/void_travelers_cloak.png",
      "id": "equipment_void_traveler_s_cloak",
      "kind": "equipment",
      "level": 0,
      "name": "Void Traveler's Cloak",
      "ownerTriggers": [
        "<class 'Level.EventOnMoved'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 2,
          "tag": "Translocation"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {
        "Arcane": 25
      },
      "slot": "armor",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane",
        "Translocation"
      ]
    },
    "equipment_voidflame_lantern": {
      "asset": "tiles/items/equipment/voidflame_lantern.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "voidflame_lantern",
      "className": "VoidflameLantern",
      "description": "When you cast a [Fire] or [Arcane] spell, gain Starcharged with duration equal to the spell's level\nStarcharged deals [6:damage] [Arcane] damage to one random enemy in line of sight each turn, and then [6:damage] [Fire] damage to another",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_voidflame_lantern.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/voidflame_lantern.png",
      "id": "equipment_voidflame_lantern",
      "kind": "equipment",
      "level": 0,
      "name": "Voidflame Lantern",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Arcane"
        },
        {
          "amount": 1,
          "tag": "Eye"
        },
        {
          "amount": 1,
          "tag": "Fire"
        },
        {
          "amount": 1,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Arcane",
        "Eye",
        "Fire"
      ]
    },
    "equipment_volcanic_lance": {
      "asset": "tiles/items/equipment/volcanic_lance.png",
      "augmentSummary": {
        "spellCount": 19
      },
      "baseId": "volcanic_lance",
      "className": "VolcanicLance",
      "conditionalSummary": {
        "count": 12
      },
      "description": "When you cast a [Fire] spell targeting an enemy, send out a destructive beam toward the target\nThe beam destroys walls and deals [Fire] damage equal to your [Fire] mastery",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_volcanic_lance.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/Volcanic_Lance.png",
      "id": "equipment_volcanic_lance",
      "kind": "equipment",
      "level": 0,
      "name": "Volcanic Lance",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 2,
          "tag": "Fire"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Fire": {
          "range": 3
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Fire"
      ]
    },
    "equipment_voodoo_doll": {
      "asset": "tiles/items/equipment/voodoo_doll.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "voodoo_doll",
      "className": "VoodooDoll",
      "description": "At the beginning of each level, the [4:num_targets] enemies with the highest HP are [Voodoo Bound:blood]\nWhen you take damage, [Voodoo Bound:blood] enemies take that damage\nWhen you pay HP, [Voodoo Bound:blood] deals [Physical:physical] damage to enemies",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_voodoo_doll.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/voodoo_doll.png",
      "id": "equipment_voodoo_doll",
      "kind": "equipment",
      "level": 0,
      "name": "Voodoo Doll",
      "ownerTriggers": [
        "<class 'Level.EventOnUnitAdded'>",
        "<class 'Level.EventOnDamaged'>",
        "<class 'Level.EventOnSpendHP'>"
      ],
      "recipe": [
        {
          "amount": 1,
          "tag": "Blood"
        },
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Blood",
        "Enchantment"
      ]
    },
    "equipment_warlord_helm": {
      "asset": "tiles/items/equipment/warlord_helm.png",
      "augmentSummary": {
        "spellCount": 57
      },
      "baseId": "warlord_helm",
      "className": "WarlordCrown",
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {
        "minion_damage": 6
      },
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_warlord_helm.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/warlord_helm.png",
      "id": "equipment_warlord_helm",
      "kind": "equipment",
      "level": 0,
      "name": "Warlord Helm",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Conjuration"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "helmet",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Conjuration"
      ]
    },
    "equipment_warlord_vestments": {
      "asset": "tiles/items/equipment/warlord_vestments.png",
      "augmentSummary": {
        "spellCount": 56
      },
      "baseId": "warlord_vestments",
      "className": "WarlordVestments",
      "description": "",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {
        "minion_health": 8
      },
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_warlord_vestments.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/warlord_vestments.png",
      "id": "equipment_warlord_vestments",
      "kind": "equipment",
      "level": 0,
      "name": "Warlord Vestments",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Conjuration"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "armor",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Conjuration"
      ]
    },
    "equipment_wild_healing_staff": {
      "asset": "tiles/items/equipment/wild_healing_staff.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "wild_healing_staff",
      "className": "WildHealingStaff",
      "description": "When you cast a [Nature] spell, you and your [Living] allies heal [5 HP:heal]",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_wild_healing_staff.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/wild_healing_staff.png",
      "id": "equipment_wild_healing_staff",
      "kind": "equipment",
      "level": 0,
      "name": "Wild Healing Staff",
      "ownerTriggers": [
        "<class 'Level.EventOnSpellCast'>"
      ],
      "recipe": [
        {
          "amount": 3,
          "tag": "Nature"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Nature"
      ]
    },
    "equipment_winged_shoes": {
      "asset": "tiles/items/equipment/winged_shoes.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "winged_shoes",
      "className": "WingedBoots",
      "conditionalSummary": {
        "count": 11
      },
      "description": "Grants Flying",
      "effectHooks": [
        "on_applied"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [],
      "icon": "icons/runtime/equipment_winged_shoes.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/winged_shoes.png",
      "id": "equipment_winged_shoes",
      "kind": "equipment",
      "level": 0,
      "name": "Winged Shoes",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Enchantment"
        },
        {
          "amount": 2,
          "tag": "Translocation"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "boots",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Enchantment",
        "Translocation"
      ]
    },
    "equipment_winter_links": {
      "asset": "tiles/items/equipment/winter_links.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "winter_links",
      "className": "PrinceOfRuinLike",
      "description": "When an enemy dies to [Ice:ice] or [Dark:dark] damage, a random enemy in their line of sight within [3:radius] tiles takes [9:damage] damage of that type",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDeath'>"
      ],
      "icon": "icons/runtime/equipment_winter_links.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/winter_links.png",
      "id": "equipment_winter_links",
      "kind": "equipment",
      "level": 0,
      "name": "Winter Links",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Ice"
        },
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Ice",
        "Dark"
      ]
    },
    "equipment_wintersting": {
      "asset": "tiles/items/equipment/wintersting.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "wintersting",
      "className": "FreeCastStaff",
      "description": "For every 80 damage dealt to enemies by [Ice:ice] spells or equipment, cast Poison Sting on a random enemy\nDamage Dealt: 0",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_wintersting.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/wintersting.png",
      "id": "equipment_wintersting",
      "kind": "equipment",
      "level": 0,
      "name": "Wintersting",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Sorcery"
        },
        {
          "amount": 2,
          "tag": "Nature"
        },
        {
          "amount": 2,
          "tag": "Ice"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Sorcery",
        "Nature",
        "Ice"
      ]
    },
    "equipment_witching_hourglass": {
      "asset": "tiles/items/equipment/witching_hourglass.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "witching_hourglass",
      "className": "WitchingHourglass",
      "description": "When an enemy awakens from [sleep], summon a temporary Ghost near them",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'CommonContent.EventOnAwakened'>"
      ],
      "icon": "icons/runtime/equipment_witching_hourglass.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/witching_hourglass.png",
      "id": "equipment_witching_hourglass",
      "kind": "equipment",
      "level": 0,
      "name": "Witching Hourglass",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Conjuration",
        "Dark"
      ]
    },
    "equipment_woadwyrd": {
      "asset": "tiles/items/equipment/woadwyrd.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "woadwyrd",
      "className": "FreeCastStaff",
      "description": "For every 100 damage dealt to enemies by [Nature:nature] spells or equipment, cast Shadow Hex on a random enemy\nDamage Dealt: 0",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_woadwyrd.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/woadwyrd.png",
      "id": "equipment_woadwyrd",
      "kind": "equipment",
      "level": 0,
      "name": "Woadwyrd",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 2,
          "tag": "Dark"
        },
        {
          "amount": 2,
          "tag": "Enchantment"
        },
        {
          "amount": 2,
          "tag": "Nature"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "weapon",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Dark",
        "Enchantment",
        "Nature"
      ]
    },
    "equipment_wound_rot_amulet": {
      "asset": "tiles/items/equipment/wound_rot_amulet.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "wound_rot_amulet",
      "className": "WoundRotAmulet",
      "description": "Enemies receive [3:duration] turns of [poison] when they take [Physical] damage",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 1
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDamaged'>"
      ],
      "icon": "icons/runtime/equipment_wound_rot_amulet.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/wound_rot_amulet.png",
      "id": "equipment_wound_rot_amulet",
      "kind": "equipment",
      "level": 0,
      "name": "Wound Rot Amulet",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Dark"
        },
        {
          "amount": 1,
          "tag": "Nature"
        },
        {
          "amount": 4,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Dark",
        "Nature"
      ]
    },
    "equipment_wrath_links": {
      "asset": "tiles/items/equipment/wrath_links.png",
      "augmentSummary": {
        "spellCount": 0
      },
      "baseId": "wrath_links",
      "className": "PrinceOfRuinLike",
      "description": "When an enemy dies to [Holy:holy] or [Lightning:lightning] damage, a random enemy in their line of sight within [3:radius] tiles takes [9:damage] damage of that type",
      "effectHooks": [
        "on_advance"
      ],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDeath'>"
      ],
      "icon": "icons/runtime/equipment_wrath_links.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/wrath_links.png",
      "id": "equipment_wrath_links",
      "kind": "equipment",
      "level": 0,
      "name": "Wrath Links",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Holy"
        },
        {
          "amount": 1,
          "tag": "Lightning"
        },
        {
          "amount": 1,
          "tag": "Translocation"
        },
        {
          "amount": 2,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "trinket",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {},
      "tagBonusesPct": {},
      "tags": [
        "Holy",
        "Lightning"
      ]
    },
    "equipment_wyrm_spirit_armor": {
      "asset": "tiles/items/equipment/wyrm_spirit_armor.png",
      "augmentSummary": {
        "spellCount": 12
      },
      "baseId": "wyrm_spirit_armor",
      "className": "WyrmSpiritArmor",
      "conditionalSummary": {
        "count": 5
      },
      "description": "When one of your [Dragon] allies dies, gain 10% resistance to damage types matching their tags\nResets each level",
      "effectHooks": [],
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "globalBonuses": {},
      "globalBonusesPct": {},
      "globalTriggers": [
        "<class 'Level.EventOnDeath'>"
      ],
      "icon": "icons/runtime/equipment_wyrm_spirit_armor.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "tiles/items/equipment/wyrm_spirit_armor.png",
      "id": "equipment_wyrm_spirit_armor",
      "kind": "equipment",
      "level": 0,
      "name": "Wyrm Spirit Armor",
      "ownerTriggers": [],
      "recipe": [
        {
          "amount": 1,
          "tag": "Conjuration"
        },
        {
          "amount": 2,
          "tag": "Dragon"
        },
        {
          "amount": 1,
          "tag": "Holy"
        },
        {
          "amount": 3,
          "tag": "Any"
        }
      ],
      "resists": {},
      "slot": "armor",
      "spellBonuses": {},
      "spellBonusesPct": {},
      "tagBonuses": {
        "Dragon": {
          "max_charges": 2
        }
      },
      "tagBonusesPct": {},
      "tags": [
        "Dragon"
      ]
    },
    "monster_aelf": {
      "asset": "char/aelf.png",
      "attributes": {
        "flying": false,
        "max_hp": 18,
        "radius": 0,
        "shields": 1,
        "stationary": false
      },
      "baseId": "aelf",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Elf",
      "group": "normal",
      "icon": "icons/runtime/monster_aelf.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/aelf.png",
      "id": "monster_aelf",
      "kind": "monster",
      "level": 5,
      "maxLevel": null,
      "name": "Aelf",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 50,
        "Lightning": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 10,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 6,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 7,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Lightning Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_aelf.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_aelf.png",
      "tags": [
        "Living",
        "Lightning",
        "Dark"
      ]
    },
    "monster_aelf_lightning_artist": {
      "asset": "char/aelf_lightning_lord.png",
      "attributes": {
        "flying": false,
        "max_hp": 86,
        "radius": 0,
        "shields": 2,
        "stationary": false
      },
      "baseId": "aelf_lightning_artist",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "ElfLightningLord",
      "group": "normal",
      "icon": "icons/runtime/monster_aelf_lightning_artist.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/aelf_lightning_lord.png",
      "id": "monster_aelf_lightning_artist",
      "kind": "monster",
      "level": 7,
      "maxLevel": null,
      "name": "Aelf Lightning Artist",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 50,
        "Lightning": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 10,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 10,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 6,
            "requires_los": true
          },
          "className": "MonsterChainLightning",
          "description": "Chains to targets up to 3 tiles away",
          "name": "Chain Lightning",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_aelf_lightning_artist.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_aelf_lightning_artist.png",
      "tags": [
        "Living",
        "Lightning",
        "Dark"
      ]
    },
    "monster_aesir": {
      "asset": "char/aesir.png",
      "attributes": {
        "flying": false,
        "max_hp": 121,
        "radius": 0,
        "shields": 3,
        "stationary": false
      },
      "baseId": "aesir",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "Aesir",
      "group": "normal",
      "icon": "icons/runtime/monster_aesir.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/aesir.png",
      "id": "monster_aesir",
      "kind": "monster",
      "level": 8,
      "maxLevel": null,
      "name": "Aesir",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 75,
        "Holy": 100,
        "Lightning": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 29,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 4,
            "damage": 22,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 12,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Beam attack",
          "name": "Lightning Beam",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_aesir.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_aesir.png",
      "tags": [
        "Lightning",
        "Living",
        "Holy"
      ]
    },
    "monster_aether_spider": {
      "asset": "char/aether_spider.png",
      "attributes": {
        "flying": false,
        "max_hp": 14,
        "radius": 0,
        "shields": 1,
        "stationary": false
      },
      "baseId": "aether_spider",
      "buffs": [
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "SpiderBuff",
          "description": "",
          "name": "Unnamed buff"
        },
        {
          "asset": "tiles/buffs/passive_teleportation.png",
          "className": "TeleportyBuff",
          "description": "",
          "name": "Passive Teleportation"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "PhaseSpider",
      "group": "normal",
      "icon": "icons/runtime/monster_aether_spider.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/aether_spider.png",
      "id": "monster_aether_spider",
      "kind": "monster",
      "level": 5,
      "maxLevel": null,
      "name": "Aether Spider",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 100,
        "Ice": -50,
        "Physical": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 4,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Apply poison for 10 turns",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_aether_spider.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_aether_spider.png",
      "tags": [
        "Spider",
        "Living",
        "Arcane"
      ]
    },
    "monster_aether_spider_queen": {
      "asset": "char/aether_spider_mother.png",
      "attributes": {
        "flying": false,
        "max_hp": 96,
        "radius": 0,
        "shields": 3,
        "stationary": false
      },
      "baseId": "aether_spider_queen",
      "buffs": [
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "SpiderBuff",
          "description": "",
          "name": "Unnamed buff"
        },
        {
          "asset": "tiles/buffs/passive_teleportation.png",
          "className": "TeleportyBuff",
          "description": "",
          "name": "Passive Teleportation"
        },
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "GeneratorBuff",
          "description": "",
          "name": "Unnamed buff"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "PhaseSpiderQueen",
      "group": "normal",
      "icon": "icons/runtime/monster_aether_spider_queen.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/aether_spider_mother.png",
      "id": "monster_aether_spider_queen",
      "kind": "monster",
      "level": 7,
      "maxLevel": null,
      "name": "Aether Spider Queen",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 100,
        "Ice": -50,
        "Physical": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 32,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Apply poison for 10 turns",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_aether_spider_queen.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_aether_spider_queen.png",
      "tags": [
        "Spider",
        "Living",
        "Arcane"
      ]
    },
    "monster_angelic_visitor": {
      "asset": "char/angelic_visitor.png",
      "attributes": {
        "flying": true,
        "max_hp": 800,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "angelic_visitor",
      "buffs": [
        {
          "asset": "tiles/buffs/aura_of_haste.png",
          "className": "AuraOfHaste",
          "description": "Each turn, allies within 3 tiles take an extra turn\nDoes not affect Angelic Visitors",
          "name": "Aura of Haste"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "AngelicVisitor",
      "group": "normal",
      "icon": "icons/runtime/monster_angelic_visitor.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/angelic_visitor.png",
      "id": "monster_angelic_visitor",
      "kind": "monster",
      "level": 9,
      "maxLevel": null,
      "name": "Angelic Visitor",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": -100,
        "Fire": 100,
        "Holy": 100,
        "Physical": 100,
        "Poison": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 40,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 1,
            "range": 6,
            "requires_los": true
          },
          "className": "FalseProphetHolyBlast",
          "description": "Beam attack\nHeals allies",
          "name": "Heavenly Blast",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_angelic_visitor.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_angelic_visitor.png",
      "tags": [
        "Holy"
      ]
    },
    "monster_angrboda": {
      "asset": "char/angrboda.png",
      "attributes": {
        "flying": true,
        "max_hp": 350,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "angrboda",
      "buffs": [
        {
          "asset": "tiles/buffs/passive_teleportation.png",
          "className": "TeleportyBuff",
          "description": "",
          "name": "Passive Teleportation"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Angrboda",
      "group": "rare",
      "icon": "icons/runtime/monster_angrboda.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/angrboda.png",
      "id": "monster_angrboda",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Angrboda",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Arcane": 50,
        "Dark": 75,
        "Holy": -50,
        "Lightning": -50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 15,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 1,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon a Fenris",
          "name": "Summon Fenris",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 4,
            "damage": 10,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "HagDrain",
          "description": "Steals life from all [Living] units in line of sight",
          "name": "Life Siphon",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 9,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 6,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Apply hemorrhage for 3 turns",
          "name": "Hemorrhaging Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_angrboda.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_angrboda.png",
      "tags": [
        "Living",
        "Dark",
        "Arcane"
      ]
    },
    "monster_animated_armor": {
      "asset": "char/animated_armor.png",
      "attributes": {
        "flying": true,
        "max_hp": 50,
        "radius": 0,
        "shields": 1,
        "stationary": false
      },
      "baseId": "animated_armor",
      "buffs": [
        {
          "asset": "tiles/buffs/arcane_retaliation.png",
          "className": "RetaliationBuff",
          "description": [
            "On taking damage from an enemy, deal {damage} {dtype} damage to that enemy",
            {
              "damage": 1,
              "dtype": [
                "[{tag_label}:{tag_key}]",
                {
                  "tag_key": "arcane",
                  "tag_label": "Arcane"
                }
              ]
            }
          ],
          "name": "Arcane Retaliation"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "AnimatedArmor",
      "group": "normal",
      "icon": "icons/runtime/monster_animated_armor.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/animated_armor.png",
      "id": "monster_animated_armor",
      "kind": "monster",
      "level": 5,
      "maxLevel": null,
      "name": "Animated Armor",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 5,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Trample attack",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_animated_armor.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_animated_armor.png",
      "tags": [
        "Construct",
        "Metallic",
        "Arcane"
      ]
    },
    "monster_animated_knight": {
      "asset": "char/animated_knight.png",
      "attributes": {
        "flying": false,
        "max_hp": 75,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "animated_knight",
      "buffs": [
        {
          "asset": "tiles/buffs/shield_regeneration.png",
          "className": "ShieldRegenBuff",
          "description": "",
          "name": "Shield Regeneration"
        },
        {
          "asset": "tiles/buffs/arcane_retaliation.png",
          "className": "RetaliationBuff",
          "description": [
            "On taking damage from an enemy, deal {damage} {dtype} damage to that enemy",
            {
              "damage": 1,
              "dtype": [
                "[{tag_label}:{tag_key}]",
                {
                  "tag_key": "arcane",
                  "tag_label": "Arcane"
                }
              ]
            }
          ],
          "name": "Arcane Retaliation"
        },
        {
          "asset": "tiles/buffs/summon_on_death.png",
          "className": "SpawnOnDeath",
          "description": "",
          "name": "Summon On Death"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "AnimatedKnight",
      "group": "normal",
      "icon": "icons/runtime/monster_animated_knight.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/animated_knight.png",
      "id": "monster_animated_knight",
      "kind": "monster",
      "level": 7,
      "maxLevel": null,
      "name": "Animated Knight",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 12,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "On hit, push the target 2 tiles",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_animated_knight.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_animated_knight.png",
      "tags": [
        "Construct",
        "Metallic",
        "Arcane"
      ]
    },
    "monster_animikii": {
      "asset": "char/thundergod.png",
      "attributes": {
        "flying": true,
        "max_hp": 800,
        "radius": 1,
        "shields": 20,
        "stationary": false
      },
      "baseId": "animikii",
      "buffs": [
        {
          "asset": "tiles/buffs/lightning_caller.png",
          "className": "LightningCaller",
          "description": "When a unit takes [Lightning] damage, create a Storm Cloud near them",
          "name": "Lightning Caller"
        },
        {
          "asset": "tiles/buffs/lightning_vengeance.png",
          "className": "LightningVengeance",
          "description": [
            "If any Storm Clouds are in line of sight of an ally's death, one of them shoots a {damage} damage Lightning strike at the closest enemy in sight",
            {
              "damage": 7
            }
          ],
          "name": "Lightning Vengeance"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Animikii",
      "group": "rare",
      "icon": "icons/runtime/monster_animikii.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/thundergod.png",
      "id": "monster_animikii",
      "kind": "monster",
      "level": 3,
      "maxLevel": 1,
      "name": "Animikii",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Lightning": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 15,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 4,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon 4 Thunderbirds",
          "name": "Gather Flock",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "damage": 20,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 12,
            "requires_los": true
          },
          "className": "WideBeam",
          "description": "Deals damage in a wide beam",
          "name": "Lightning Blast",
          "tags": [
            "Lightning"
          ]
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 27,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Lightning God Talons",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 4,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_animikii.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 4,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_animikii.png",
      "tags": [
        "Living",
        "Nature",
        "Lightning"
      ]
    },
    "monster_annihilation_goo": {
      "asset": "char/annihilation_goo.png",
      "attributes": {
        "flying": false,
        "max_hp": 190,
        "radius": 0,
        "shields": 3,
        "stationary": true
      },
      "baseId": "annihilation_goo",
      "buffs": [
        {
          "asset": "tiles/buffs/arcane_aura.png",
          "className": "DamageAuraBuff",
          "description": "",
          "name": "Arcane Aura"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "AnnihilationGoo",
      "group": "normal",
      "icon": "icons/runtime/monster_annihilation_goo.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/annihilation_goo.png",
      "id": "monster_annihilation_goo",
      "kind": "monster",
      "level": 8,
      "maxLevel": null,
      "name": "Annihilation Goo",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 100,
        "Dark": 75,
        "Fire": 25,
        "Ice": -50,
        "Lightning": 25,
        "Physical": 50,
        "Poison": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 4,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 100,
            "requires_los": true
          },
          "className": "MonsterTeleport",
          "description": "Teleports to a random tile in line of sight",
          "name": "Teleport",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 2,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 9,
            "requires_los": true
          },
          "className": "PullAttack",
          "description": "Pull the target 1 tile toward the caster",
          "name": "Tongue Lash",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_annihilation_goo.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_annihilation_goo.png",
      "tags": [
        "Arcane",
        "Slime"
      ]
    },
    "monster_arachnid_wizard": {
      "asset": "char/arachnid_wizard.png",
      "attributes": {
        "flying": false,
        "max_hp": 88,
        "radius": 0,
        "shields": 8,
        "stationary": false
      },
      "baseId": "arachnid_wizard",
      "buffs": [
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "SpiderBuff",
          "description": "",
          "name": "Unnamed buff"
        },
        {
          "asset": "tiles/buffs/passive_teleportation.png",
          "className": "TeleportyBuff",
          "description": "",
          "name": "Passive Teleportation"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "ArachnidWizard",
      "group": "rare",
      "icon": "icons/runtime/monster_arachnid_wizard.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/arachnid_wizard.png",
      "id": "monster_arachnid_wizard",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Arachnid Wizard",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Arcane": 100,
        "Physical": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 13,
            "hp_cost": 0,
            "level": 4,
            "max_charges": 0,
            "melee": false,
            "minion_damage": 1,
            "minion_duration": 15,
            "minion_health": 10,
            "quick_cast": false,
            "range": 5,
            "requires_los": true
          },
          "className": "PrisonOfThorns",
          "description": "Summon temporary Fae Thorns surrounding a connected group of enemies",
          "name": "Prison of Thorns",
          "tags": [
            "Arcane",
            "Conjuration",
            "Nature"
          ]
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 3,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 8,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Apply poison for 10 turns\n\n\nDrains a spell charge",
          "name": "Neurotoxin",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 4,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Apply poison for 10 turns",
          "name": "Spider Bite",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_arachnid_wizard.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_arachnid_wizard.png",
      "tags": [
        "Spider",
        "Living",
        "Arcane"
      ]
    },
    "monster_arbiter": {
      "asset": "char/holy_eye.png",
      "attributes": {
        "flying": true,
        "max_hp": 80,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "arbiter",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "Arbiter",
      "group": "normal",
      "icon": "icons/runtime/monster_arbiter.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/holy_eye.png",
      "id": "monster_arbiter",
      "kind": "monster",
      "level": 9,
      "maxLevel": null,
      "name": "Arbiter",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Holy": 100,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 12,
            "requires_los": true
          },
          "className": "WideBeam",
          "description": "Deals damage in a wide beam",
          "name": "Arbiter Gaze",
          "tags": [
            "Holy"
          ]
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_arbiter.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_arbiter.png",
      "tags": [
        "Holy",
        "Eye"
      ]
    },
    "monster_arcane_blacksmith": {
      "asset": "char/arcane_blacksmith.png",
      "attributes": {
        "flying": false,
        "max_hp": 75,
        "radius": 0,
        "shields": 0,
        "stationary": true
      },
      "baseId": "arcane_blacksmith",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "ArcaneBlacksmith",
      "group": "rare",
      "icon": "icons/runtime/monster_arcane_blacksmith.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/arcane_blacksmith.png",
      "id": "monster_arcane_blacksmith",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Arcane Blacksmith",
      "rare": true,
      "rareExtra": [
        "Metallic"
      ],
      "resists": {
        "Lightning": 0
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 5,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 1,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon a Dancing Blade",
          "name": "Forge Blade",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 5,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 1,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon a Sentient Shield",
          "name": "Forge Shield",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 5,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 1,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon a Animated Armor",
          "name": "Forge Armor",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_arcane_blacksmith.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_arcane_blacksmith.png",
      "tags": [
        "Arcane",
        "Metallic"
      ]
    },
    "monster_arch_fiend": {
      "asset": "char/arch_fiend.png",
      "attributes": {
        "flying": true,
        "max_hp": 666,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "arch_fiend",
      "buffs": [
        {
          "asset": "tiles/buffs/cursed_blood.png",
          "className": "DeathCurseRetaliation",
          "description": "",
          "name": "Cursed Blood"
        },
        {
          "asset": "status/heal.png",
          "className": "RegenBuff",
          "description": "",
          "name": "Regeneration"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "ArchFiend",
      "group": "normal",
      "icon": "icons/runtime/monster_arch_fiend.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/arch_fiend.png",
      "id": "monster_arch_fiend",
      "kind": "monster",
      "level": 9,
      "maxLevel": null,
      "name": "Arch Fiend",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 100,
        "Fire": 100,
        "Physical": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 20,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 2,
            "range": 7,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Inflicts [necrosis] on enemies",
          "name": "Hellfire Blast",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_arch_fiend.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_arch_fiend.png",
      "tags": [
        "Demon",
        "Blood",
        "Chaos"
      ]
    },
    "monster_archon_purifier": {
      "asset": "char/archon_of_purity.png",
      "attributes": {
        "flying": true,
        "max_hp": 77,
        "radius": 0,
        "shields": 12,
        "stationary": false
      },
      "baseId": "archon_purifier",
      "buffs": [
        {
          "asset": "tiles/buffs/purifier_aura.png",
          "className": "DamageAuraBuff",
          "description": "",
          "name": "Purifier Aura"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "ArchonPurifier",
      "group": "normal",
      "icon": "icons/runtime/monster_archon_purifier.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/archon_of_purity.png",
      "id": "monster_archon_purifier",
      "kind": "monster",
      "level": 8,
      "maxLevel": null,
      "name": "Archon Purifier",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Fire": 100,
        "Holy": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 14,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 7,
            "requires_los": true
          },
          "className": "ArchonHolyBeam",
          "description": "Beam attack\nHeals and shields allies",
          "name": "Archon Beam",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_archon_purifier.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_archon_purifier.png",
      "tags": [
        "Holy"
      ]
    },
    "monster_armored_goblin": {
      "asset": "char/goblin_armored.png",
      "attributes": {
        "flying": false,
        "max_hp": 16,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "armored_goblin",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "GoblinArmored",
      "group": "normal",
      "icon": "icons/runtime/monster_armored_goblin.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/goblin_armored.png",
      "id": "monster_armored_goblin",
      "kind": "monster",
      "level": 2,
      "maxLevel": null,
      "name": "Armored Goblin",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Ice": 0,
        "Lightning": -50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 7,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_armored_goblin.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_armored_goblin.png",
      "tags": [
        "Living",
        "Metallic"
      ]
    },
    "monster_armored_ogre": {
      "asset": "char/armored_ogre.png",
      "attributes": {
        "flying": false,
        "max_hp": 65,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "armored_ogre",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "ArmoredOgre",
      "group": "normal",
      "icon": "icons/runtime/monster_armored_ogre.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/armored_ogre.png",
      "id": "monster_armored_ogre",
      "kind": "monster",
      "level": 5,
      "maxLevel": null,
      "name": "Armored Ogre",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 25,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Apply stunned for 1 turn",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_armored_ogre.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_armored_ogre.png",
      "tags": [
        "Living",
        "Metallic"
      ]
    },
    "monster_armored_polar_bear": {
      "asset": "char/polar_bear_armored.png",
      "attributes": {
        "flying": false,
        "max_hp": 75,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "armored_polar_bear",
      "buffs": [
        {
          "asset": "tiles/buffs/icy_metabolism.png",
          "className": "IcyMetabolism",
          "description": "",
          "name": "Icy Metabolism"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "ArmoredPolarBear",
      "group": "normal",
      "icon": "icons/runtime/monster_armored_polar_bear.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/polar_bear_armored.png",
      "id": "monster_armored_polar_bear",
      "kind": "monster",
      "level": 5,
      "maxLevel": null,
      "name": "Armored Polar Bear",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Fire": -50,
        "Ice": 50,
        "Lightning": -50,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 9,
            "duration": 4,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "Hibernate",
          "description": "[Freeze] caster for 4 turns",
          "name": "Hibernate",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 10,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Attacks 2 times",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_armored_polar_bear.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_armored_polar_bear.png",
      "tags": [
        "Living",
        "Nature",
        "Ice",
        "Metallic"
      ]
    },
    "monster_ash_fiend": {
      "asset": "char/fiend_ash.png",
      "attributes": {
        "flying": false,
        "max_hp": 166,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "ash_fiend",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "AshFiend",
      "group": "normal",
      "icon": "icons/runtime/monster_ash_fiend.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/fiend_ash.png",
      "id": "monster_ash_fiend",
      "kind": "monster",
      "level": 8,
      "maxLevel": null,
      "name": "Ash Fiend",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Fire": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 7,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 3,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon 3 Ash Imps",
          "name": "Summon Ash Imps",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 2,
            "damage": 7,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 3,
            "range": 6,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Apply blind for 1 turn",
          "name": "Ash Blast",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 2,
            "damage": 5,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 6,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Beam attack",
          "name": "Dark Beam",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_ash_fiend.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_ash_fiend.png",
      "tags": [
        "Fire",
        "Demon"
      ]
    },
    "monster_avian_wizard": {
      "asset": "char/avian_wizard.png",
      "attributes": {
        "flying": true,
        "max_hp": 64,
        "radius": 0,
        "shields": 3,
        "stationary": false
      },
      "baseId": "avian_wizard",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "AvianWizard",
      "group": "rare",
      "icon": "icons/runtime/monster_avian_wizard.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/avian_wizard.png",
      "id": "monster_avian_wizard",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Avian Wizard",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Holy": 100,
        "Lightning": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 18,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 3,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon 3 Thunderbirds",
          "name": "Summon Thunderbirds",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 6,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 12,
            "requires_los": false
          },
          "className": "MonsterTeleport",
          "description": "Teleports to a random location",
          "name": "Ride the Wind",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 4,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 9,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Creates Storm Clouds near the target",
          "name": "Storm Strike",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_avian_wizard.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_avian_wizard.png",
      "tags": [
        "Living",
        "Nature",
        "Lightning"
      ]
    },
    "monster_bad_apple": {
      "asset": "char/bad_apple.png",
      "attributes": {
        "flying": true,
        "max_hp": 25,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "bad_apple",
      "buffs": [
        {
          "asset": "tiles/buffs/poisonous_aura.png",
          "className": "DamageAuraBuff",
          "description": "",
          "name": "Poisonous Aura"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "BadApple",
      "group": "rare",
      "icon": "icons/runtime/monster_bad_apple.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/bad_apple.png",
      "id": "monster_bad_apple",
      "kind": "monster",
      "level": 1,
      "maxLevel": 4,
      "name": "Bad Apple",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Dark": 100,
        "Poison": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 5,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Apply poison for 10 turns",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_bad_apple.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_bad_apple.png",
      "tags": [
        "Nature",
        "Dark"
      ]
    },
    "monster_bag_of_bugs": {
      "asset": "char/bag_of_bugs.png",
      "attributes": {
        "flying": false,
        "max_hp": 16,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "bag_of_bugs",
      "buffs": [
        {
          "asset": "tiles/buffs/summon_on_death.png",
          "className": "SpawnOnDeath",
          "description": "",
          "name": "Summon On Death"
        },
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "GeneratorBuff",
          "description": "",
          "name": "Unnamed buff"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "BagOfBugs",
      "group": "normal",
      "icon": "icons/runtime/monster_bag_of_bugs.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/bag_of_bugs.png",
      "id": "monster_bag_of_bugs",
      "kind": "monster",
      "level": 4,
      "maxLevel": null,
      "name": "Bag of Bugs",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 50,
        "Fire": -100,
        "Physical": 25
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 4,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_bag_of_bugs.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_bag_of_bugs.png",
      "tags": [
        "Dark",
        "Construct"
      ]
    },
    "monster_bark_lord": {
      "asset": "char/bark_lord.png",
      "attributes": {
        "flying": false,
        "max_hp": 95,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "bark_lord",
      "buffs": [
        {
          "asset": "status/heal.png",
          "className": "RegenBuff",
          "description": "",
          "name": "Regeneration"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "BarkLord",
      "group": "normal",
      "icon": "icons/runtime/monster_bark_lord.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/bark_lord.png",
      "id": "monster_bark_lord",
      "kind": "monster",
      "level": 6,
      "maxLevel": null,
      "name": "Bark Lord",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Fire": -100,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 15,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 3,
            "quick_cast": false,
            "radius": 5,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon 3 Vines",
          "name": "Summon Vines",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 10,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 5,
            "requires_los": true
          },
          "className": "WizardSwap",
          "description": "Swap places with a random [Nature:nature] unit",
          "name": "Life Swap",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 22,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_bark_lord.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_bark_lord.png",
      "tags": [
        "Nature",
        "Living"
      ]
    },
    "monster_bat": {
      "asset": "char/bat.png",
      "attributes": {
        "flying": true,
        "max_hp": 4,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "bat",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Bat",
      "group": "normal",
      "icon": "icons/runtime/monster_bat.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/bat.png",
      "id": "monster_bat",
      "kind": "monster",
      "level": 1,
      "maxLevel": null,
      "name": "Bat",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 2,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_bat.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_bat.png",
      "tags": [
        "Living",
        "Dark"
      ]
    },
    "monster_bat_dragon": {
      "asset": "char/bat_dragon.png",
      "attributes": {
        "flying": true,
        "max_hp": 38,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "bat_dragon",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "BatDragon",
      "group": "rare",
      "icon": "icons/runtime/monster_bat_dragon.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/bat_dragon.png",
      "id": "monster_bat_dragon",
      "kind": "monster",
      "level": 1,
      "maxLevel": 4,
      "name": "Bat Dragon",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Dark": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "damage": 7,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 5,
            "requires_los": true
          },
          "className": "BatBreath",
          "description": "Cone attack\nSummons Bats in empty tiles",
          "name": "Torrent of Bats",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_bat_dragon.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_bat_dragon.png",
      "tags": [
        "Dragon",
        "Living",
        "Dark"
      ]
    },
    "monster_black_rider": {
      "asset": "char/black_horseman.png",
      "attributes": {
        "flying": false,
        "max_hp": 374,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "black_rider",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "BlackRider",
      "group": "rare",
      "icon": "icons/runtime/monster_black_rider.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/black_horseman.png",
      "id": "monster_black_rider",
      "kind": "monster",
      "level": 3,
      "maxLevel": 1,
      "name": "Black Rider",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Dark": 100,
        "Holy": 100,
        "Poison": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 20,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 50,
            "requires_los": false
          },
          "className": "MonsterTeleport",
          "description": "Teleport to a random tile",
          "name": "Teleport",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 4,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "TideOfRot",
          "description": "Inflict 4 turns of [poison] and [necrosis] on enemies in line of sight",
          "name": "Tide of Rot",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 4,
            "damage": 1,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "TideOfSin",
          "description": "Damages enemies in line of sight\nDrains a spell charge",
          "name": "Tide of Sin",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 7,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 9,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Dark Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_black_rider.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_black_rider.png",
      "tags": [
        "Holy",
        "Demon"
      ]
    },
    "monster_blightmonger": {
      "asset": "char/3x3_necro_dragon.png",
      "attributes": {
        "flying": true,
        "max_hp": 4781,
        "radius": 1,
        "shields": 0,
        "stationary": false
      },
      "baseId": "blightmonger",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Blightmonger",
      "group": "rare",
      "icon": "icons/runtime/monster_blightmonger.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/3x3_necro_dragon.png",
      "id": "monster_blightmonger",
      "kind": "monster",
      "level": 3,
      "maxLevel": 1,
      "name": "Blightmonger",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Dark": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "damage": 24,
            "duration": 25,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 10,
            "requires_los": true
          },
          "className": "NecroticBreath",
          "description": "Cone attack\nApplies [necrosis] for [25:duration] turns",
          "name": "Necrotic Breath",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 32,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Apply necrosis for 25 turns\n\n\nHeals for damage dealt",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 4,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_blightmonger.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 4,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_blightmonger.png",
      "tags": [
        "Dragon",
        "Dark"
      ]
    },
    "monster_blizzard_beast": {
      "asset": "char/blizzard_beast.png",
      "attributes": {
        "flying": false,
        "max_hp": 36,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "blizzard_beast",
      "buffs": [
        {
          "asset": "tiles/buffs/ice_spores.png",
          "className": "BlizzardBeastBuff",
          "description": "When damaged, create 2 Blizzards up to 2 tiles away",
          "name": "Ice Spores"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "BlizzardBeast",
      "group": "normal",
      "icon": "icons/runtime/monster_blizzard_beast.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/blizzard_beast.png",
      "id": "monster_blizzard_beast",
      "kind": "monster",
      "level": 4,
      "maxLevel": null,
      "name": "Blizzard Beast",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Fire": -50,
        "Ice": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_blizzard_beast.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_blizzard_beast.png",
      "tags": [
        "Living",
        "Nature",
        "Ice"
      ]
    },
    "monster_blood_bear": {
      "asset": "char/blood_bear.png",
      "attributes": {
        "flying": false,
        "max_hp": 75,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "blood_bear",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "BloodBear",
      "group": "normal",
      "icon": "icons/runtime/monster_blood_bear.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/blood_bear.png",
      "id": "monster_blood_bear",
      "kind": "monster",
      "level": 5,
      "maxLevel": null,
      "name": "Blood Bear",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 10,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Attacks 2 times\n\n\nOn hit, gain +2 damage for 10 turns",
          "name": "Frenzy Claw",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_blood_bear.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_blood_bear.png",
      "tags": [
        "Nature",
        "Demon",
        "Blood"
      ]
    },
    "monster_blood_hound": {
      "asset": "char/blood_wolf.png",
      "attributes": {
        "flying": false,
        "max_hp": 19,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "blood_hound",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Bloodhound",
      "group": "normal",
      "icon": "icons/runtime/monster_blood_hound.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/blood_wolf.png",
      "id": "monster_blood_hound",
      "kind": "monster",
      "level": 5,
      "maxLevel": null,
      "name": "Blood Hound",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 6,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "On hit, gain +2 damage for 10 turns",
          "name": "Frenzy Bite",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 6,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 3,
            "requires_los": true
          },
          "className": "LeapAttack",
          "description": "Leap attack",
          "name": "Pounce",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_blood_hound.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_blood_hound.png",
      "tags": [
        "Demon",
        "Nature",
        "Blood"
      ]
    },
    "monster_blood_knight": {
      "asset": "char/blood_knight.png",
      "attributes": {
        "flying": false,
        "max_hp": 200,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "blood_knight",
      "buffs": [
        {
          "asset": "tiles/buffs/blood_amalgam.png",
          "className": "MonsterGrowthBuff",
          "description": [
            "On dealing damage, ",
            [
              "gain [{health}:minion_health] max HP and [{damage}:minion_damage] damage to spells",
              {
                "damage": 1,
                "health": 1
              }
            ]
          ],
          "name": "Blood Amalgam"
        },
        {
          "asset": "tiles/buffs/thorns.png",
          "className": "Thorns",
          "description": [
            "Deal {damage} {dtype} damage to melee attackers",
            {
              "damage": 1,
              "dtype": [
                "[{tag_label}:{tag_key}]",
                {
                  "tag_key": "dark",
                  "tag_label": "Dark"
                }
              ]
            }
          ],
          "name": "Thorns"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "BloodKnight",
      "group": "normal",
      "icon": "icons/runtime/monster_blood_knight.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/blood_knight.png",
      "id": "monster_blood_knight",
      "kind": "monster",
      "level": 7,
      "maxLevel": null,
      "name": "Blood Knight",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 6,
            "damage": 3,
            "duration": 3,
            "hp_cost": 0,
            "level": 1,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 3,
            "requires_los": true
          },
          "className": "LifedrainSpell",
          "description": "Deal [3:damage] [Dark] damage to the target each turn\nHeals the caster for damage dealt\nLasts [3:duration] turns",
          "name": "Lifedrain",
          "tags": [
            "Blood",
            "Dark",
            "Enchantment"
          ]
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Attacks 2 times\n\n\nHeals for damage dealt",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_blood_knight.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_blood_knight.png",
      "tags": [
        "Blood",
        "Living"
      ]
    },
    "monster_blood_magus": {
      "asset": "char/blood_wizard.png",
      "attributes": {
        "flying": false,
        "max_hp": 350,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "blood_magus",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "BloodWizard",
      "group": "rare",
      "icon": "icons/runtime/monster_blood_magus.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/blood_wizard.png",
      "id": "monster_blood_magus",
      "kind": "monster",
      "level": 3,
      "maxLevel": 1,
      "name": "Blood Magus",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Dark": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 13,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 2,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon 2 Blood Hounds",
          "name": "Summon Blood Hounds",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 15,
            "duration": 5,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "MassBloodrageSpell",
          "description": "Allies gain +7 spell damage for 5 turns",
          "name": "Mass Bloodrage",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 5,
            "damage": 3,
            "duration": 9,
            "hp_cost": 0,
            "level": 1,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 8,
            "requires_los": true
          },
          "className": "LifedrainSpell",
          "description": "Deal [3:damage] [Dark] damage to the target each turn\nHeals the caster for damage dealt\nLasts [9:duration] turns",
          "name": "Lifedrain",
          "tags": [
            "Blood",
            "Dark",
            "Enchantment"
          ]
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 6,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Beam attack",
          "name": "Bone Spear",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_blood_magus.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_blood_magus.png",
      "tags": [
        "Blood",
        "Dark"
      ]
    },
    "monster_blood_slime": {
      "asset": "char/blood_slime.png",
      "attributes": {
        "flying": false,
        "max_hp": 10,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "blood_slime",
      "buffs": [
        {
          "asset": "tiles/buffs/slime_growth.png",
          "className": "SlimeBuff",
          "description": [
            "Each turn, {chance}% chance to heal for 10% of original max HP\nExcess raises max HP\nAt double original max HP, split into 2 {spawn}",
            {
              "chance": 50,
              "spawn": "slimes"
            }
          ],
          "name": "Slime Growth"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "BloodSlime",
      "group": "normal",
      "icon": "icons/runtime/monster_blood_slime.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/blood_slime.png",
      "id": "monster_blood_slime",
      "kind": "monster",
      "level": 4,
      "maxLevel": null,
      "name": "Blood Slime",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 100,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Heals for damage dealt",
          "name": "Melee Attack",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 3,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Heals for damage dealt",
          "name": "Dark Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_blood_slime.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_blood_slime.png",
      "tags": [
        "Slime",
        "Blood"
      ]
    },
    "monster_boggart": {
      "asset": "char/boggart.png",
      "attributes": {
        "flying": false,
        "max_hp": 6,
        "radius": 0,
        "shields": 1,
        "stationary": false
      },
      "baseId": "boggart",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Boggart",
      "group": "normal",
      "icon": "icons/runtime/monster_boggart.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/boggart.png",
      "id": "monster_boggart",
      "kind": "monster",
      "level": 2,
      "maxLevel": null,
      "name": "Boggart",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 4,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_boggart.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_boggart.png",
      "tags": [
        "Living",
        "Nature",
        "Arcane"
      ]
    },
    "monster_boggart_assassin": {
      "asset": "char/boggart_assassin.png",
      "attributes": {
        "flying": false,
        "max_hp": 18,
        "radius": 0,
        "shields": 2,
        "stationary": false
      },
      "baseId": "boggart_assassin",
      "buffs": [
        {
          "asset": "status/quickmove.png",
          "className": "QuickmoveBuff",
          "description": "",
          "name": "Quickstep"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "BoggartAssassin",
      "group": "normal",
      "icon": "icons/runtime/monster_boggart_assassin.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/boggart_assassin.png",
      "id": "monster_boggart_assassin",
      "kind": "monster",
      "level": 4,
      "maxLevel": null,
      "name": "Boggart Assassin",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 2,
            "damage": 4,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Apply poison for 10 turns\n\n\nAttacks 2 times",
          "name": "Poison Stab",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 4,
            "duration": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 2,
            "range": 0,
            "requires_los": true
          },
          "className": "SmokeBomb",
          "description": "Blind nearby units, teleport up to 10 tiles away\nFlees while on cooldown",
          "name": "Blinding Powder",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 4,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 3,
            "requires_los": true
          },
          "className": "LeapAttack",
          "description": "Leap attack",
          "name": "Lunge",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_boggart_assassin.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_boggart_assassin.png",
      "tags": [
        "Living",
        "Nature",
        "Arcane"
      ]
    },
    "monster_bone_colossus": {
      "asset": "char/3x3_bone_shambler.png",
      "attributes": {
        "flying": false,
        "max_hp": 2304,
        "radius": 1,
        "shields": 0,
        "stationary": false
      },
      "baseId": "bone_colossus",
      "buffs": [
        {
          "asset": "tiles/buffs/summon_on_death.png",
          "className": "SpawnOnDeath",
          "description": "",
          "name": "Summon On Death"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "GiantBoneShambler",
      "group": "rare",
      "icon": "icons/runtime/monster_bone_colossus.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/3x3_bone_shambler.png",
      "id": "monster_bone_colossus",
      "kind": "monster",
      "level": 3,
      "maxLevel": 1,
      "name": "Bone Colossus",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Dark": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 64,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 4,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_bone_colossus.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 4,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_bone_colossus.png",
      "tags": [
        "Undead"
      ]
    },
    "monster_bone_king": {
      "asset": "char/bone_king.png",
      "attributes": {
        "flying": false,
        "max_hp": 260,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "bone_king",
      "buffs": [
        {
          "asset": "tiles/buffs/death_eater.png",
          "className": "DeathEaterBuff",
          "description": "When an [Undead] ally dies, gain a stack of Bloodrage",
          "name": "Death Eater"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "BoneKing",
      "group": "normal",
      "icon": "icons/runtime/monster_bone_king.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/bone_king.png",
      "id": "monster_bone_king",
      "kind": "monster",
      "level": 7,
      "maxLevel": null,
      "name": "Bone King",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 12,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 3,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon 3 Bone Knight Archers",
          "name": "Call Reinforcements",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 9,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Apply bleed for 3 turns\n\n\nAttacks 2 times",
          "name": "Bone Blades",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_bone_king.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_bone_king.png",
      "tags": [
        "Undead",
        "Dark"
      ]
    },
    "monster_bone_knight": {
      "asset": "char/bone_knight.png",
      "attributes": {
        "flying": false,
        "max_hp": 40,
        "radius": 0,
        "shields": 1,
        "stationary": false
      },
      "baseId": "bone_knight",
      "buffs": [
        {
          "asset": "tiles/buffs/thorns.png",
          "className": "Thorns",
          "description": [
            "Deal {damage} {dtype} damage to melee attackers",
            {
              "damage": 1,
              "dtype": [
                "[{tag_label}:{tag_key}]",
                {
                  "tag_key": "physical",
                  "tag_label": "Physical"
                }
              ]
            }
          ],
          "name": "Thorns"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "BoneKnight",
      "group": "normal",
      "icon": "icons/runtime/monster_bone_knight.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/bone_knight.png",
      "id": "monster_bone_knight",
      "kind": "monster",
      "level": 5,
      "maxLevel": null,
      "name": "Bone Knight",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 9,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Apply bleed for 3 turns",
          "name": "Bone Blade",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_bone_knight.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_bone_knight.png",
      "tags": [
        "Undead",
        "Dark"
      ]
    },
    "monster_bone_knight_archer": {
      "asset": "char/bone_knight_archer.png",
      "attributes": {
        "flying": false,
        "max_hp": 25,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "bone_knight_archer",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "BoneKnightArcher",
      "group": "normal",
      "icon": "icons/runtime/monster_bone_knight_archer.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/bone_knight_archer.png",
      "id": "monster_bone_knight_archer",
      "kind": "monster",
      "level": 6,
      "maxLevel": null,
      "name": "Bone Knight Archer",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 6,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Apply bleed for 3 turns",
          "name": "Bone Arrow",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_bone_knight_archer.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_bone_knight_archer.png",
      "tags": [
        "Undead",
        "Dark"
      ]
    },
    "monster_bone_shambler": {
      "asset": "char/bone_shambler.png",
      "attributes": {
        "flying": false,
        "max_hp": 32,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "bone_shambler",
      "buffs": [
        {
          "asset": "tiles/buffs/splitting.png",
          "className": "SplittingBuff",
          "description": "",
          "name": "Splitting"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "BoneShambler",
      "group": "normal",
      "icon": "icons/runtime/monster_bone_shambler.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/bone_shambler.png",
      "id": "monster_bone_shambler",
      "kind": "monster",
      "level": 4,
      "maxLevel": null,
      "name": "Bone Shambler",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_bone_shambler.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_bone_shambler.png",
      "tags": [
        "Undead"
      ]
    },
    "monster_bone_shambler_megalith": {
      "asset": "char/bone_shambler_megalith.png",
      "attributes": {
        "flying": false,
        "max_hp": 256,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "bone_shambler_megalith",
      "buffs": [
        {
          "asset": "tiles/buffs/splitting.png",
          "className": "SplittingBuff",
          "description": "",
          "name": "Splitting"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "BoneShamblerMegalith",
      "group": "normal",
      "icon": "icons/runtime/monster_bone_shambler_megalith.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/bone_shambler_megalith.png",
      "id": "monster_bone_shambler_megalith",
      "kind": "monster",
      "level": 9,
      "maxLevel": null,
      "name": "Bone Shambler Megalith",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 64,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_bone_shambler_megalith.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_bone_shambler_megalith.png",
      "tags": [
        "Undead"
      ]
    },
    "monster_bone_wizard": {
      "asset": "char/bone_wizard.png",
      "attributes": {
        "flying": false,
        "max_hp": 54,
        "radius": 0,
        "shields": 1,
        "stationary": false
      },
      "baseId": "bone_wizard",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "BoneWizard",
      "group": "rare",
      "icon": "icons/runtime/monster_bone_wizard.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/bone_wizard.png",
      "id": "monster_bone_wizard",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Bone Wizard",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Arcane": 50,
        "Dark": 100,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 32,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 16,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon 16 Bone Shambler Fragments\n at random locations",
          "name": "Raise Bones",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 16,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 2,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon 2 Bone Knights",
          "name": "Assemble Bone Knight",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 10,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 5,
            "requires_los": true
          },
          "className": "WizardSwap",
          "description": "Swap places with a random [Undead:undead] unit",
          "name": "Bone Swap",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 7,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 6,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Slain targets become Skeletons",
          "name": "Death Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_bone_wizard.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_bone_wizard.png",
      "tags": [
        "Dark",
        "Undead"
      ]
    },
    "monster_bonewheel": {
      "baseId": "bonewheel",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "error": "AttributeError(\"'NoneType' object has no attribute 'lower'\")",
      "extractionSource": "runtime",
      "factoryName": "BoneWheel",
      "group": "normal",
      "icon": "icons/runtime/monster_bonewheel.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/bone_wheel.png",
      "id": "monster_bonewheel",
      "kind": "monster",
      "level": 9,
      "maxLevel": null,
      "partial": true,
      "rare": false,
      "rareExtra": [],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_bonewheel.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_bonewheel.png"
    },
    "monster_box_of_woe": {
      "asset": "char/box_of_woe.png",
      "attributes": {
        "flying": false,
        "max_hp": 25,
        "radius": 0,
        "shields": 2,
        "stationary": true
      },
      "baseId": "box_of_woe",
      "buffs": [
        {
          "asset": "tiles/buffs/aura_of_woe.png",
          "className": "DamageAuraBuff",
          "description": "",
          "name": "Aura of Woe"
        },
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "BoxOfWoeBuff",
          "description": "Releases 3 evil spirits when destroyed",
          "name": "Unnamed buff"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "BoxOfWoe",
      "group": "rare",
      "icon": "icons/runtime/monster_box_of_woe.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/box_of_woe.png",
      "id": "monster_box_of_woe",
      "kind": "monster",
      "level": 1,
      "maxLevel": 2,
      "name": "Box of Woe",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Dark": 75,
        "Physical": 50
      },
      "spells": [],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_box_of_woe.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_box_of_woe.png",
      "tags": [
        "Arcane",
        "Dark",
        "Construct"
      ]
    },
    "monster_brain_tree": {
      "asset": "char/brain_tree.png",
      "attributes": {
        "flying": false,
        "max_hp": 65,
        "radius": 0,
        "shields": 0,
        "stationary": true
      },
      "baseId": "brain_tree",
      "buffs": [
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "GeneratorBuff",
          "description": "",
          "name": "Unnamed buff"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "BrainTree",
      "group": "rare",
      "icon": "icons/runtime/monster_brain_tree.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/brain_tree.png",
      "id": "monster_brain_tree",
      "kind": "monster",
      "level": 2,
      "maxLevel": 8,
      "name": "Brain Tree",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Arcane": 100,
        "Fire": -100,
        "Ice": -50,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 7,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Arcane Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_brain_tree.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_brain_tree.png",
      "tags": [
        "Arcane",
        "Nature"
      ]
    },
    "monster_breathstealer": {
      "asset": "char/breathstealer.png",
      "attributes": {
        "flying": false,
        "max_hp": 10,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "breathstealer",
      "buffs": [
        {
          "asset": "tiles/buffs/passive_teleportation.png",
          "className": "TeleportyBuff",
          "description": "",
          "name": "Passive Teleportation"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "BreathStealer",
      "group": "normal",
      "icon": "icons/runtime/monster_breathstealer.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/breathstealer.png",
      "id": "monster_breathstealer",
      "kind": "monster",
      "level": 3,
      "maxLevel": null,
      "name": "Breathstealer",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Apply silenced for 3 turns",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_breathstealer.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_breathstealer.png",
      "tags": [
        "Living",
        "Arcane",
        "Dark"
      ]
    },
    "monster_butterfly_demon": {
      "asset": "char/butterfly_demon.png",
      "attributes": {
        "flying": true,
        "max_hp": 50,
        "radius": 0,
        "shields": 3,
        "stationary": false
      },
      "baseId": "butterfly_demon",
      "buffs": [
        {
          "asset": "tiles/buffs/passive_teleportation.png",
          "className": "TeleportyBuff",
          "description": "",
          "name": "Passive Teleportation"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "ButterflyDemon",
      "group": "normal",
      "icon": "icons/runtime/monster_butterfly_demon.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/butterfly_demon.png",
      "id": "monster_butterfly_demon",
      "kind": "monster",
      "level": 7,
      "maxLevel": null,
      "name": "Butterfly Demon",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 100,
        "Ice": -50,
        "Lightning": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 3,
            "damage": 9,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 6,
            "requires_los": false
          },
          "className": "SimpleRangedAttack",
          "description": "Beam attack\n\n\nMelts walls",
          "name": "Void Beam",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 2,
            "damage": 9,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 6,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Beam attack",
          "name": "Lightning Beam",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_butterfly_demon.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_butterfly_demon.png",
      "tags": [
        "Demon",
        "Nature",
        "Arcane",
        "Lightning"
      ]
    },
    "monster_card_guard": {
      "asset": "char/card_guard.png",
      "attributes": {
        "flying": false,
        "max_hp": 77,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "card_guard",
      "buffs": [
        {
          "asset": "tiles/buffs/guardsman.png",
          "className": "GuardsmanBuff",
          "description": "Each turn, grant 1 SH to adjacent unshielded allies",
          "name": "Guardsman"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "CardGuard",
      "group": "normal",
      "icon": "icons/runtime/monster_card_guard.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/card_guard.png",
      "id": "monster_card_guard",
      "kind": "monster",
      "level": 5,
      "maxLevel": null,
      "name": "Card Guard",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 75,
        "Fire": -100,
        "Physical": -100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 7,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_card_guard.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_card_guard.png",
      "tags": [
        "Arcane",
        "Construct"
      ]
    },
    "monster_centaur": {
      "asset": "char/centaur.png",
      "attributes": {
        "flying": false,
        "max_hp": 15,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "centaur",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Centaur",
      "group": "normal",
      "icon": "icons/runtime/monster_centaur.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/centaur.png",
      "id": "monster_centaur",
      "kind": "monster",
      "level": 4,
      "maxLevel": null,
      "name": "Centaur",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 8,
            "damage": 5,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 5,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Throw Spear",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 4,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Trample attack",
          "name": "Trample",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "damage": 4,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 4,
            "requires_los": true
          },
          "className": "LeapAttack",
          "description": "Leap attack",
          "name": "Leap",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_centaur.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_centaur.png",
      "tags": [
        "Living"
      ]
    },
    "monster_centaur_druid": {
      "asset": "char/centaur_druid.png",
      "attributes": {
        "flying": false,
        "max_hp": 90,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "centaur_druid",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "CentaurDruid",
      "group": "rare",
      "icon": "icons/runtime/monster_centaur_druid.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/centaur_druid.png",
      "id": "monster_centaur_druid",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Centaur Druid",
      "rare": true,
      "rareExtra": [
        "Living"
      ],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 15,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 2,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon 2 Eagles",
          "name": "Summon Eagles",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 15,
            "duration": 10,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 7,
            "range": 0,
            "requires_los": true
          },
          "className": "WizardHealAura",
          "description": "Heal allies within [7:radius] tiles for [2 HP:heal] each turn\nLasts [8 turns:duration]",
          "name": "Heal Aura",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Trample attack",
          "name": "Trample",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 4,
            "requires_los": true
          },
          "className": "LeapAttack",
          "description": "Leap attack",
          "name": "Leap",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_centaur_druid.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_centaur_druid.png",
      "tags": [
        "Living"
      ]
    },
    "monster_chained_cyclops": {
      "asset": "char/chained_cyclops.png",
      "attributes": {
        "flying": false,
        "max_hp": 2000,
        "radius": 1,
        "shields": 0,
        "stationary": false
      },
      "baseId": "chained_cyclops",
      "buffs": [
        {
          "asset": "tiles/buffs/chained.png",
          "className": "ChainedCyclopsBuff",
          "description": "When this unit first falls below half HP, it breaks its shackles and goes [berserk]",
          "name": "Chained"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "ChainedCyclops",
      "group": "rare",
      "icon": "icons/runtime/monster_chained_cyclops.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/chained_cyclops.png",
      "id": "monster_chained_cyclops",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Chained Cyclops",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 30,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 7,
            "damage": 30,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 2,
            "range": 6,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Apply stunned for 1 turn",
          "name": "Boulder Toss",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 4,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_chained_cyclops.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 4,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_chained_cyclops.png",
      "tags": [
        "Living"
      ]
    },
    "monster_chaos_chimera": {
      "asset": "char/chaos_chimera.png",
      "attributes": {
        "flying": false,
        "max_hp": 46,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "chaos_chimera",
      "buffs": [
        {
          "asset": "tiles/buffs/summon_on_death.png",
          "className": "SpawnOnDeath",
          "description": "",
          "name": "Summon On Death"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "ChaosChimera",
      "group": "normal",
      "icon": "icons/runtime/monster_chaos_chimera.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/chaos_chimera.png",
      "id": "monster_chaos_chimera",
      "kind": "monster",
      "level": 6,
      "maxLevel": null,
      "name": "Chaos Chimera",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Fire": 75,
        "Lightning": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 2,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 5,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Fire",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 2,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 5,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Lightning",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_chaos_chimera.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_chaos_chimera.png",
      "tags": [
        "Fire",
        "Lightning",
        "Living"
      ]
    },
    "monster_chaos_fiend": {
      "asset": "char/fiend_chaos.png",
      "attributes": {
        "flying": false,
        "max_hp": 166,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "chaos_fiend",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "ChaosFiend",
      "group": "normal",
      "icon": "icons/runtime/monster_chaos_fiend.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/fiend_chaos.png",
      "id": "monster_chaos_fiend",
      "kind": "monster",
      "level": 8,
      "maxLevel": null,
      "name": "Chaos Fiend",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Fire": 100,
        "Ice": -50,
        "Lightning": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 7,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 3,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon 3 Chaos Imps",
          "name": "Summon Chaos Imps",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 13,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 2,
            "range": 6,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Chaos Ball",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 2,
            "damage": 5,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 6,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Beam attack",
          "name": "Dark Beam",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_chaos_fiend.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_chaos_fiend.png",
      "tags": [
        "Fire",
        "Lightning",
        "Demon"
      ]
    },
    "monster_chaos_knight": {
      "asset": "char/chaos_knight.png",
      "attributes": {
        "flying": false,
        "max_hp": 200,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "chaos_knight",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "ChaosKnight",
      "group": "normal",
      "icon": "icons/runtime/monster_chaos_knight.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/chaos_knight.png",
      "id": "monster_chaos_knight",
      "kind": "monster",
      "level": 7,
      "maxLevel": null,
      "name": "Chaos Knight",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Fire": 75,
        "Lightning": 75,
        "Physical": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 4,
            "damage": 16,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 2,
            "range": 6,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Chaos Ball",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_chaos_knight.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_chaos_knight.png",
      "tags": [
        "Fire",
        "Lightning",
        "Living"
      ]
    },
    "monster_chaos_quill": {
      "asset": "char/chaos_quill.png",
      "attributes": {
        "flying": true,
        "max_hp": 15,
        "radius": 0,
        "shields": 6,
        "stationary": true
      },
      "baseId": "chaos_quill",
      "buffs": [
        {
          "asset": "tiles/buffs/passive_teleportation.png",
          "className": "TeleportyBuff",
          "description": "",
          "name": "Passive Teleportation"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "ChaosQuill",
      "group": "rare",
      "icon": "icons/runtime/monster_chaos_quill.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/chaos_quill.png",
      "id": "monster_chaos_quill",
      "kind": "monster",
      "level": 1,
      "maxLevel": 3,
      "name": "Chaos Quill",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Arcane": 100,
        "Fire": 75,
        "Lightning": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 6,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "WriteChaosScrolls",
          "description": "Summons 2-4 Living Fireball or Living Lightning Scrolls",
          "name": "Scribe Chaos Scrolls",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_chaos_quill.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_chaos_quill.png",
      "tags": [
        "Chaos",
        "Arcane",
        "Construct"
      ]
    },
    "monster_chronos_titan_immortal": {
      "asset": "char/titan_immortal.png",
      "attributes": {
        "flying": false,
        "max_hp": 1200,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "chronos_titan_immortal",
      "buffs": [
        {
          "asset": "status/reincarnation.png",
          "className": "ReincarnationBuff",
          "description": "",
          "name": "Reincarnation"
        },
        {
          "asset": "tiles/buffs/fire_aura.png",
          "className": "DamageAuraBuff",
          "description": "",
          "name": "Fire Aura"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "TitanLord",
      "group": "rare",
      "icon": "icons/runtime/monster_chronos_titan_immortal.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/titan_immortal.png",
      "id": "monster_chronos_titan_immortal",
      "kind": "monster",
      "level": 3,
      "maxLevel": 1,
      "name": "Chronos, Titan Immortal",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Dark": 75,
        "Fire": 100,
        "Holy": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 35,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "damage": 28,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 3,
            "range": 7,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Fire Ball",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_chronos_titan_immortal.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_chronos_titan_immortal.png",
      "tags": [
        "Fire",
        "Living",
        "Holy"
      ]
    },
    "monster_cindervein": {
      "asset": "char/3x3_red_dragon.png",
      "attributes": {
        "flying": true,
        "max_hp": 3400,
        "radius": 1,
        "shields": 0,
        "stationary": false
      },
      "baseId": "cindervein",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Cindervein",
      "group": "rare",
      "icon": "icons/runtime/monster_cindervein.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/3x3_red_dragon.png",
      "id": "monster_cindervein",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Cindervein",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Fire": 100,
        "Ice": -50,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "damage": 40,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 8,
            "requires_los": true
          },
          "className": "FireBreath",
          "description": "Cone attack",
          "name": "Fire Breath",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 23,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 4,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_cindervein.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 4,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_cindervein.png",
      "tags": [
        "Dragon",
        "Living",
        "Fire"
      ]
    },
    "monster_cockatrice": {
      "asset": "char/cockatrice.png",
      "attributes": {
        "flying": true,
        "max_hp": 55,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "cockatrice",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "Cockatrice",
      "group": "normal",
      "icon": "icons/runtime/monster_cockatrice.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/cockatrice.png",
      "id": "monster_cockatrice",
      "kind": "monster",
      "level": 7,
      "maxLevel": null,
      "name": "Cockatrice",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 50,
        "Lightning": -100,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 12,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Apply blind for 6 turns",
          "name": "Peck",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 10,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 8,
            "requires_los": true
          },
          "className": "CockatriceGaze",
          "description": "Petrifies for 3 turns",
          "name": "Stone Gaze",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_cockatrice.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_cockatrice.png",
      "tags": [
        "Arcane",
        "Living"
      ]
    },
    "monster_concussive_idol": {
      "asset": "char/3x3_concussive_idol.png",
      "attributes": {
        "flying": false,
        "max_hp": 1500,
        "radius": 1,
        "shields": 20,
        "stationary": true
      },
      "baseId": "concussive_idol",
      "buffs": [
        {
          "asset": "tiles/buffs/concussive_idol.png",
          "className": "ConcussiveIdolBuff",
          "description": "Whenever an enemy takes damage, it is stunned for 1 turn",
          "name": "Concussive Idol"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "ConcussiveIdol",
      "group": "rare",
      "icon": "icons/runtime/monster_concussive_idol.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/3x3_concussive_idol.png",
      "id": "monster_concussive_idol",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Concussive Idol",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Fire": 50,
        "Lightning": 50,
        "Physical": 50
      },
      "spells": [],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_concussive_idol.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 2,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_concussive_idol.png",
      "tags": [
        "Construct"
      ]
    },
    "monster_copper_fiend": {
      "asset": "char/fiend_copper.png",
      "attributes": {
        "flying": false,
        "max_hp": 166,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "copper_fiend",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "CopperFiend",
      "group": "normal",
      "icon": "icons/runtime/monster_copper_fiend.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/fiend_copper.png",
      "id": "monster_copper_fiend",
      "kind": "monster",
      "level": 8,
      "maxLevel": null,
      "name": "Copper Fiend",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Lightning": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 7,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 3,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon 3 Copper Imps",
          "name": "Summon Copper Imps",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "duration": 7,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 10,
            "requires_los": true
          },
          "className": "SimpleCurse",
          "description": "Apply conductivity for 7 turns",
          "name": "Conductivity",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 2,
            "damage": 5,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 6,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Beam attack",
          "name": "Dark Beam",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 5,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 6,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Beam attack",
          "name": "Lightning Beam",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_copper_fiend.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_copper_fiend.png",
      "tags": [
        "Lightning",
        "Metallic",
        "Demon"
      ]
    },
    "monster_coral_colossus": {
      "asset": "char/giant_coral_crab.png",
      "attributes": {
        "flying": false,
        "max_hp": 3884,
        "radius": 1,
        "shields": 0,
        "stationary": false
      },
      "baseId": "coral_colossus",
      "buffs": [
        {
          "asset": "tiles/buffs/regenerative_molt.png",
          "className": "CrabMoltingBuff",
          "description": "Each turn, if at or below 50% HP, cleanse all debuffs, then halve max HP and heal to full",
          "name": "Regenerative Molt"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "CoralColossus",
      "group": "rare",
      "icon": "icons/runtime/monster_coral_colossus.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/giant_coral_crab.png",
      "id": "monster_coral_colossus",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Coral Colossus",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Ice": 100,
        "Physical": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 6,
            "damage": 12,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 8,
            "requires_los": true
          },
          "className": "CoralSpew",
          "description": "Cone attack\nSummon Freezing Coral around affected units",
          "name": "Coral Spew",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 40,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Apply immobilized for 3 turns\n\n\nAttacks 2 times",
          "name": "Crushing Claws",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 4,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_coral_colossus.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 4,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_coral_colossus.png",
      "tags": [
        "Living",
        "Nature",
        "Ice"
      ]
    },
    "monster_corrupted_lamasu": {
      "asset": "char/lamasu_corrupted.png",
      "attributes": {
        "flying": true,
        "max_hp": 400,
        "radius": 0,
        "shields": 6,
        "stationary": false
      },
      "baseId": "corrupted_lamasu",
      "buffs": [
        {
          "asset": "tiles/buffs/corruption_aura.png",
          "className": "LamasuCorruptionAura",
          "description": "",
          "name": "Corruption Aura"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "CorruptedLamasu",
      "group": "normal",
      "icon": "icons/runtime/monster_corrupted_lamasu.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/lamasu_corrupted.png",
      "id": "monster_corrupted_lamasu",
      "kind": "monster",
      "level": 9,
      "maxLevel": null,
      "name": "Corrupted Lamasu",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 75,
        "Dark": 100,
        "Holy": -50,
        "Poison": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 12,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Heals for damage dealt\n\n\nOn hit, inflict a stacking aura that deals 3 [Dark] or [Poison] damage within 3 tiles each turn",
          "name": "Corrupted Bite",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 12,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 5,
            "requires_los": true
          },
          "className": "LeapAttack",
          "description": "Leap attack",
          "name": "Charge",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_corrupted_lamasu.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_corrupted_lamasu.png",
      "tags": [
        "Nature",
        "Undead",
        "Dark"
      ]
    },
    "monster_crystal_golem": {
      "asset": "char/crystal_golem.png",
      "attributes": {
        "flying": false,
        "max_hp": 100,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "crystal_golem",
      "buffs": [
        {
          "asset": "tiles/buffs/prismatic.png",
          "className": "PrismaticBuff",
          "description": "Each turn, becomes vulnerable to a different damage type",
          "name": "Prismatic"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "CrystalGolem",
      "group": "rare",
      "icon": "icons/runtime/monster_crystal_golem.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/crystal_golem.png",
      "id": "monster_crystal_golem",
      "kind": "monster",
      "level": 2,
      "maxLevel": 5,
      "name": "Crystal Golem",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Arcane": 100,
        "Dark": 100,
        "Fire": 100,
        "Holy": 100,
        "Ice": 100,
        "Lightning": 100,
        "Physical": -50,
        "Poison": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 24,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 3,
            "damage": 16,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 3,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Crystal Shot",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_crystal_golem.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_crystal_golem.png",
      "tags": [
        "Construct",
        "Metallic"
      ]
    },
    "monster_crystal_mage": {
      "asset": "char/arcane_ice_wizard.png",
      "attributes": {
        "flying": true,
        "max_hp": 44,
        "radius": 0,
        "shields": 9,
        "stationary": false
      },
      "baseId": "crystal_mage",
      "buffs": [
        {
          "asset": "tiles/buffs/crystal_chain.png",
          "className": "CrystalChain",
          "description": "",
          "name": "Crystal Chain"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "CrystalWizard",
      "group": "rare",
      "icon": "icons/runtime/monster_crystal_mage.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/arcane_ice_wizard.png",
      "id": "monster_crystal_mage",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Crystal Mage",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Arcane": 75,
        "Ice": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 10,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 2,
            "quick_cast": false,
            "radius": 5,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon 2 Ice Rifts",
          "name": "Summon Ice Rifts",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 8,
            "duration": 6,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 5,
            "requires_los": true
          },
          "className": "SimpleCurse",
          "description": "Apply frozen for 6 turns",
          "name": "Ice Tomb",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 7,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 5,
            "requires_los": false
          },
          "className": "SimpleRangedAttack",
          "description": "Beam attack\n\n\nMelts walls",
          "name": "Void Beam",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_crystal_mage.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_crystal_mage.png",
      "tags": [
        "Arcane",
        "Ice",
        "Living"
      ]
    },
    "monster_cultist": {
      "asset": "char/cultist.png",
      "attributes": {
        "flying": false,
        "max_hp": 10,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "cultist",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Cultist",
      "group": "normal",
      "icon": "icons/runtime/monster_cultist.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/cultist.png",
      "id": "monster_cultist",
      "kind": "monster",
      "level": 3,
      "maxLevel": null,
      "name": "Cultist",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 50,
        "Holy": -50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 1,
            "hp_cost": 1,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 6,
            "requires_los": false
          },
          "className": "CultistPain",
          "description": "Ignores walls",
          "name": "Pain",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_cultist.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_cultist.png",
      "tags": [
        "Living",
        "Dark"
      ]
    },
    "monster_dancing_blade": {
      "asset": "char/spectral_blade.png",
      "attributes": {
        "flying": true,
        "max_hp": 9,
        "radius": 0,
        "shields": 2,
        "stationary": false
      },
      "baseId": "dancing_blade",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "DancingBlade",
      "group": "normal",
      "icon": "icons/runtime/monster_dancing_blade.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/spectral_blade.png",
      "id": "monster_dancing_blade",
      "kind": "monster",
      "level": 4,
      "maxLevel": null,
      "name": "Dancing Blade",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 9,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 3,
            "requires_los": true
          },
          "className": "LeapAttack",
          "description": "Leap attack",
          "name": "Pounce",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_dancing_blade.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_dancing_blade.png",
      "tags": [
        "Construct",
        "Metallic",
        "Arcane"
      ]
    },
    "monster_dawnheart": {
      "asset": "char/3x3_holy_dragon.png",
      "attributes": {
        "flying": true,
        "max_hp": 4831,
        "radius": 1,
        "shields": 0,
        "stationary": false
      },
      "baseId": "dawnheart",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Dawnheart",
      "group": "rare",
      "icon": "icons/runtime/monster_dawnheart.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/3x3_holy_dragon.png",
      "id": "monster_dawnheart",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Dawnheart",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Dark": -50,
        "Holy": 100,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "damage": 28,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 9,
            "requires_los": true
          },
          "className": "HolyBreath",
          "description": "Cone attack\nHeals allies",
          "name": "Holy Breath",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 17,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 4,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_dawnheart.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 4,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_dawnheart.png",
      "tags": [
        "Dragon",
        "Living",
        "Holy"
      ]
    },
    "monster_deathchill_chimera": {
      "asset": "char/deathchill_chimera.png",
      "attributes": {
        "flying": false,
        "max_hp": 46,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "deathchill_chimera",
      "buffs": [
        {
          "asset": "tiles/buffs/summon_on_death.png",
          "className": "SpawnOnDeath",
          "description": "",
          "name": "Summon On Death"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "DeathchillChimera",
      "group": "normal",
      "icon": "icons/runtime/monster_deathchill_chimera.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/deathchill_chimera.png",
      "id": "monster_deathchill_chimera",
      "kind": "monster",
      "level": 6,
      "maxLevel": null,
      "name": "Deathchill Chimera",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 75,
        "Ice": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 2,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 5,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Beam attack",
          "name": "Ice",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 2,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 5,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Beam attack",
          "name": "Darkness",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_deathchill_chimera.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_deathchill_chimera.png",
      "tags": [
        "Dark",
        "Ice",
        "Living"
      ]
    },
    "monster_deathchiller": {
      "asset": "char/deathchill_wizard.png",
      "attributes": {
        "flying": false,
        "max_hp": 90,
        "radius": 0,
        "shields": 2,
        "stationary": false
      },
      "baseId": "deathchiller",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "DeathchillWizard",
      "group": "rare",
      "icon": "icons/runtime/monster_deathchiller.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/deathchill_wizard.png",
      "id": "monster_deathchiller",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Deathchiller",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Dark": 100,
        "Fire": -50,
        "Holy": -50,
        "Ice": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 9,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 1,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon a Deathchill Chimera",
          "name": "Summon Deathchill Chimera",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 5,
            "damage": 11,
            "duration": 3,
            "hp_cost": 0,
            "level": 3,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 3,
            "range": 6,
            "requires_los": true
          },
          "className": "DeathChill",
          "description": "Deal [Dark] damage to the target each turn for 3 turns\nIf the target dies while under the effect, inflicts [Ice] damage and 3 turns of [frozen] on enemies within 3 tiles",
          "name": "Death Chill",
          "tags": [
            "Enchantment",
            "Dark",
            "Ice"
          ]
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 7,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 6,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Raises slain targets as skeletons",
          "name": "Death Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_deathchiller.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_deathchiller.png",
      "tags": [
        "Dark",
        "Ice"
      ]
    },
    "monster_displacer_beast": {
      "asset": "char/displacer_beast.png",
      "attributes": {
        "flying": false,
        "max_hp": 10,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "displacer_beast",
      "buffs": [
        {
          "asset": "tiles/buffs/passive_teleportation.png",
          "className": "TeleportyBuff",
          "description": "",
          "name": "Passive Teleportation"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "DisplacerBeast",
      "group": "normal",
      "icon": "icons/runtime/monster_displacer_beast.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/displacer_beast.png",
      "id": "monster_displacer_beast",
      "kind": "monster",
      "level": 2,
      "maxLevel": null,
      "name": "Displacer Beast",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_displacer_beast.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_displacer_beast.png",
      "tags": [
        "Living",
        "Arcane"
      ]
    },
    "monster_doldrum": {
      "asset": "char/cosmic_clown.png",
      "attributes": {
        "flying": false,
        "max_hp": 999,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "doldrum",
      "buffs": [
        {
          "asset": "tiles/buffs/passive_teleportation.png",
          "className": "TeleportyBuff",
          "description": "",
          "name": "Passive Teleportation"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Doldrum",
      "group": "rare",
      "icon": "icons/runtime/monster_doldrum.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/cosmic_clown.png",
      "id": "monster_doldrum",
      "kind": "monster",
      "level": 3,
      "maxLevel": 1,
      "name": "Doldrum",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Arcane": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 1,
            "quick_cast": false,
            "radius": 1,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon a Bad Balloon",
          "name": "Summon Bad Balloon",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_doldrum.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_doldrum.png",
      "tags": [
        "Arcane",
        "Demon"
      ]
    },
    "monster_dracolich": {
      "asset": "char/bone_drake.png",
      "attributes": {
        "flying": true,
        "max_hp": 240,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "dracolich",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "Dracolich",
      "group": "normal",
      "icon": "icons/runtime/monster_dracolich.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/bone_drake.png",
      "id": "monster_dracolich",
      "kind": "monster",
      "level": 9,
      "maxLevel": null,
      "name": "Dracolich",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 20,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "LichSealSoulSpell",
          "description": "Summon a Soul Jar\nThe caster cannot die while the Soul Jar lives",
          "name": "Soul Jar",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "damage": 11,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 5,
            "requires_los": true
          },
          "className": "DarkBreath",
          "description": "Cone attack\nSlain units become Skeletons",
          "name": "Dark Breath",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_dracolich.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_dracolich.png",
      "tags": [
        "Dragon",
        "Undead",
        "Dark"
      ]
    },
    "monster_dragon_mage": {
      "asset": "char/dragon_wizard.png",
      "attributes": {
        "flying": false,
        "max_hp": 160,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "dragon_mage",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "DragonMage",
      "group": "rare",
      "icon": "icons/runtime/monster_dragon_mage.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/dragon_wizard.png",
      "id": "monster_dragon_mage",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Dragon Mage",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Arcane": 50,
        "Fire": 50,
        "Ice": 50,
        "Lightning": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 22,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 3,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon 3 random Drakes at random locations",
          "name": "Summon Drakes",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 6,
            "duration": 20,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 4,
            "range": 7,
            "requires_los": true
          },
          "className": "ScaleWeave",
          "description": "Allies near target [Dragon] gain immunity to its damage types for 20 turns",
          "name": "Scale Weave",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 18,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 5,
            "requires_los": true
          },
          "className": "WizardSwap",
          "description": "Swap places with a random [Dragon:dragon] unit",
          "name": "Dragon Swap",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 20,
            "hp_cost": 0,
            "level": 1,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "DragonClaw",
          "description": "Deals damage in an arc",
          "name": "Dragon Claw",
          "tags": [
            "Dragon",
            "Sorcery"
          ]
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_dragon_mage.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_dragon_mage.png",
      "tags": [
        "Dragon",
        "Living"
      ]
    },
    "monster_dream_hag": {
      "asset": "char/night_hag_2.png",
      "attributes": {
        "flying": false,
        "max_hp": 67,
        "radius": 0,
        "shields": 2,
        "stationary": false
      },
      "baseId": "dream_hag",
      "buffs": [
        {
          "asset": "tiles/buffs/shield_regeneration.png",
          "className": "ShieldRegenBuff",
          "description": "",
          "name": "Shield Regeneration"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "VoidHag",
      "group": "normal",
      "icon": "icons/runtime/monster_dream_hag.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/night_hag_2.png",
      "id": "monster_dream_hag",
      "kind": "monster",
      "level": 8,
      "maxLevel": null,
      "name": "Dream Hag",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 75,
        "Dark": 50,
        "Fire": -50,
        "Holy": -50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 9,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 12,
            "requires_los": true
          },
          "className": "HagSwap",
          "description": "Swap places with the Wizard",
          "name": "Aether Swap",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "damage": 1,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Apply sleep for 3 turns",
          "name": "Sleep Touch",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_dream_hag.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_dream_hag.png",
      "tags": [
        "Dark",
        "Arcane",
        "Living"
      ]
    },
    "monster_dryder": {
      "asset": "char/dryder.png",
      "attributes": {
        "flying": false,
        "max_hp": 128,
        "radius": 0,
        "shields": 6,
        "stationary": false
      },
      "baseId": "dryder",
      "buffs": [
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "SpiderBuff",
          "description": "",
          "name": "Unnamed buff"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "Dryder",
      "group": "normal",
      "icon": "icons/runtime/monster_dryder.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/dryder.png",
      "id": "monster_dryder",
      "kind": "monster",
      "level": 7,
      "maxLevel": null,
      "name": "Dryder",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 10,
            "duration": 8,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "DryderPoisonGaze",
          "description": "Poisons enemies in line of sight for 8 turns",
          "name": "Toxic Gaze",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 9,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 4,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Apply bleed for 3 turns",
          "name": "Dark Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_dryder.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_dryder.png",
      "tags": [
        "Living",
        "Dark",
        "Spider"
      ]
    },
    "monster_duergar": {
      "asset": "char/duergar.png",
      "attributes": {
        "flying": false,
        "max_hp": 35,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "duergar",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "Dwarf",
      "group": "normal",
      "icon": "icons/runtime/monster_duergar.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/duergar.png",
      "id": "monster_duergar",
      "kind": "monster",
      "level": 5,
      "maxLevel": null,
      "name": "Duergar",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 50,
        "Lightning": -50,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 5,
            "damage": 12,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 8,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Crossbow",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 6,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Short Sword",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_duergar.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_duergar.png",
      "tags": [
        "Living",
        "Dark"
      ]
    },
    "monster_duergar_fortress": {
      "asset": "char/duergar_fortress.png",
      "attributes": {
        "flying": false,
        "max_hp": 2000,
        "radius": 1,
        "shields": 0,
        "stationary": true
      },
      "baseId": "duergar_fortress",
      "buffs": [
        {
          "asset": "tiles/buffs/summon_on_death.png",
          "className": "SpawnOnDeath",
          "description": "",
          "name": "Summon On Death"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "DuergarFortress",
      "group": "rare",
      "icon": "icons/runtime/monster_duergar_fortress.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/duergar_fortress.png",
      "id": "monster_duergar_fortress",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Duergar Fortress",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 10,
            "requires_los": true
          },
          "className": "FortressShot",
          "description": "Each fortress tile shoots a target in range of that tile",
          "name": "Crossbow Barrage",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 7,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "FortressBuild",
          "description": "Build 7 Duergar spawners on connected tiles",
          "name": "Expand Fortress",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_duergar_fortress.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 2,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_duergar_fortress.png",
      "tags": []
    },
    "monster_efreet": {
      "asset": "char/efreet.png",
      "attributes": {
        "flying": true,
        "max_hp": 84,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "efreet",
      "buffs": [
        {
          "asset": "tiles/buffs/fire_aura.png",
          "className": "DamageAuraBuff",
          "description": "",
          "name": "Fire Aura"
        },
        {
          "asset": "tiles/buffs/passive_teleportation.png",
          "className": "TeleportyBuff",
          "description": "",
          "name": "Passive Teleportation"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "Efreet",
      "group": "normal",
      "icon": "icons/runtime/monster_efreet.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/efreet.png",
      "id": "monster_efreet",
      "kind": "monster",
      "level": 7,
      "maxLevel": null,
      "name": "Efreet",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Fire": 100,
        "Ice": -50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 13,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 4,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Fire Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_efreet.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_efreet.png",
      "tags": [
        "Fire",
        "Demon"
      ]
    },
    "monster_electric_slime": {
      "asset": "char/electric_slime.png",
      "attributes": {
        "flying": false,
        "max_hp": 10,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "electric_slime",
      "buffs": [
        {
          "asset": "tiles/buffs/slime_growth.png",
          "className": "SlimeBuff",
          "description": [
            "Each turn, {chance}% chance to heal for 10% of original max HP\nExcess raises max HP\nAt double original max HP, split into 2 {spawn}",
            {
              "chance": 50,
              "spawn": "slimes"
            }
          ],
          "name": "Slime Growth"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "ElectricSlime",
      "group": "normal",
      "icon": "icons/runtime/monster_electric_slime.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/electric_slime.png",
      "id": "monster_electric_slime",
      "kind": "monster",
      "level": 4,
      "maxLevel": null,
      "name": "Electric Slime",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Lightning": 100,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 3,
            "requires_los": true
          },
          "className": "LeapAttack",
          "description": "Leap attack",
          "name": "Pounce",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_electric_slime.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_electric_slime.png",
      "tags": [
        "Slime",
        "Lightning"
      ]
    },
    "monster_enchanter": {
      "asset": "char/enchanter.png",
      "attributes": {
        "flying": false,
        "max_hp": 64,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "enchanter",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Enchanter",
      "group": "rare",
      "icon": "icons/runtime/monster_enchanter.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/enchanter.png",
      "id": "monster_enchanter",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Enchanter",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 32,
            "duration": 8,
            "hp_cost": 0,
            "level": 2,
            "max_charges": 2,
            "melee": false,
            "quick_cast": false,
            "radius": 4,
            "range": 0,
            "requires_los": true
          },
          "className": "RegenAuraSpell",
          "description": "Each turn, heal allies within [4:radius] tiles for [8 HP:heal]\nLasts [8:duration] turns",
          "name": "Regeneration Aura",
          "tags": [
            "Enchantment",
            "Nature"
          ]
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 16,
            "duration": 8,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 7,
            "range": 0,
            "requires_los": true
          },
          "className": "WizardNightmare",
          "description": "Each turn, deal 2  damage to all enemies within 7 tiles\nLasts 8 turns",
          "name": "Nightmare Aura",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 6,
            "duration": 2,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 5,
            "requires_los": true
          },
          "className": "SimpleCurse",
          "description": "Apply frozen for 2 turns",
          "name": "Freeze",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 2,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 9,
            "requires_los": true
          },
          "className": "ShieldAllySpell",
          "description": "Grant an ally 3 shields up to a max of 3",
          "name": "Shield Ally",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_enchanter.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_enchanter.png",
      "tags": [
        "Living",
        "Enchantment"
      ]
    },
    "monster_energy_knight": {
      "asset": "char/energy_knight.png",
      "attributes": {
        "flying": false,
        "max_hp": 200,
        "radius": 0,
        "shields": 6,
        "stationary": false
      },
      "baseId": "energy_knight",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "EnergyKnight",
      "group": "normal",
      "icon": "icons/runtime/monster_energy_knight.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/energy_knight.png",
      "id": "monster_energy_knight",
      "kind": "monster",
      "level": 7,
      "maxLevel": null,
      "name": "Energy Knight",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 100,
        "Lightning": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 6,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Teleports the target up to 5 tiles",
          "name": "Melee Attack",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 7,
            "damage": 10,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 7,
            "requires_los": true
          },
          "className": "LeapAttack",
          "description": "Leap attack",
          "name": "Flash of Lightning",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_energy_knight.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_energy_knight.png",
      "tags": [
        "Lightning",
        "Arcane",
        "Living"
      ]
    },
    "monster_executioner": {
      "asset": "char/executioner.png",
      "attributes": {
        "flying": false,
        "max_hp": 144,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "executioner",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "Executioner",
      "group": "normal",
      "icon": "icons/runtime/monster_executioner.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/executioner.png",
      "id": "monster_executioner",
      "kind": "monster",
      "level": 6,
      "maxLevel": null,
      "name": "Executioner",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Apply immobilized for 3 turns",
          "name": "Grab",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 40,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Execute",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_executioner.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_executioner.png",
      "tags": [
        "Undead",
        "Dark"
      ]
    },
    "monster_fae_huntsman": {
      "asset": "char/fae_marksman.png",
      "attributes": {
        "flying": false,
        "max_hp": 18,
        "radius": 0,
        "shields": 2,
        "stationary": false
      },
      "baseId": "fae_huntsman",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "FaeSniper",
      "group": "normal",
      "icon": "icons/runtime/monster_fae_huntsman.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/fae_marksman.png",
      "id": "monster_fae_huntsman",
      "kind": "monster",
      "level": 5,
      "maxLevel": null,
      "name": "Fae Huntsman",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 7,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Apply silenced for 3 turns",
          "name": "Physical Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_fae_huntsman.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_fae_huntsman.png",
      "tags": [
        "Arcane",
        "Living"
      ]
    },
    "monster_fae_queen": {
      "asset": "char/fae_queen.png",
      "attributes": {
        "flying": true,
        "max_hp": 50,
        "radius": 0,
        "shields": 2,
        "stationary": false
      },
      "baseId": "fae_queen",
      "buffs": [
        {
          "asset": "tiles/buffs/passive_teleportation.png",
          "className": "TeleportyBuff",
          "description": "",
          "name": "Passive Teleportation"
        },
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "GeneratorBuff",
          "description": "",
          "name": "Unnamed buff"
        },
        {
          "asset": "tiles/buffs/healing_aura.png",
          "className": "HealAuraBuff",
          "description": "",
          "name": "Healing Aura"
        },
        {
          "asset": "tiles/buffs/shield_regeneration.png",
          "className": "ShieldRegenBuff",
          "description": "",
          "name": "Shield Regeneration"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "ThornQueen",
      "group": "normal",
      "icon": "icons/runtime/monster_fae_queen.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/fae_queen.png",
      "id": "monster_fae_queen",
      "kind": "monster",
      "level": 7,
      "maxLevel": null,
      "name": "Fae Queen",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 10,
            "duration": 15,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 4,
            "quick_cast": false,
            "radius": 6,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon 4 Faeries",
          "name": "Fae Queen's Guard",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 7,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 4,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Arcane Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_fae_queen.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_fae_queen.png",
      "tags": [
        "Living",
        "Nature",
        "Arcane"
      ]
    },
    "monster_faery": {
      "asset": "char/evil_faery.png",
      "attributes": {
        "flying": true,
        "max_hp": 9,
        "radius": 0,
        "shields": 1,
        "stationary": false
      },
      "baseId": "faery",
      "buffs": [
        {
          "asset": "tiles/buffs/passive_teleportation.png",
          "className": "TeleportyBuff",
          "description": "",
          "name": "Passive Teleportation"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Faery",
      "group": "normal",
      "icon": "icons/runtime/monster_faery.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/evil_faery.png",
      "id": "monster_faery",
      "kind": "monster",
      "level": 4,
      "maxLevel": null,
      "name": "Faery",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 6,
            "requires_los": true
          },
          "className": "HealAlly",
          "description": "Heals caster or ally for 7 HP",
          "name": "Heal Ally",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 2,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 4,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Arcane Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_faery.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_faery.png",
      "tags": [
        "Nature",
        "Arcane",
        "Living"
      ]
    },
    "monster_faery_arcanist": {
      "asset": "char/faery_arcanist.png",
      "attributes": {
        "flying": true,
        "max_hp": 15,
        "radius": 0,
        "shields": 2,
        "stationary": false
      },
      "baseId": "faery_arcanist",
      "buffs": [
        {
          "asset": "tiles/buffs/passive_teleportation.png",
          "className": "TeleportyBuff",
          "description": "",
          "name": "Passive Teleportation"
        },
        {
          "asset": "tiles/buffs/shield_regeneration.png",
          "className": "ShieldRegenBuff",
          "description": "",
          "name": "Shield Regeneration"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "FaeArcanist",
      "group": "normal",
      "icon": "icons/runtime/monster_faery_arcanist.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/faery_arcanist.png",
      "id": "monster_faery_arcanist",
      "kind": "monster",
      "level": 6,
      "maxLevel": null,
      "name": "Faery Arcanist",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 5,
            "requires_los": true
          },
          "className": "HealAlly",
          "description": "Heals caster or ally for 9 HP",
          "name": "Heal Ally",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 6,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 1,
            "range": 5,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Removes 1 temporary buff",
          "name": "Arcane Blast",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_faery_arcanist.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_faery_arcanist.png",
      "tags": [
        "Nature",
        "Arcane",
        "Living"
      ]
    },
    "monster_faery_empress": {
      "asset": "char/faery_empress.png",
      "attributes": {
        "flying": true,
        "max_hp": 300,
        "radius": 0,
        "shields": 12,
        "stationary": false
      },
      "baseId": "faery_empress",
      "buffs": [
        {
          "asset": "tiles/buffs/passive_teleportation.png",
          "className": "TeleportyBuff",
          "description": "",
          "name": "Passive Teleportation"
        },
        {
          "asset": "tiles/buffs/royal_rebuke.png",
          "className": "RoyalRebuke",
          "description": "On death, afflict the killer with Fae Curse, which deals 10 [Arcane] damage each turn",
          "name": "Royal Rebuke"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "FaeryEmpress",
      "group": "normal",
      "icon": "icons/runtime/monster_faery_empress.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/faery_empress.png",
      "id": "monster_faery_empress",
      "kind": "monster",
      "level": 9,
      "maxLevel": null,
      "name": "Faery Empress",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 10,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 6,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Removes 1 temporary buff\nGains 1 SH per buff removed\n\n\nHeals for damage dealt",
          "name": "Fae Royalties",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_faery_empress.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_faery_empress.png",
      "tags": [
        "Living",
        "Arcane",
        "Nature"
      ]
    },
    "monster_fallen_angel": {
      "asset": "char/fallen_angel.png",
      "attributes": {
        "flying": true,
        "max_hp": 400,
        "radius": 0,
        "shields": 2,
        "stationary": false
      },
      "baseId": "fallen_angel",
      "buffs": [
        {
          "asset": "status/reincarnation.png",
          "className": "ReincarnationBuff",
          "description": "",
          "name": "Reincarnation"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "FallenAngel",
      "group": "rare",
      "icon": "icons/runtime/monster_fallen_angel.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/fallen_angel.png",
      "id": "monster_fallen_angel",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Fallen Angel",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Dark": 100,
        "Fire": 50,
        "Holy": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 7,
            "damage": 22,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 6,
            "range": 0,
            "requires_los": true
          },
          "className": "WailOfPain",
          "description": "Damages enemies in a burst around the caster",
          "name": "Cacophony",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 4,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "ShieldSightSpell",
          "description": "Grant allies in line of sight [1 SH:shields], up to a max of [2:shields]",
          "name": "Shield Allies",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 14,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 2,
            "range": 4,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Hellfire",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_fallen_angel.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_fallen_angel.png",
      "tags": [
        "Demon",
        "Holy"
      ]
    },
    "monster_false_prophet": {
      "asset": "char/false_prophet.png",
      "attributes": {
        "flying": false,
        "max_hp": 48,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "false_prophet",
      "buffs": [
        {
          "asset": "status/reincarnation.png",
          "className": "ReincarnationBuff",
          "description": "",
          "name": "Reincarnation"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "FalseProphet",
      "group": "normal",
      "icon": "icons/runtime/monster_false_prophet.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/false_prophet.png",
      "id": "monster_false_prophet",
      "kind": "monster",
      "level": 6,
      "maxLevel": null,
      "name": "False Prophet",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Fire": 50,
        "Holy": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 1,
            "range": 6,
            "requires_los": true
          },
          "className": "FalseProphetHolyBlast",
          "description": "Beam attack\nHeals allies",
          "name": "Heavenly Blast",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 8,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 2,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon 2 Cultists",
          "name": "Summon Cultists",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_false_prophet.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_false_prophet.png",
      "tags": [
        "Living",
        "Holy"
      ]
    },
    "monster_fearface": {
      "asset": "char/fear_face.png",
      "attributes": {
        "flying": true,
        "max_hp": 1,
        "radius": 0,
        "shields": 2,
        "stationary": true
      },
      "baseId": "fearface",
      "buffs": [
        {
          "asset": "tiles/buffs/passive_teleportation.png",
          "className": "TeleportyBuff",
          "description": "",
          "name": "Passive Teleportation"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "Fearface",
      "group": "normal",
      "icon": "icons/runtime/monster_fearface.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/fear_face.png",
      "id": "monster_fearface",
      "kind": "monster",
      "level": 6,
      "maxLevel": null,
      "name": "Fearface",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 100,
        "Dark": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 2,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 7,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Teleports the target up to 3 tiles and inflicts [fear] for 2 turns\n\n\nApply None for 2 turns",
          "name": "Fear Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_fearface.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_fearface.png",
      "tags": [
        "Arcane",
        "Undead"
      ]
    },
    "monster_fenris": {
      "asset": "char/fenris.png",
      "attributes": {
        "flying": false,
        "max_hp": 120,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "fenris",
      "buffs": [
        {
          "asset": "tiles/buffs/ravenous_hunger.png",
          "className": "MonsterGrowthBuff",
          "description": [
            "On killing a unit, ",
            [
              "gain [{health}:minion_health] max HP and [{damage}:minion_damage] damage to spells",
              {
                "damage": 1,
                "health": 10
              }
            ]
          ],
          "name": "Ravenous Hunger"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Fenris",
      "group": "rare",
      "icon": "icons/runtime/monster_fenris.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/fenris.png",
      "id": "monster_fenris",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Fenris",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 32,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 32,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 3,
            "requires_los": true
          },
          "className": "LeapAttack",
          "description": "Leap attack",
          "name": "Pounce",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_fenris.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_fenris.png",
      "tags": [
        "Living",
        "Nature"
      ]
    },
    "monster_fiery_tormenting_mass": {
      "asset": "char/tormentor_fiery_mass.png",
      "attributes": {
        "flying": false,
        "max_hp": 71,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "fiery_tormenting_mass",
      "buffs": [
        {
          "asset": "tiles/buffs/summon_on_death.png",
          "className": "SpawnOnDeath",
          "description": "",
          "name": "Summon On Death"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "FieryTormentorMass",
      "group": "rare",
      "icon": "icons/runtime/monster_fiery_tormenting_mass.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/tormentor_fiery_mass.png",
      "id": "monster_fiery_tormenting_mass",
      "kind": "monster",
      "level": 2,
      "maxLevel": 6,
      "name": "Fiery Tormenting Mass",
      "rare": true,
      "rareExtra": [
        "Demon"
      ],
      "resists": {
        "Dark": 100,
        "Fire": 100,
        "Ice": -50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 5,
            "damage": 7,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 4,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleBurst",
          "description": "Deal damage in a burst around the caster",
          "name": "Fiery Torment",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 2,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 2,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Heals for damage dealt",
          "name": "Soul Suck",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_fiery_tormenting_mass.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_fiery_tormenting_mass.png",
      "tags": [
        "Fire",
        "Demon"
      ]
    },
    "monster_fiery_tormentor": {
      "asset": "char/tormentor_fiery.png",
      "attributes": {
        "flying": false,
        "max_hp": 34,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "fiery_tormentor",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "FieryTormentor",
      "group": "normal",
      "icon": "icons/runtime/monster_fiery_tormentor.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/tormentor_fiery.png",
      "id": "monster_fiery_tormentor",
      "kind": "monster",
      "level": 4,
      "maxLevel": null,
      "name": "Fiery Tormentor",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 100,
        "Fire": 100,
        "Ice": -50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 5,
            "damage": 7,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 4,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleBurst",
          "description": "Deal damage in a burst around the caster",
          "name": "Fiery Torment",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 2,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 2,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Heals for damage dealt",
          "name": "Soul Suck",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_fiery_tormentor.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_fiery_tormentor.png",
      "tags": [
        "Fire",
        "Demon"
      ]
    },
    "monster_fire_belcher": {
      "asset": "char/fire_lizard_belcher.png",
      "attributes": {
        "flying": false,
        "max_hp": 23,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "fire_belcher",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "FireBelcher",
      "group": "normal",
      "icon": "icons/runtime/monster_fire_belcher.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/fire_lizard_belcher.png",
      "id": "monster_fire_belcher",
      "kind": "monster",
      "level": 5,
      "maxLevel": null,
      "name": "Fire Belcher",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Fire": 75,
        "Ice": -50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 4,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 2,
            "range": 5,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Fire Ball",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_fire_belcher.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_fire_belcher.png",
      "tags": [
        "Living",
        "Fire",
        "Dragon"
      ]
    },
    "monster_fire_bomber": {
      "asset": "char/fire_bomber.png",
      "attributes": {
        "flying": false,
        "max_hp": 1,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "fire_bomber",
      "buffs": [
        {
          "asset": "tiles/buffs/suicide_explosion.png",
          "className": "FireBomberBuff",
          "description": "",
          "name": "Suicide Explosion"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "FireBomber",
      "group": "normal",
      "icon": "icons/runtime/monster_fire_bomber.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/fire_bomber.png",
      "id": "monster_fire_bomber",
      "kind": "monster",
      "level": 2,
      "maxLevel": null,
      "name": "Fire Bomber",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 12,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 2,
            "requires_los": true
          },
          "className": "FireBomberSuicide",
          "description": "Suicide attack\n2 tile radius\nAutocast on death",
          "name": "Suicide Explosion",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_fire_bomber.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_fire_bomber.png",
      "tags": [
        "Fire"
      ]
    },
    "monster_fire_drake": {
      "asset": "char/fire_drake.png",
      "attributes": {
        "flying": true,
        "max_hp": 48,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "fire_drake",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "FireDrake",
      "group": "normal",
      "icon": "icons/runtime/monster_fire_drake.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/fire_drake.png",
      "id": "monster_fire_drake",
      "kind": "monster",
      "level": 6,
      "maxLevel": null,
      "name": "Fire Drake",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Fire": 100,
        "Ice": -50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "damage": 9,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 5,
            "requires_los": true
          },
          "className": "FireBreath",
          "description": "Cone attack",
          "name": "Fire Breath",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_fire_drake.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_fire_drake.png",
      "tags": [
        "Dragon",
        "Living",
        "Fire"
      ]
    },
    "monster_fire_imp": {
      "asset": "char/imp_fire.png",
      "attributes": {
        "flying": true,
        "max_hp": 5,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "fire_imp",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "FireImp",
      "group": "normal",
      "icon": "icons/runtime/monster_fire_imp.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/imp_fire.png",
      "id": "monster_fire_imp",
      "kind": "monster",
      "level": 3,
      "maxLevel": null,
      "name": "Fire Imp",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 75,
        "Fire": 75,
        "Ice": -75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 3,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Fire Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_fire_imp.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_fire_imp.png",
      "tags": [
        "Demon",
        "Fire"
      ]
    },
    "monster_fire_lich": {
      "asset": "char/dark_fire_lich_wizard.png",
      "attributes": {
        "flying": false,
        "max_hp": 75,
        "radius": 0,
        "shields": 2,
        "stationary": false
      },
      "baseId": "fire_lich",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "FireLich",
      "group": "rare",
      "icon": "icons/runtime/monster_fire_lich.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/dark_fire_lich_wizard.png",
      "id": "monster_fire_lich",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Fire Lich",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Arcane": 50,
        "Dark": 100,
        "Fire": 75,
        "Ice": -100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 23,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Death Touch",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 25,
            "damage": 5,
            "duration": 9,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "WizardFireEye",
          "description": "Deal [5:damage] [Fire] to an enemy in line of sight each turn\nLasts [9:duration] turns",
          "name": "Eye of Fire",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 8,
            "damage": 13,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 4,
            "range": 8,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Fireball",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 20,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "LichSealSoulSpell",
          "description": "Summon a Soul Jar\nThe caster cannot die while the Soul Jar lives",
          "name": "Soul Jar",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_fire_lich.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_fire_lich.png",
      "tags": [
        "Undead",
        "Dark",
        "Fire"
      ]
    },
    "monster_fire_rocket_bomber": {
      "asset": "char/fire_bomber_cluster.png",
      "attributes": {
        "flying": false,
        "max_hp": 1,
        "radius": 0,
        "shields": 1,
        "stationary": false
      },
      "baseId": "fire_rocket_bomber",
      "buffs": [
        {
          "asset": "tiles/buffs/suicide_explosion.png",
          "className": "FireBomberBuff",
          "description": "",
          "name": "Suicide Explosion"
        },
        {
          "asset": "status/quickmove.png",
          "className": "QuickmoveBuff",
          "description": "",
          "name": "Quickstep"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "FireRocketBomber",
      "group": "normal",
      "icon": "icons/runtime/monster_fire_rocket_bomber.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/fire_bomber_cluster.png",
      "id": "monster_fire_rocket_bomber",
      "kind": "monster",
      "level": 4,
      "maxLevel": null,
      "name": "Fire Rocket Bomber",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 12,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 2,
            "requires_los": true
          },
          "className": "FireBomberSuicide",
          "description": "Suicide attack\n2 tile radius\nAutocast on death",
          "name": "Suicide Explosion",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_fire_rocket_bomber.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_fire_rocket_bomber.png",
      "tags": [
        "Fire",
        "Construct"
      ]
    },
    "monster_fire_spirit": {
      "asset": "char/fire_spirit.png",
      "attributes": {
        "flying": false,
        "max_hp": 10,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "fire_spirit",
      "buffs": [
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "SpiritBuff",
          "description": "",
          "name": "Unnamed buff"
        },
        {
          "asset": "tiles/buffs/thorns.png",
          "className": "Thorns",
          "description": [
            "Deal {damage} {dtype} damage to melee attackers",
            {
              "damage": 4,
              "dtype": [
                "[{tag_label}:{tag_key}]",
                {
                  "tag_key": "fire",
                  "tag_label": "Fire"
                }
              ]
            }
          ],
          "name": "Thorns"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "FireSpirit",
      "group": "normal",
      "icon": "icons/runtime/monster_fire_spirit.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/fire_spirit.png",
      "id": "monster_fire_spirit",
      "kind": "monster",
      "level": 3,
      "maxLevel": null,
      "name": "Fire Spirit",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Fire": 100,
        "Ice": -100,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 5,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 5,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Fire Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_fire_spirit.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_fire_spirit.png",
      "tags": [
        "Fire"
      ]
    },
    "monster_fire_wizard": {
      "asset": "char/fire_wizard.png",
      "attributes": {
        "flying": false,
        "max_hp": 70,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "fire_wizard",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "FireWizard",
      "group": "rare",
      "icon": "icons/runtime/monster_fire_wizard.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/fire_wizard.png",
      "id": "monster_fire_wizard",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Fire Wizard",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Fire": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 20,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 1,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon a Fire Drake",
          "name": "Summon Fire Drake",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 12,
            "duration": 8,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "FireProtection",
          "description": "Caster and allies gain 50% [Fire] resist for [8:duration] turns",
          "name": "Fire Protection",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 9,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 2,
            "range": 8,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Fire Ball",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_fire_wizard.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_fire_wizard.png",
      "tags": [
        "Living",
        "Fire"
      ]
    },
    "monster_fire_wyrm": {
      "asset": "char/wyrm_red.png",
      "attributes": {
        "flying": false,
        "max_hp": 75,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "fire_wyrm",
      "buffs": [
        {
          "asset": "status/heal.png",
          "className": "RegenBuff",
          "description": "",
          "name": "Regeneration"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "FireWyrm",
      "group": "normal",
      "icon": "icons/runtime/monster_fire_wyrm.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/wyrm_red.png",
      "id": "monster_fire_wyrm",
      "kind": "monster",
      "level": 7,
      "maxLevel": null,
      "name": "Fire Wyrm",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Fire": 100,
        "Ice": -50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "damage": 9,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 5,
            "requires_los": true
          },
          "className": "FireBreath",
          "description": "Cone attack",
          "name": "Fire Breath",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 14,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Trample attack",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_fire_wyrm.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_fire_wyrm.png",
      "tags": [
        "Fire",
        "Dragon",
        "Living"
      ]
    },
    "monster_fire_wyrm_egg": {
      "asset": "char/red_wyrm_egg.png",
      "attributes": {
        "flying": false,
        "max_hp": 14,
        "radius": 0,
        "shields": 0,
        "stationary": true
      },
      "baseId": "fire_wyrm_egg",
      "buffs": [
        {
          "asset": "tiles/buffs/summon_on_death.png",
          "className": "SpawnOnDeath",
          "description": "",
          "name": "Summon On Death"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "FireWyrmEgg",
      "group": "rare",
      "icon": "icons/runtime/monster_fire_wyrm_egg.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/red_wyrm_egg.png",
      "id": "monster_fire_wyrm_egg",
      "kind": "monster",
      "level": 2,
      "maxLevel": 9,
      "name": "Fire Wyrm Egg",
      "rare": true,
      "rareExtra": [
        "Fire"
      ],
      "resists": {
        "Fire": 100,
        "Ice": -50,
        "Physical": 50
      },
      "spells": [],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_fire_wyrm_egg.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_fire_wyrm_egg.png",
      "tags": [
        "Living",
        "Dragon",
        "Fire"
      ]
    },
    "monster_flame_maw": {
      "asset": "char/flamemouth.png",
      "attributes": {
        "flying": false,
        "max_hp": 36,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "flame_maw",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "FlameMaw",
      "group": "normal",
      "icon": "icons/runtime/monster_flame_maw.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/flamemouth.png",
      "id": "monster_flame_maw",
      "kind": "monster",
      "level": 5,
      "maxLevel": null,
      "name": "Flame Maw",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 100,
        "Fire": 100,
        "Ice": -50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 9,
            "damage": 5,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 4,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 7,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Beam attack\n\n\nCan be channeled for up to 4 turns",
          "name": "Fire Beam",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_flame_maw.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_flame_maw.png",
      "tags": [
        "Arcane",
        "Fire"
      ]
    },
    "monster_flame_rift": {
      "asset": "char/flame_rift.png",
      "attributes": {
        "flying": false,
        "max_hp": 30,
        "radius": 0,
        "shields": 0,
        "stationary": true
      },
      "baseId": "flame_rift",
      "buffs": [
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "GeneratorBuff",
          "description": "",
          "name": "Unnamed buff"
        },
        {
          "asset": "tiles/buffs/passive_teleportation.png",
          "className": "TeleportyBuff",
          "description": "",
          "name": "Passive Teleportation"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "FlameRift",
      "group": "normal",
      "icon": "icons/runtime/monster_flame_rift.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/flame_rift.png",
      "id": "monster_flame_rift",
      "kind": "monster",
      "level": 5,
      "maxLevel": null,
      "name": "Flame Rift",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 50,
        "Fire": 100,
        "Ice": -100,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 5,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 7,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Fire Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_flame_rift.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_flame_rift.png",
      "tags": [
        "Arcane",
        "Fire"
      ]
    },
    "monster_flame_toad": {
      "asset": "char/flame_toad.png",
      "attributes": {
        "flying": false,
        "max_hp": 45,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "flame_toad",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "FlameToad",
      "group": "normal",
      "icon": "icons/runtime/monster_flame_toad.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/flame_toad.png",
      "id": "monster_flame_toad",
      "kind": "monster",
      "level": 5,
      "maxLevel": null,
      "name": "Flame Toad",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Fire": 75,
        "Ice": -100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 4,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "ToadHop",
          "description": "Leaps to a random tile in line of sight within 4 tiles",
          "name": "Frog Hop",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 7,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 1,
            "range": 4,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Fireball",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_flame_toad.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_flame_toad.png",
      "tags": [
        "Living",
        "Fire",
        "Nature"
      ]
    },
    "monster_flaming_eyeball": {
      "asset": "char/flaming_eyeball.png",
      "attributes": {
        "flying": true,
        "max_hp": 1,
        "radius": 0,
        "shields": 4,
        "stationary": false
      },
      "baseId": "flaming_eyeball",
      "buffs": [
        {
          "asset": "tiles/buffs/passive_teleportation.png",
          "className": "TeleportyBuff",
          "description": "",
          "name": "Passive Teleportation"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "FlamingEye",
      "group": "normal",
      "icon": "icons/runtime/monster_flaming_eyeball.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/flaming_eyeball.png",
      "id": "monster_flaming_eyeball",
      "kind": "monster",
      "level": 7,
      "maxLevel": null,
      "name": "Flaming Eyeball",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 50,
        "Fire": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 4,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 1,
            "range": 99,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Fire Ball",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_flaming_eyeball.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_flaming_eyeball.png",
      "tags": [
        "Arcane",
        "Demon",
        "Fire"
      ]
    },
    "monster_flaming_flesh_fiend": {
      "asset": "char/fleshy_mass_burning.png",
      "attributes": {
        "flying": false,
        "max_hp": 431,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "flaming_flesh_fiend",
      "buffs": [
        {
          "asset": "status/heal.png",
          "className": "RegenBuff",
          "description": "",
          "name": "Regeneration"
        },
        {
          "asset": "tiles/buffs/burning_aura.png",
          "className": "DamageAuraBuff",
          "description": "",
          "name": "Burning Aura"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "FlamingFleshFiend",
      "group": "rare",
      "icon": "icons/runtime/monster_flaming_flesh_fiend.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/fleshy_mass_burning.png",
      "id": "monster_flaming_flesh_fiend",
      "kind": "monster",
      "level": 3,
      "maxLevel": 5,
      "name": "Flaming Flesh Fiend",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Fire": 100,
        "Physical": -50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 19,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_flaming_flesh_fiend.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_flaming_flesh_fiend.png",
      "tags": [
        "Demon",
        "Living",
        "Fire"
      ]
    },
    "monster_flesh_colossus": {
      "asset": "char/3x3_fleshfiend.png",
      "attributes": {
        "flying": false,
        "max_hp": 9006,
        "radius": 1,
        "shields": 0,
        "stationary": false
      },
      "baseId": "flesh_colossus",
      "buffs": [
        {
          "asset": "status/heal.png",
          "className": "RegenBuff",
          "description": "",
          "name": "Regeneration"
        },
        {
          "asset": "tiles/buffs/damage_aura.png",
          "className": "DamageAuraBuff",
          "description": "",
          "name": "Damage Aura"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "GiantFleshFiend",
      "group": "rare",
      "icon": "icons/runtime/monster_flesh_colossus.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/3x3_fleshfiend.png",
      "id": "monster_flesh_colossus",
      "kind": "monster",
      "level": 3,
      "maxLevel": 1,
      "name": "Flesh Colossus",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Physical": -50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 66,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 4,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_flesh_colossus.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 4,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_flesh_colossus.png",
      "tags": [
        "Demon",
        "Living"
      ]
    },
    "monster_flesh_fiend": {
      "asset": "char/fleshy_mass.png",
      "attributes": {
        "flying": false,
        "max_hp": 431,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "flesh_fiend",
      "buffs": [
        {
          "asset": "status/heal.png",
          "className": "RegenBuff",
          "description": "",
          "name": "Regeneration"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "FleshFiend",
      "group": "normal",
      "icon": "icons/runtime/monster_flesh_fiend.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/fleshy_mass.png",
      "id": "monster_flesh_fiend",
      "kind": "monster",
      "level": 8,
      "maxLevel": null,
      "name": "Flesh Fiend",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Physical": -50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 19,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_flesh_fiend.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_flesh_fiend.png",
      "tags": [
        "Demon",
        "Living"
      ]
    },
    "monster_floating_eyeball": {
      "asset": "char/floating_eyeball.png",
      "attributes": {
        "flying": true,
        "max_hp": 1,
        "radius": 0,
        "shields": 4,
        "stationary": false
      },
      "baseId": "floating_eyeball",
      "buffs": [
        {
          "asset": "tiles/buffs/passive_teleportation.png",
          "className": "TeleportyBuff",
          "description": "",
          "name": "Passive Teleportation"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "FloatingEye",
      "group": "normal",
      "icon": "icons/runtime/monster_floating_eyeball.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/floating_eyeball.png",
      "id": "monster_floating_eyeball",
      "kind": "monster",
      "level": 5,
      "maxLevel": null,
      "name": "Floating Eyeball",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 2,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 99,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Arcane Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_floating_eyeball.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_floating_eyeball.png",
      "tags": [
        "Arcane",
        "Demon"
      ]
    },
    "monster_fountain_of_blood": {
      "asset": "char/3x3_idol_of_vitality.png",
      "attributes": {
        "flying": false,
        "max_hp": 1500,
        "radius": 1,
        "shields": 20,
        "stationary": true
      },
      "baseId": "fountain_of_blood",
      "buffs": [
        {
          "asset": "tiles/buffs/aura_of_life.png",
          "className": "LifeIdolBuff",
          "description": "Each turn, heal [Living] allies for 5 HP",
          "name": "Aura of Life"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "IdolOfLife",
      "group": "rare",
      "icon": "icons/runtime/monster_fountain_of_blood.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/3X3_idol_of_vitality.png",
      "id": "monster_fountain_of_blood",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Fountain of Blood",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Fire": 50,
        "Lightning": 50,
        "Physical": 50
      },
      "spells": [],
      "sprite": {
        "animationMs": 900,
        "columns": 4,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_fountain_of_blood.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 4,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_fountain_of_blood.png",
      "tags": [
        "Construct"
      ]
    },
    "monster_fountain_of_venom": {
      "asset": "char/fountain_of_poison.png",
      "attributes": {
        "flying": false,
        "max_hp": 1500,
        "radius": 1,
        "shields": 20,
        "stationary": true
      },
      "baseId": "fountain_of_venom",
      "buffs": [
        {
          "asset": "tiles/buffs/aura_of_venom.png",
          "className": "IdolOfPoisonBuff",
          "description": "Each turn, extend the [poison] duration on [poisoned] enemies by 1 turn\n\nEach turn, apply 2 turns of [poison] to unpoisoned enemies",
          "name": "Aura of Venom"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "IdolOfPoison",
      "group": "rare",
      "icon": "icons/runtime/monster_fountain_of_venom.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/fountain_of_poison.png",
      "id": "monster_fountain_of_venom",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Fountain of Venom",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Fire": 50,
        "Lightning": 50,
        "Physical": 50
      },
      "spells": [],
      "sprite": {
        "animationMs": 900,
        "columns": 4,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_fountain_of_venom.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 4,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_fountain_of_venom.png",
      "tags": [
        "Construct"
      ]
    },
    "monster_frostfire_mage": {
      "asset": "char/fire_ice_wizard.png",
      "attributes": {
        "flying": false,
        "max_hp": 66,
        "radius": 0,
        "shields": 2,
        "stationary": false
      },
      "baseId": "frostfire_mage",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "FrostfireWizard",
      "group": "rare",
      "icon": "icons/runtime/monster_frostfire_mage.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/fire_ice_wizard.png",
      "id": "monster_frostfire_mage",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Frostfire Mage",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Fire": 50,
        "Ice": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 15,
            "duration": 25,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 1,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon a temporary Frostfire Hydra",
          "name": "Summon Frostfire Hydra",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 12,
            "duration": 8,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "FrostfireProtection",
          "description": "Caster and allies gain 50% [Fire] and [Ice] resist for [8:duration] turns",
          "name": "Frostfire Protection",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 18,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "WizardIceGaze",
          "description": "Other units in line of sight are [frozen] for 3 turns",
          "name": "Gaze of Winter",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 7,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 1,
            "range": 7,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Hurl Frostfire",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_frostfire_mage.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_frostfire_mage.png",
      "tags": [
        "Fire",
        "Ice",
        "Living"
      ]
    },
    "monster_frostfire_tormenting_mass": {
      "asset": "char/tormentor_frostfire_mass.png",
      "attributes": {
        "flying": false,
        "max_hp": 93,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "frostfire_tormenting_mass",
      "buffs": [
        {
          "asset": "tiles/buffs/summon_on_death.png",
          "className": "SpawnOnDeath",
          "description": "",
          "name": "Summon On Death"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "FrostfireTormentorMass",
      "group": "rare",
      "icon": "icons/runtime/monster_frostfire_tormenting_mass.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/tormentor_frostfire_mass.png",
      "id": "monster_frostfire_tormenting_mass",
      "kind": "monster",
      "level": 2,
      "maxLevel": 6,
      "name": "Frostfire Tormenting Mass",
      "rare": true,
      "rareExtra": [
        "Demon"
      ],
      "resists": {
        "Dark": 100,
        "Fire": 100,
        "Ice": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "damage": 7,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 4,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleBurst",
          "description": "Deal damage in a burst around the caster\nApplies 2 turns of [frozen]",
          "name": "Frostfire Torment",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 2,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 2,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Heals for damage dealt",
          "name": "Soul Suck",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_frostfire_tormenting_mass.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_frostfire_tormenting_mass.png",
      "tags": [
        "Fire",
        "Ice",
        "Demon"
      ]
    },
    "monster_frostfire_tormentor": {
      "asset": "char/tormentor_frostfire.png",
      "attributes": {
        "flying": false,
        "max_hp": 56,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "frostfire_tormentor",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "FrostfireTormentor",
      "group": "normal",
      "icon": "icons/runtime/monster_frostfire_tormentor.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/tormentor_frostfire.png",
      "id": "monster_frostfire_tormentor",
      "kind": "monster",
      "level": 6,
      "maxLevel": null,
      "name": "Frostfire Tormentor",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 100,
        "Fire": 100,
        "Ice": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "damage": 7,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 4,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleBurst",
          "description": "Deal damage in a burst around the caster\nApplies 2 turns of [frozen]",
          "name": "Frostfire Torment",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 2,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 2,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Heals for damage dealt",
          "name": "Soul Suck",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_frostfire_tormentor.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_frostfire_tormentor.png",
      "tags": [
        "Fire",
        "Ice",
        "Demon"
      ]
    },
    "monster_frosty_tormentor": {
      "asset": "char/tormentor_ice.png",
      "attributes": {
        "flying": false,
        "max_hp": 34,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "frosty_tormentor",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "IcyTormentor",
      "group": "normal",
      "icon": "icons/runtime/monster_frosty_tormentor.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/tormentor_ice.png",
      "id": "monster_frosty_tormentor",
      "kind": "monster",
      "level": 5,
      "maxLevel": null,
      "name": "Frosty Tormentor",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 100,
        "Fire": -50,
        "Ice": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 5,
            "damage": 7,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 4,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleBurst",
          "description": "Deal damage in a burst around the caster",
          "name": "Frosty Torment",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 2,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 2,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Heals for damage dealt",
          "name": "Soul Suck",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_frosty_tormentor.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_frosty_tormentor.png",
      "tags": [
        "Ice",
        "Demon"
      ]
    },
    "monster_fujin": {
      "asset": "char/fujin.png",
      "attributes": {
        "flying": true,
        "max_hp": 760,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "fujin",
      "buffs": [
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "CloudGeneratorBuff",
          "description": "",
          "name": "Unnamed buff"
        },
        {
          "asset": "tiles/buffs/cloud_eater.png",
          "className": "CloudEaterBuff",
          "description": "",
          "name": "Cloud Eater"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Fujin",
      "group": "rare",
      "icon": "icons/runtime/monster_fujin.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/fujin.png",
      "id": "monster_fujin",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Fujin",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Dark": 0,
        "Holy": 0,
        "Lightning": 75,
        "Physical": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 8,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Apply stunned for 1 turn\n\n\nPushes the target up to 3 tiles away",
          "name": "Wind Blast",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_fujin.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_fujin.png",
      "tags": [
        "Holy",
        "Nature",
        "Demon"
      ]
    },
    "monster_furnace_fiend": {
      "asset": "char/fiend_furnace.png",
      "attributes": {
        "flying": false,
        "max_hp": 166,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "furnace_fiend",
      "buffs": [
        {
          "asset": "tiles/buffs/fire_aura.png",
          "className": "DamageAuraBuff",
          "description": "",
          "name": "Fire Aura"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "FurnaceFiend",
      "group": "normal",
      "icon": "icons/runtime/monster_furnace_fiend.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/fiend_furnace.png",
      "id": "monster_furnace_fiend",
      "kind": "monster",
      "level": 8,
      "maxLevel": null,
      "name": "Furnace Fiend",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Ice": -50,
        "Lightning": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 7,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 3,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon 3 Furnace Imps",
          "name": "Summon Furnace Imps",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 2,
            "damage": 5,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 6,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Beam attack",
          "name": "Dark Beam",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 13,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 5,
            "requires_los": true
          },
          "className": "FireBreath",
          "description": "Cone attack",
          "name": "Fire Blast",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_furnace_fiend.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_furnace_fiend.png",
      "tags": [
        "Fire",
        "Metallic",
        "Demon"
      ]
    },
    "monster_gargoyle": {
      "asset": "char/gargoyle.png",
      "attributes": {
        "flying": true,
        "max_hp": 60,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "gargoyle",
      "buffs": [
        {
          "asset": "tiles/buffs/respawn_as_gargoyle_statue.png",
          "className": "RespawnAs",
          "description": "",
          "name": "Respawn As Gargoyle Statue"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "Gargoyle",
      "group": "normal",
      "icon": "icons/runtime/monster_gargoyle.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/gargoyle.png",
      "id": "monster_gargoyle",
      "kind": "monster",
      "level": 6,
      "maxLevel": null,
      "name": "Gargoyle",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 75,
        "Holy": -50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 12,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_gargoyle.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_gargoyle.png",
      "tags": [
        "Metallic",
        "Construct",
        "Dark"
      ]
    },
    "monster_gelgut": {
      "asset": "char/3x3_slime_dragon.png",
      "attributes": {
        "flying": true,
        "max_hp": 3845,
        "radius": 1,
        "shields": 0,
        "stationary": false
      },
      "baseId": "gelgut",
      "buffs": [
        {
          "asset": "tiles/buffs/slime_growth.png",
          "className": "SlimeBuff",
          "description": [
            "Each turn, {chance}% chance to heal for 10% of original max HP\nExcess raises max HP\nAt double original max HP, split into 2 {spawn}",
            {
              "chance": 50,
              "spawn": "Gelguts"
            }
          ],
          "name": "Slime Growth"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Gelgut",
      "group": "rare",
      "icon": "icons/runtime/monster_gelgut.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/3x3_slime_dragon.png",
      "id": "monster_gelgut",
      "kind": "monster",
      "level": 3,
      "maxLevel": 1,
      "name": "Gelgut",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Physical": 75,
        "Poison": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "damage": 18,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 7,
            "requires_los": true
          },
          "className": "PoisonBreath",
          "description": "Cone attack",
          "name": "Poison Breath",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 45,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 4,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_gelgut.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 4,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_gelgut.png",
      "tags": [
        "Slime",
        "Dragon"
      ]
    },
    "monster_gelid_mirror": {
      "asset": "char/gelid_mirror.png",
      "attributes": {
        "flying": false,
        "max_hp": 888,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "gelid_mirror",
      "buffs": [
        {
          "asset": "tiles/buffs/curse_reflection.png",
          "className": "CurseReflection",
          "description": "Debuffs that would be applied to this unit are instead applied to an enemy in its line of sight",
          "name": "Curse Reflection"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "GelidMirror",
      "group": "normal",
      "icon": "icons/runtime/monster_gelid_mirror.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/gelid_mirror.png",
      "id": "monster_gelid_mirror",
      "kind": "monster",
      "level": 9,
      "maxLevel": null,
      "name": "Gelid Mirror",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Fire": -100,
        "Ice": 75,
        "Lightning": 75,
        "Physical": -100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 10,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 6,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Beam attack",
          "name": "Ice Beam",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 8,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "SelfReflectionSpell",
          "description": "Channel for 8 turns, then summon a Gelid Mirror in line of sight",
          "name": "Self Reflection",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_gelid_mirror.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_gelid_mirror.png",
      "tags": [
        "Ice",
        "Glass",
        "Construct"
      ]
    },
    "monster_gemini_twin": {
      "asset": "char/gemini.png",
      "attributes": {
        "flying": false,
        "max_hp": 400,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "gemini_twin",
      "buffs": [
        {
          "asset": "tiles/buffs/healing_aura.png",
          "className": "HealAuraBuff",
          "description": "",
          "name": "Healing Aura"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Gemini",
      "group": "rare",
      "icon": "icons/runtime/monster_gemini_twin.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/gemini.png",
      "id": "monster_gemini_twin",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Gemini Twin",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Arcane": 75,
        "Dark": 75,
        "Holy": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "GeminiCloneSpell",
          "description": "Create another Gemini Twin with the same current HP\nOnly 2 twins can exist at once",
          "name": "Duplicate",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 15,
            "requires_los": false
          },
          "className": "MonsterTeleport",
          "description": "Teleport to a random tile",
          "name": "Teleport",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 5,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 12,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Arcane Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_gemini_twin.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_gemini_twin.png",
      "tags": [
        "Nature",
        "Holy",
        "Living",
        "Arcane"
      ]
    },
    "monster_ghost": {
      "asset": "char/ghost.png",
      "attributes": {
        "flying": true,
        "max_hp": 4,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "ghost",
      "buffs": [
        {
          "asset": "tiles/buffs/passive_teleportation.png",
          "className": "TeleportyBuff",
          "description": "",
          "name": "Passive Teleportation"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Ghost",
      "group": "normal",
      "icon": "icons/runtime/monster_ghost.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/ghost.png",
      "id": "monster_ghost",
      "kind": "monster",
      "level": 2,
      "maxLevel": null,
      "name": "Ghost",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 50,
        "Physical": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 1,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_ghost.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_ghost.png",
      "tags": [
        "Dark",
        "Undead"
      ]
    },
    "monster_ghostly_mass": {
      "asset": "char/ghostly_mass.png",
      "attributes": {
        "flying": true,
        "max_hp": 28,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "ghostly_mass",
      "buffs": [
        {
          "asset": "tiles/buffs/passive_teleportation.png",
          "className": "TeleportyBuff",
          "description": "",
          "name": "Passive Teleportation"
        },
        {
          "asset": "tiles/buffs/summon_on_death.png",
          "className": "SpawnOnDeath",
          "description": "",
          "name": "Summon On Death"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "GhostMass",
      "group": "normal",
      "icon": "icons/runtime/monster_ghostly_mass.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/ghostly_mass.png",
      "id": "monster_ghostly_mass",
      "kind": "monster",
      "level": 6,
      "maxLevel": null,
      "name": "Ghostly Mass",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 50,
        "Physical": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_ghostly_mass.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_ghostly_mass.png",
      "tags": [
        "Dark",
        "Undead"
      ]
    },
    "monster_giant_flaming_skull": {
      "asset": "char/giant_flaming_skull.png",
      "attributes": {
        "flying": true,
        "max_hp": 78,
        "radius": 0,
        "shields": 0,
        "stationary": true
      },
      "baseId": "giant_flaming_skull",
      "buffs": [
        {
          "asset": "tiles/buffs/passive_teleportation.png",
          "className": "TeleportyBuff",
          "description": "",
          "name": "Passive Teleportation"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "GiantFlamingSkull",
      "group": "normal",
      "icon": "icons/runtime/monster_giant_flaming_skull.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/giant_flaming_skull.png",
      "id": "monster_giant_flaming_skull",
      "kind": "monster",
      "level": 8,
      "maxLevel": null,
      "name": "Giant Flaming Skull",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 100,
        "Fire": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 2,
            "damage": 13,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 7,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Beam attack",
          "name": "Death Gaze",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 4,
            "damage": 25,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 4,
            "range": 7,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Giant Fireball",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_giant_flaming_skull.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_giant_flaming_skull.png",
      "tags": [
        "Undead",
        "Dark",
        "Fire"
      ]
    },
    "monster_giant_floating_skull": {
      "asset": "char/giant_skull.png",
      "attributes": {
        "flying": true,
        "max_hp": 78,
        "radius": 0,
        "shields": 0,
        "stationary": true
      },
      "baseId": "giant_floating_skull",
      "buffs": [
        {
          "asset": "tiles/buffs/passive_teleportation.png",
          "className": "TeleportyBuff",
          "description": "",
          "name": "Passive Teleportation"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "GiantSkull",
      "group": "normal",
      "icon": "icons/runtime/monster_giant_floating_skull.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/giant_skull.png",
      "id": "monster_giant_floating_skull",
      "kind": "monster",
      "level": 7,
      "maxLevel": null,
      "name": "Giant Floating Skull",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 2,
            "damage": 13,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 7,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Beam attack",
          "name": "Death Gaze",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_giant_floating_skull.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_giant_floating_skull.png",
      "tags": [
        "Undead",
        "Dark"
      ]
    },
    "monster_giant_gorgon": {
      "asset": "char/3x3_gorgon.png",
      "attributes": {
        "flying": false,
        "max_hp": 3972,
        "radius": 1,
        "shields": 0,
        "stationary": false
      },
      "baseId": "giant_gorgon",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "GiantGorgon",
      "group": "rare",
      "icon": "icons/runtime/monster_giant_gorgon.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/3x3_gorgon.png",
      "id": "monster_giant_gorgon",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Giant Gorgon",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Dark": 75,
        "Physical": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 10,
            "damage": 9,
            "duration": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 7,
            "requires_los": true
          },
          "className": "GreyGorgonBreath",
          "description": "Cone attack\nApplies [petrify] for 2 turns",
          "name": "Grey Gorgon Breath",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 38,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 4,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_giant_gorgon.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 4,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_giant_gorgon.png",
      "tags": [
        "Dark",
        "Living"
      ]
    },
    "monster_giant_hornet": {
      "asset": "char/hornet.png",
      "attributes": {
        "flying": true,
        "max_hp": 3,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "giant_hornet",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Hornet",
      "group": "normal",
      "icon": "icons/runtime/monster_giant_hornet.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/hornet.png",
      "id": "monster_giant_hornet",
      "kind": "monster",
      "level": 1,
      "maxLevel": null,
      "name": "Giant Hornet",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 1,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Apply poison for 3 turns",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_giant_hornet.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_giant_hornet.png",
      "tags": [
        "Nature",
        "Living"
      ]
    },
    "monster_giant_mass_of_eyes": {
      "asset": "char/3x3_mass_of_eyes.png",
      "attributes": {
        "flying": true,
        "max_hp": 1009,
        "radius": 1,
        "shields": 8,
        "stationary": false
      },
      "baseId": "giant_mass_of_eyes",
      "buffs": [
        {
          "asset": "tiles/buffs/passive_teleportation.png",
          "className": "TeleportyBuff",
          "description": "",
          "name": "Passive Teleportation"
        },
        {
          "asset": "tiles/buffs/summon_on_death.png",
          "className": "SpawnOnDeath",
          "description": "",
          "name": "Summon On Death"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "GiantMassOfEyes",
      "group": "rare",
      "icon": "icons/runtime/monster_giant_mass_of_eyes.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/3x3_mass_of_eyes.png",
      "id": "monster_giant_mass_of_eyes",
      "kind": "monster",
      "level": 3,
      "maxLevel": 1,
      "name": "Giant Mass of Eyes",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Arcane": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 9,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 3,
            "range": 99,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Arcane Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 4,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_giant_mass_of_eyes.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 4,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_giant_mass_of_eyes.png",
      "tags": [
        "Arcane",
        "Demon"
      ]
    },
    "monster_giant_nightmare_turtle": {
      "asset": "char/3x3_nightmare_turtle.png",
      "attributes": {
        "flying": false,
        "max_hp": 12491,
        "radius": 1,
        "shields": 0,
        "stationary": false
      },
      "baseId": "giant_nightmare_turtle",
      "buffs": [
        {
          "asset": "tiles/buffs/nightmare_aura.png",
          "className": "DamageAuraBuff",
          "description": "",
          "name": "Nightmare Aura"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "GiantNightmareTurtle",
      "group": "rare",
      "icon": "icons/runtime/monster_giant_nightmare_turtle.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/3x3_nightmare_turtle.png",
      "id": "monster_giant_nightmare_turtle",
      "kind": "monster",
      "level": 3,
      "maxLevel": 1,
      "name": "Giant Nightmare Turtle",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Arcane": 50,
        "Dark": 75,
        "Physical": 25
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 40,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 4,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_giant_nightmare_turtle.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 4,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_giant_nightmare_turtle.png",
      "tags": [
        "Dark",
        "Nature",
        "Arcane",
        "Demon"
      ]
    },
    "monster_giant_sack_of_filth": {
      "asset": "char/3x3_sack_of_filth.png",
      "attributes": {
        "flying": false,
        "max_hp": 1987,
        "radius": 1,
        "shields": 0,
        "stationary": false
      },
      "baseId": "giant_sack_of_filth",
      "buffs": [
        {
          "asset": "tiles/buffs/summon_on_death.png",
          "className": "SpawnOnDeath",
          "description": "",
          "name": "Summon On Death"
        },
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "GeneratorBuff",
          "description": "",
          "name": "Unnamed buff"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "GiantSackOfFilth",
      "group": "rare",
      "icon": "icons/runtime/monster_giant_sack_of_filth.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/3x3_sack_of_filth.png",
      "id": "monster_giant_sack_of_filth",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Giant Sack of Filth",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Dark": 50,
        "Fire": -100,
        "Physical": 25
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 9,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 6,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon 6 Fly Swarms",
          "name": "Summon Fly Swarms",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 5,
            "damage": 9,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 2,
            "range": 5,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Apply poison for 4 turns",
          "name": "Poison Ball",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 4,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 12,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Dark Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 4,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_giant_sack_of_filth.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 4,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_giant_sack_of_filth.png",
      "tags": [
        "Dark",
        "Construct"
      ]
    },
    "monster_giant_spider": {
      "asset": "char/dark_spider.png",
      "attributes": {
        "flying": false,
        "max_hp": 14,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "giant_spider",
      "buffs": [
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "SpiderBuff",
          "description": "",
          "name": "Unnamed buff"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "GiantSpider",
      "group": "normal",
      "icon": "icons/runtime/monster_giant_spider.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/dark_spider.png",
      "id": "monster_giant_spider",
      "kind": "monster",
      "level": 3,
      "maxLevel": null,
      "name": "Giant Spider",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Ice": -50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 2,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Apply poison for 10 turns",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_giant_spider.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_giant_spider.png",
      "tags": [
        "Spider",
        "Living",
        "Nature"
      ]
    },
    "monster_giant_spider_queen": {
      "asset": "char/dark_spider_mother.png",
      "attributes": {
        "flying": false,
        "max_hp": 96,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "giant_spider_queen",
      "buffs": [
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "SpiderBuff",
          "description": "",
          "name": "Unnamed buff"
        },
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "GeneratorBuff",
          "description": "",
          "name": "Unnamed buff"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "GiantSpiderQueen",
      "group": "normal",
      "icon": "icons/runtime/monster_giant_spider_queen.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/dark_spider_mother.png",
      "id": "monster_giant_spider_queen",
      "kind": "monster",
      "level": 5,
      "maxLevel": null,
      "name": "Giant Spider Queen",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Ice": -50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 16,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Apply poison for 10 turns",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_giant_spider_queen.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_giant_spider_queen.png",
      "tags": [
        "Spider",
        "Living",
        "Nature"
      ]
    },
    "monster_gilded_tyrant": {
      "asset": "char/gilded_tyrant.png",
      "attributes": {
        "flying": true,
        "max_hp": 1000,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "gilded_tyrant",
      "buffs": [
        {
          "asset": "tiles/buffs/gilded_pyre.png",
          "className": "GildedPyreBuff",
          "description": "",
          "name": "Gilded Pyre"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "GildedTyrant",
      "group": "rare",
      "icon": "icons/runtime/monster_gilded_tyrant.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/gilded_tyrant.png",
      "id": "monster_gilded_tyrant",
      "kind": "monster",
      "level": 3,
      "maxLevel": 1,
      "name": "Gilded Tyrant",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Dark": 100,
        "Fire": 100,
        "Holy": 100,
        "Ice": 0,
        "Physical": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 2,
            "damage": 99,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Apply immobilized for 10 turns\n\n\nHeals for damage dealt",
          "name": "Gilded Grasp",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 2,
            "damage": 40,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 9,
            "requires_los": true
          },
          "className": "WideBeam",
          "description": "Deals damage in a wide beam",
          "name": "Solar Flare",
          "tags": [
            "Fire"
          ]
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_gilded_tyrant.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_gilded_tyrant.png",
      "tags": [
        "Holy",
        "Dark",
        "Fire",
        "Metallic"
      ]
    },
    "monster_glacial_turtle": {
      "asset": "char/glacial_turtle.png",
      "attributes": {
        "flying": false,
        "max_hp": 395,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "glacial_turtle",
      "buffs": [
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "TurtleBuff",
          "description": "",
          "name": "Unnamed buff"
        },
        {
          "asset": "tiles/buffs/ice_age_shell.png",
          "className": "GlacialTurtleBuff",
          "description": "",
          "name": "Ice Age Shell"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "GlacialTurtle",
      "group": "normal",
      "icon": "icons/runtime/monster_glacial_turtle.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/glacial_turtle.png",
      "id": "monster_glacial_turtle",
      "kind": "monster",
      "level": 9,
      "maxLevel": null,
      "name": "Glacial Turtle",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Fire": -50,
        "Ice": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 30,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_glacial_turtle.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_glacial_turtle.png",
      "tags": [
        "Nature",
        "Ice",
        "Demon"
      ]
    },
    "monster_glass_mushboom": {
      "asset": "char/glass_mushboom.png",
      "attributes": {
        "flying": false,
        "max_hp": 11,
        "radius": 0,
        "shields": 2,
        "stationary": false
      },
      "baseId": "glass_mushboom",
      "buffs": [
        {
          "asset": "tiles/buffs/mushboom_burst.png",
          "className": "MushboomBuff",
          "description": [
            "On death, apply {buff} to adjacent units for {duration} turns",
            {
              "buff": "Bleed",
              "duration": 4
            }
          ],
          "name": "Mushboom Burst"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "GlassMushboom",
      "group": "normal",
      "icon": "icons/runtime/monster_glass_mushboom.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/glass_mushboom.png",
      "id": "monster_glass_mushboom",
      "kind": "monster",
      "level": 4,
      "maxLevel": null,
      "name": "Glass Mushboom",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Poison": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 3,
            "damage": 1,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 3,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Apply glassed for 2 turns",
          "name": "Glass Spores",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_glass_mushboom.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_glass_mushboom.png",
      "tags": [
        "Nature",
        "Glass",
        "Arcane",
        "Construct"
      ]
    },
    "monster_gloomwing": {
      "asset": "char/3x3_bat_dragon.png",
      "attributes": {
        "flying": true,
        "max_hp": 2187,
        "radius": 1,
        "shields": 0,
        "stationary": false
      },
      "baseId": "gloomwing",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Gloomwing",
      "group": "rare",
      "icon": "icons/runtime/monster_gloomwing.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/3x3_bat_dragon.png",
      "id": "monster_gloomwing",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Gloomwing",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Dark": 100,
        "Holy": -50,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 4,
            "damage": 14,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 11,
            "requires_los": true
          },
          "className": "BatBreath",
          "description": "Cone attack\nSummons Bats in empty tiles",
          "name": "Torrent of Bats",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 27,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Heals for damage dealt",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 4,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_gloomwing.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 4,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_gloomwing.png",
      "tags": [
        "Dragon",
        "Dark",
        "Blood",
        "Undead"
      ]
    },
    "monster_gnome": {
      "asset": "char/gnome.png",
      "attributes": {
        "flying": false,
        "max_hp": 10,
        "radius": 0,
        "shields": 1,
        "stationary": false
      },
      "baseId": "gnome",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Gnome",
      "group": "normal",
      "icon": "icons/runtime/monster_gnome.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/gnome.png",
      "id": "monster_gnome",
      "kind": "monster",
      "level": 4,
      "maxLevel": null,
      "name": "Gnome",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 1,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 4,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Summons a Fae Thorn next to the target",
          "name": "Thorn Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_gnome.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_gnome.png",
      "tags": [
        "Living",
        "Nature",
        "Arcane"
      ]
    },
    "monster_gnome_castle": {
      "asset": "char/gnome_castle.png",
      "attributes": {
        "flying": false,
        "max_hp": 1200,
        "radius": 1,
        "shields": 0,
        "stationary": true
      },
      "baseId": "gnome_castle",
      "buffs": [
        {
          "asset": "tiles/buffs/summon_on_death.png",
          "className": "SpawnOnDeath",
          "description": "",
          "name": "Summon On Death"
        },
        {
          "asset": "tiles/buffs/summon_on_death.png",
          "className": "SpawnOnDeath",
          "description": "",
          "name": "Summon On Death"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "GnomeCastle",
      "group": "rare",
      "icon": "icons/runtime/monster_gnome_castle.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/gnome_castle.png",
      "id": "monster_gnome_castle",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Gnome Castle",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 1,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 8,
            "requires_los": true
          },
          "className": "FortressShot",
          "description": "Each fortress tile shoots a target in range of that tile",
          "name": "Thorn Bolt Barrage",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "FortressBuild",
          "description": "Build a Gnome spawner on connected tile",
          "name": "Expand Fortress",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_gnome_castle.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 2,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_gnome_castle.png",
      "tags": []
    },
    "monster_gnome_donsy": {
      "asset": "char/gnome_donsy.png",
      "attributes": {
        "flying": false,
        "max_hp": 50,
        "radius": 0,
        "shields": 5,
        "stationary": false
      },
      "baseId": "gnome_donsy",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "GnomeDonsy",
      "group": "rare",
      "icon": "icons/runtime/monster_gnome_donsy.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/gnome_donsy.png",
      "id": "monster_gnome_donsy",
      "kind": "monster",
      "level": 1,
      "maxLevel": 5,
      "name": "Gnome Donsy",
      "rare": true,
      "rareExtra": [
        "Nature"
      ],
      "resists": {
        "Arcane": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 1,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 4,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Summons a Fae Thorn next to the target, attacks 5 times\n\n\nShoots 5 times",
          "name": "Thorn Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_gnome_donsy.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_gnome_donsy.png",
      "tags": [
        "Living",
        "Nature",
        "Arcane"
      ]
    },
    "monster_goatia": {
      "asset": "char/floating_goat_head.png",
      "attributes": {
        "flying": true,
        "max_hp": 17,
        "radius": 0,
        "shields": 0,
        "stationary": true
      },
      "baseId": "goatia",
      "buffs": [
        {
          "asset": "tiles/buffs/death_explosion.png",
          "className": "DeathExplosion",
          "description": "",
          "name": "Death Explosion"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "GoatHead",
      "group": "normal",
      "icon": "icons/runtime/monster_goatia.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/floating_goat_head.png",
      "id": "monster_goatia",
      "kind": "monster",
      "level": 4,
      "maxLevel": null,
      "name": "Goatia",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 2,
            "damage": 5,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 3,
            "requires_los": true
          },
          "className": "LeapAttack",
          "description": "Leap attack",
          "name": "Pounce",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 2,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 3,
            "requires_los": false
          },
          "className": "MonsterTeleport",
          "description": "Teleport to a random tile",
          "name": "Teleport",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_goatia.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_goatia.png",
      "tags": [
        "Demon",
        "Nature"
      ]
    },
    "monster_goblin": {
      "asset": "char/goblin.png",
      "attributes": {
        "flying": false,
        "max_hp": 7,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "goblin",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Goblin",
      "group": "normal",
      "icon": "icons/runtime/monster_goblin.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/goblin.png",
      "id": "monster_goblin",
      "kind": "monster",
      "level": 1,
      "maxLevel": null,
      "name": "Goblin",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 2,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_goblin.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_goblin.png",
      "tags": [
        "Living"
      ]
    },
    "monster_goblin_cave": {
      "asset": "char/goblin_cave.png",
      "attributes": {
        "flying": false,
        "max_hp": 500,
        "radius": 1,
        "shields": 0,
        "stationary": true
      },
      "baseId": "goblin_cave",
      "buffs": [
        {
          "asset": "tiles/buffs/summon_on_death.png",
          "className": "SpawnOnDeath",
          "description": "",
          "name": "Summon On Death"
        },
        {
          "asset": "tiles/buffs/summon_on_death.png",
          "className": "SpawnOnDeath",
          "description": "",
          "name": "Summon On Death"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "GoblinCave",
      "group": "rare",
      "icon": "icons/runtime/monster_goblin_cave.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/goblin_cave.png",
      "id": "monster_goblin_cave",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Goblin Cave",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 5,
            "requires_los": true
          },
          "className": "FortressShot",
          "description": "Each fortress tile shoots a target in range of that tile",
          "name": "Rock Barrage",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "FortressBuild",
          "description": "Build a Goblin spawner on connected tile",
          "name": "Expand Fortress",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_goblin_cave.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 2,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_goblin_cave.png",
      "tags": []
    },
    "monster_goblin_shaman": {
      "asset": "char/goblin_shaman.png",
      "attributes": {
        "flying": false,
        "max_hp": 33,
        "radius": 0,
        "shields": 6,
        "stationary": false
      },
      "baseId": "goblin_shaman",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "GoblinShaman",
      "group": "rare",
      "icon": "icons/runtime/monster_goblin_shaman.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/goblin_shaman.png",
      "id": "monster_goblin_shaman",
      "kind": "monster",
      "level": 1,
      "maxLevel": 5,
      "name": "Goblin Shaman",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 5,
            "duration": 10,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 1,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon a temporary Lightning Totem",
          "name": "Summon Lightning Totem",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 5,
            "duration": 10,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 1,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon a temporary Healing Totem",
          "name": "Summon Healing Totem",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 3,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Dark Bolt",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 2,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_goblin_shaman.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_goblin_shaman.png",
      "tags": [
        "Living"
      ]
    },
    "monster_goblin_wizard": {
      "asset": "char/goblin_wizard.png",
      "attributes": {
        "flying": false,
        "max_hp": 45,
        "radius": 0,
        "shields": 2,
        "stationary": false
      },
      "baseId": "goblin_wizard",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "GoblinWizard",
      "group": "rare",
      "icon": "icons/runtime/monster_goblin_wizard.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/goblin_wizard.png",
      "id": "monster_goblin_wizard",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Goblin Wizard",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 10,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 3,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon 3 Giant Spiders",
          "name": "Summon Giant Spiders",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 10,
            "requires_los": true
          },
          "className": "WizardIgnitePoison",
          "description": "Target poisoned unit loses all poison stacks and takes that much fire damage",
          "name": "Ignite Poison",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 13,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 12,
            "requires_los": true
          },
          "className": "HagSwap",
          "description": "Swap places with the Wizard",
          "name": "Aether Swap",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 9,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 7,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Apply poison for 7 turns",
          "name": "Poison Sting",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_goblin_wizard.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_goblin_wizard.png",
      "tags": [
        "Arcane",
        "Nature",
        "Living"
      ]
    },
    "monster_gold_drake": {
      "asset": "char/gold_drake.png",
      "attributes": {
        "flying": true,
        "max_hp": 48,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "gold_drake",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "GoldDrake",
      "group": "normal",
      "icon": "icons/runtime/monster_gold_drake.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/gold_drake.png",
      "id": "monster_gold_drake",
      "kind": "monster",
      "level": 6,
      "maxLevel": null,
      "name": "Gold Drake",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Holy": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "damage": 9,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 5,
            "requires_los": true
          },
          "className": "HolyBreath",
          "description": "Cone attack\nHeals allies",
          "name": "Holy Breath",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_gold_drake.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_gold_drake.png",
      "tags": [
        "Dragon",
        "Living",
        "Holy"
      ]
    },
    "monster_golden_skull": {
      "asset": "char/giant_skull_gilded.png",
      "attributes": {
        "flying": true,
        "max_hp": 78,
        "radius": 0,
        "shields": 2,
        "stationary": true
      },
      "baseId": "golden_skull",
      "buffs": [
        {
          "asset": "tiles/buffs/passive_teleportation.png",
          "className": "TeleportyBuff",
          "description": "",
          "name": "Passive Teleportation"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "GoldSkull",
      "group": "normal",
      "icon": "icons/runtime/monster_golden_skull.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/giant_skull_gilded.png",
      "id": "monster_golden_skull",
      "kind": "monster",
      "level": 8,
      "maxLevel": null,
      "name": "Golden Skull",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 50,
        "Holy": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 2,
            "damage": 13,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 7,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Beam attack",
          "name": "Wrath Gaze",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 2,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 7,
            "requires_los": true
          },
          "className": "HealAlly",
          "description": "Heals an ally for 13 HP",
          "name": "Heal Ally",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_golden_skull.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_golden_skull.png",
      "tags": [
        "Undead",
        "Dark",
        "Holy",
        "Metallic"
      ]
    },
    "monster_golem": {
      "asset": "char/golem.png",
      "attributes": {
        "flying": false,
        "max_hp": 25,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "golem",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Golem",
      "group": "normal",
      "icon": "icons/runtime/monster_golem.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/golem.png",
      "id": "monster_golem",
      "kind": "monster",
      "level": 5,
      "maxLevel": null,
      "name": "Golem",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_golem.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_golem.png",
      "tags": [
        "Construct",
        "Metallic"
      ]
    },
    "monster_goo_spitter": {
      "asset": "char/goo_spitter.png",
      "attributes": {
        "flying": false,
        "max_hp": 85,
        "radius": 0,
        "shields": 0,
        "stationary": true
      },
      "baseId": "goo_spitter",
      "buffs": [
        {
          "asset": "tiles/buffs/toxic_aura.png",
          "className": "ToxicAura",
          "description": "",
          "name": "Toxic Aura"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "GooSpitter",
      "group": "rare",
      "icon": "icons/runtime/monster_goo_spitter.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/goo_spitter.png",
      "id": "monster_goo_spitter",
      "kind": "monster",
      "level": 1,
      "maxLevel": 6,
      "name": "Goo Spitter",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Dark": -50,
        "Ice": -50,
        "Physical": 50,
        "Poison": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 8,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Summons a Green Slime next to the target",
          "name": "Spit",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_goo_spitter.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_goo_spitter.png",
      "tags": [
        "Slime"
      ]
    },
    "monster_grand_warlock": {
      "asset": "char/grand_warlock.png",
      "attributes": {
        "flying": false,
        "max_hp": 133,
        "radius": 0,
        "shields": 1,
        "stationary": false
      },
      "baseId": "grand_warlock",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "GrandWarlock",
      "group": "rare",
      "icon": "icons/runtime/monster_grand_warlock.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/grand_warlock.png",
      "id": "monster_grand_warlock",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Grand Warlock",
      "rare": true,
      "rareExtra": [
        "Demon"
      ],
      "resists": {
        "Fire": 75,
        "Lightning": 75,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 5,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 11,
            "requires_los": true
          },
          "className": "WizardImpPrison",
          "description": "Surround enemies with Imps",
          "name": "Prison of Imps",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 30,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 10,
            "requires_los": true
          },
          "className": "WizardDemonicPromotion",
          "description": "Transforms an Imp into a Fiend",
          "name": "Demonic Promotion",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 7,
            "hp_cost": 0,
            "level": 2,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 4,
            "requires_los": true
          },
          "className": "AnnihilateSpell",
          "description": "Deal [7:damage] [Fire], [Lightning], and [Physical] damage to the target",
          "name": "Annihilate",
          "tags": [
            "Chaos",
            "Sorcery"
          ]
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_grand_warlock.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_grand_warlock.png",
      "tags": [
        "Chaos"
      ]
    },
    "monster_green_mushboom": {
      "asset": "char/green_mushboom.png",
      "attributes": {
        "flying": false,
        "max_hp": 11,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "green_mushboom",
      "buffs": [
        {
          "asset": "tiles/buffs/mushboom_burst.png",
          "className": "MushboomBuff",
          "description": [
            "On death, apply {buff} to adjacent units for {duration} turns",
            {
              "buff": "Poison",
              "duration": 12
            }
          ],
          "name": "Mushboom Burst"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "GreenMushboom",
      "group": "normal",
      "icon": "icons/runtime/monster_green_mushboom.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/green_mushboom.png",
      "id": "monster_green_mushboom",
      "kind": "monster",
      "level": 2,
      "maxLevel": null,
      "name": "Green Mushboom",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Fire": -50,
        "Ice": -50,
        "Poison": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 3,
            "damage": 1,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 2,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Apply poison for 4 turns",
          "name": "Poison Puff",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_green_mushboom.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_green_mushboom.png",
      "tags": [
        "Nature"
      ]
    },
    "monster_green_slime": {
      "asset": "char/green_slime.png",
      "attributes": {
        "flying": false,
        "max_hp": 10,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "green_slime",
      "buffs": [
        {
          "asset": "tiles/buffs/slime_growth.png",
          "className": "SlimeBuff",
          "description": [
            "Each turn, {chance}% chance to heal for 10% of original max HP\nExcess raises max HP\nAt double original max HP, split into 2 {spawn}",
            {
              "chance": 50,
              "spawn": "slimes"
            }
          ],
          "name": "Slime Growth"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "GreenSlime",
      "group": "normal",
      "icon": "icons/runtime/monster_green_slime.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/green_slime.png",
      "id": "monster_green_slime",
      "kind": "monster",
      "level": 3,
      "maxLevel": null,
      "name": "Green Slime",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Physical": 50,
        "Poison": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_green_slime.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_green_slime.png",
      "tags": [
        "Slime"
      ]
    },
    "monster_gremlin": {
      "asset": "char/gremlin.png",
      "attributes": {
        "flying": false,
        "max_hp": 17,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "gremlin",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Gremlin",
      "group": "normal",
      "icon": "icons/runtime/monster_gremlin.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/gremlin.png",
      "id": "monster_gremlin",
      "kind": "monster",
      "level": 4,
      "maxLevel": null,
      "name": "Gremlin",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 4,
            "damage": 1,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 5,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Apply feared for 1 turn",
          "name": "Fear Bolt",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 4,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_gremlin.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_gremlin.png",
      "tags": [
        "Demon",
        "Dark"
      ]
    },
    "monster_grey_gorgon": {
      "asset": "char/grey_gorgon.png",
      "attributes": {
        "flying": false,
        "max_hp": 128,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "grey_gorgon",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "GreyGorgon",
      "group": "normal",
      "icon": "icons/runtime/monster_grey_gorgon.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/grey_gorgon.png",
      "id": "monster_grey_gorgon",
      "kind": "monster",
      "level": 7,
      "maxLevel": null,
      "name": "Grey Gorgon",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 75,
        "Physical": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 10,
            "damage": 9,
            "duration": 2,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 5,
            "requires_los": true
          },
          "className": "GreyGorgonBreath",
          "description": "Cone attack\nApplies [petrify] for 2 turns",
          "name": "Grey Gorgon Breath",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 23,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_grey_gorgon.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_grey_gorgon.png",
      "tags": [
        "Dark",
        "Living"
      ]
    },
    "monster_grey_mushboom": {
      "asset": "char/mushboom_grey.png",
      "attributes": {
        "flying": false,
        "max_hp": 11,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "grey_mushboom",
      "buffs": [
        {
          "asset": "tiles/buffs/mushboom_burst.png",
          "className": "MushboomBuff",
          "description": [
            "On death, apply {buff} to adjacent units for {duration} turns",
            {
              "buff": "Stunned",
              "duration": 3
            }
          ],
          "name": "Mushboom Burst"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "GreyMushboom",
      "group": "normal",
      "icon": "icons/runtime/monster_grey_mushboom.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/mushboom_grey.png",
      "id": "monster_grey_mushboom",
      "kind": "monster",
      "level": 3,
      "maxLevel": null,
      "name": "Grey Mushboom",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Fire": -50,
        "Ice": -50,
        "Poison": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 5,
            "damage": 1,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 2,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Stuns for 2 turns",
          "name": "Spore Puff",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_grey_mushboom.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_grey_mushboom.png",
      "tags": [
        "Nature"
      ]
    },
    "monster_haetae_golem": {
      "asset": "char/stone_haetae.png",
      "attributes": {
        "flying": false,
        "max_hp": 1395,
        "radius": 1,
        "shields": 0,
        "stationary": false
      },
      "baseId": "haetae_golem",
      "buffs": [
        {
          "asset": "tiles/buffs/guardian_of_righteousness.png",
          "className": "HaetaeJusticeBuff",
          "description": "When an ally dies, attempt to teleport closer to the killer",
          "name": "Guardian of Righteousness"
        },
        {
          "asset": "tiles/buffs/shield_regeneration.png",
          "className": "ShieldRegenBuff",
          "description": "",
          "name": "Shield Regeneration"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "HaetaeGolem",
      "group": "rare",
      "icon": "icons/runtime/monster_haetae_golem.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/stone_haetae.png",
      "id": "monster_haetae_golem",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Haetae Golem",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Fire": 50,
        "Holy": 50,
        "Lightning": 50,
        "Physical": 50,
        "Poison": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 12,
            "duration": 8,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "PurityProtection",
          "description": "Caster and allies gain 50% [Fire] and [Holy] resist for 8 turns",
          "name": "Protection of Purity",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 18,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Bite",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 4,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_haetae_golem.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 4,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_haetae_golem.png",
      "tags": [
        "Construct",
        "Holy",
        "Living"
      ]
    },
    "monster_hamsa": {
      "asset": "char/hamsa.png",
      "attributes": {
        "flying": true,
        "max_hp": 120,
        "radius": 0,
        "shields": 12,
        "stationary": false
      },
      "baseId": "hamsa",
      "buffs": [
        {
          "asset": "tiles/buffs/shield_regeneration.png",
          "className": "ShieldRegenBuff",
          "description": "",
          "name": "Shield Regeneration"
        },
        {
          "asset": "tiles/buffs/illusory_doubles.png",
          "className": "HamsaIllusionBuff",
          "description": "When this unit loses a shield, summon a temporary Illusory Hamsa\nIllusory Hamsa are Soulbound to this unit",
          "name": "Illusory Doubles"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Hamsa",
      "group": "rare",
      "icon": "icons/runtime/monster_hamsa.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/hamsa.png",
      "id": "monster_hamsa",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Hamsa",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 12,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_hamsa.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_hamsa.png",
      "tags": [
        "Living",
        "Holy"
      ]
    },
    "monster_head_cannon": {
      "asset": "char/cannon_boy.png",
      "attributes": {
        "flying": false,
        "max_hp": 12,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "head_cannon",
      "buffs": [
        {
          "asset": "tiles/buffs/death_combustion.png",
          "className": "DeathExplosion",
          "description": "",
          "name": "Death Combustion"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "HeadCannon",
      "group": "normal",
      "icon": "icons/runtime/monster_head_cannon.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/cannon_boy.png",
      "id": "monster_head_cannon",
      "kind": "monster",
      "level": 4,
      "maxLevel": null,
      "name": "Head Cannon",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 18,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 1,
            "range": 5,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Cannonball",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_head_cannon.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_head_cannon.png",
      "tags": [
        "Construct",
        "Metallic",
        "Fire"
      ]
    },
    "monster_hell_hound": {
      "asset": "char/hell_hound.png",
      "attributes": {
        "flying": false,
        "max_hp": 19,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "hell_hound",
      "buffs": [
        {
          "asset": "tiles/buffs/thorns.png",
          "className": "Thorns",
          "description": [
            "Deal {damage} {dtype} damage to melee attackers",
            {
              "damage": 4,
              "dtype": [
                "[{tag_label}:{tag_key}]",
                {
                  "tag_key": "fire",
                  "tag_label": "Fire"
                }
              ]
            }
          ],
          "name": "Thorns"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "HellHound",
      "group": "normal",
      "icon": "icons/runtime/monster_hell_hound.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/hell_hound.png",
      "id": "monster_hell_hound",
      "kind": "monster",
      "level": 4,
      "maxLevel": null,
      "name": "Hell Hound",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 50,
        "Fire": 100,
        "Ice": -50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 6,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 6,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 4,
            "requires_los": true
          },
          "className": "LeapAttack",
          "description": "Leap attack",
          "name": "Pounce",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_hell_hound.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_hell_hound.png",
      "tags": [
        "Demon",
        "Fire"
      ]
    },
    "monster_hemogoblin": {
      "asset": "char/hemogoblin.png",
      "attributes": {
        "flying": false,
        "max_hp": 21,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "hemogoblin",
      "buffs": [
        {
          "asset": "tiles/buffs/sanguine_healing.png",
          "className": "SanguineHealingBuff",
          "description": "Heal for 1 HP whenever a unit takes damage from Bleed",
          "name": "Sanguine Healing"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Hemogoblin",
      "group": "rare",
      "icon": "icons/runtime/monster_hemogoblin.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/hemogoblin.png",
      "id": "monster_hemogoblin",
      "kind": "monster",
      "level": 1,
      "maxLevel": 12,
      "name": "Hemogoblin",
      "rare": true,
      "rareExtra": [
        "Blood"
      ],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Apply bleed for 10 turns",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_hemogoblin.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_hemogoblin.png",
      "tags": [
        "Living",
        "Blood"
      ]
    },
    "monster_horned_toad": {
      "asset": "char/horned_toad.png",
      "attributes": {
        "flying": false,
        "max_hp": 18,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "horned_toad",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "HornedToad",
      "group": "normal",
      "icon": "icons/runtime/monster_horned_toad.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/horned_toad.png",
      "id": "monster_horned_toad",
      "kind": "monster",
      "level": 3,
      "maxLevel": null,
      "name": "Horned Toad",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Ice": -50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 4,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "ToadHop",
          "description": "Leaps to a random tile in line of sight within 4 tiles",
          "name": "Frog Hop",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 2,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 3,
            "requires_los": true
          },
          "className": "PullAttack",
          "description": "Pull the target 1 tile toward the caster",
          "name": "Tongue Lash",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_horned_toad.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_horned_toad.png",
      "tags": [
        "Living",
        "Nature"
      ]
    },
    "monster_ice_belcher": {
      "asset": "char/ice_lizard_giant.png",
      "attributes": {
        "flying": false,
        "max_hp": 23,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "ice_belcher",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "IceBelcher",
      "group": "normal",
      "icon": "icons/runtime/monster_ice_belcher.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/ice_lizard_giant.png",
      "id": "monster_ice_belcher",
      "kind": "monster",
      "level": 5,
      "maxLevel": null,
      "name": "Ice Belcher",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Fire": -50,
        "Ice": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 4,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 2,
            "range": 5,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Apply frozen for 1 turn",
          "name": "Ice Ball",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_ice_belcher.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_ice_belcher.png",
      "tags": [
        "Living",
        "Ice",
        "Dragon"
      ]
    },
    "monster_ice_bomber": {
      "asset": "char/ice_bomber.png",
      "attributes": {
        "flying": false,
        "max_hp": 1,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "ice_bomber",
      "buffs": [
        {
          "asset": "tiles/buffs/suicide_explosion.png",
          "className": "IceBomberBuff",
          "description": "",
          "name": "Suicide Explosion"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "IceBomber",
      "group": "normal",
      "icon": "icons/runtime/monster_ice_bomber.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/ice_bomber.png",
      "id": "monster_ice_bomber",
      "kind": "monster",
      "level": 2,
      "maxLevel": null,
      "name": "Ice Bomber",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 10,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 2,
            "requires_los": true
          },
          "className": "IceBomberSuicide",
          "description": "Suicide attack\n2 tile radius\nAutocast on death\nInflicts [frozen] for 3 turns",
          "name": "Suicide Explosion",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_ice_bomber.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_ice_bomber.png",
      "tags": [
        "Ice"
      ]
    },
    "monster_ice_drake": {
      "asset": "char/ice_drake.png",
      "attributes": {
        "flying": true,
        "max_hp": 48,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "ice_drake",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "IceDrake",
      "group": "normal",
      "icon": "icons/runtime/monster_ice_drake.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/ice_drake.png",
      "id": "monster_ice_drake",
      "kind": "monster",
      "level": 6,
      "maxLevel": null,
      "name": "Ice Drake",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Fire": -50,
        "Ice": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "damage": 7,
            "duration": 2,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 5,
            "requires_los": true
          },
          "className": "IceBreath",
          "description": "Cone attack\nInflicts [frozen] for [2:duration] turns",
          "name": "Ice Breath",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_ice_drake.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_ice_drake.png",
      "tags": [
        "Dragon",
        "Living",
        "Ice"
      ]
    },
    "monster_ice_lich": {
      "asset": "char/dark_ice_lich_wizard.png",
      "attributes": {
        "flying": false,
        "max_hp": 75,
        "radius": 0,
        "shields": 2,
        "stationary": false
      },
      "baseId": "ice_lich",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "IceLich",
      "group": "rare",
      "icon": "icons/runtime/monster_ice_lich.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/dark_ice_lich_wizard.png",
      "id": "monster_ice_lich",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Ice Lich",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Arcane": 50,
        "Dark": 100,
        "Fire": -100,
        "Ice": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 23,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Death Touch",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 25,
            "damage": 5,
            "duration": 9,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "WizardIceEye",
          "description": "Deal [5:damage] [Ice] to an enemy in line of sight each turn\nLasts [9:duration] turns",
          "name": "Eye of Ice",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 4,
            "damage": 7,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 3,
            "range": 8,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Apply frozen for 2 turns",
          "name": "Ice Ball",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 20,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "LichSealSoulSpell",
          "description": "Summon a Soul Jar\nThe caster cannot die while the Soul Jar lives",
          "name": "Soul Jar",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_ice_lich.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_ice_lich.png",
      "tags": [
        "Undead",
        "Dark",
        "Ice"
      ]
    },
    "monster_ice_maw": {
      "asset": "char/icemouth.png",
      "attributes": {
        "flying": false,
        "max_hp": 36,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "ice_maw",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "IceMaw",
      "group": "normal",
      "icon": "icons/runtime/monster_ice_maw.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/icemouth.png",
      "id": "monster_ice_maw",
      "kind": "monster",
      "level": 5,
      "maxLevel": null,
      "name": "Ice Maw",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 100,
        "Fire": -50,
        "Ice": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 9,
            "damage": 5,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 4,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 7,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Beam attack\n\n\nCan be channeled for up to 4 turns\n\n\nApply frozen for 2 turns",
          "name": "Ice Beam",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_ice_maw.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_ice_maw.png",
      "tags": [
        "Arcane",
        "Ice"
      ]
    },
    "monster_ice_rocket_bomber": {
      "asset": "char/ice_bomber_cluster.png",
      "attributes": {
        "flying": false,
        "max_hp": 1,
        "radius": 0,
        "shields": 1,
        "stationary": false
      },
      "baseId": "ice_rocket_bomber",
      "buffs": [
        {
          "asset": "tiles/buffs/suicide_explosion.png",
          "className": "IceBomberBuff",
          "description": "",
          "name": "Suicide Explosion"
        },
        {
          "asset": "status/quickmove.png",
          "className": "QuickmoveBuff",
          "description": "",
          "name": "Quickstep"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "IceRocketBomber",
      "group": "normal",
      "icon": "icons/runtime/monster_ice_rocket_bomber.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/ice_bomber_cluster.png",
      "id": "monster_ice_rocket_bomber",
      "kind": "monster",
      "level": 4,
      "maxLevel": null,
      "name": "Ice Rocket Bomber",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 10,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 2,
            "requires_los": true
          },
          "className": "IceBomberSuicide",
          "description": "Suicide attack\n2 tile radius\nAutocast on death\nInflicts [frozen] for 3 turns",
          "name": "Suicide Explosion",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_ice_rocket_bomber.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_ice_rocket_bomber.png",
      "tags": [
        "Ice",
        "Construct"
      ]
    },
    "monster_ice_slime": {
      "asset": "char/ice_slime.png",
      "attributes": {
        "flying": false,
        "max_hp": 10,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "ice_slime",
      "buffs": [
        {
          "asset": "tiles/buffs/slime_growth.png",
          "className": "SlimeBuff",
          "description": [
            "Each turn, {chance}% chance to heal for 10% of original max HP\nExcess raises max HP\nAt double original max HP, split into 2 {spawn}",
            {
              "chance": 50,
              "spawn": "slimes"
            }
          ],
          "name": "Slime Growth"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "IceSlime",
      "group": "normal",
      "icon": "icons/runtime/monster_ice_slime.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/ice_slime.png",
      "id": "monster_ice_slime",
      "kind": "monster",
      "level": 4,
      "maxLevel": null,
      "name": "Ice Slime",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Fire": -100,
        "Ice": 100,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 3,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Ice Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_ice_slime.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_ice_slime.png",
      "tags": [
        "Slime",
        "Ice"
      ]
    },
    "monster_ice_wizard": {
      "asset": "char/ice_wizard.png",
      "attributes": {
        "flying": false,
        "max_hp": 75,
        "radius": 0,
        "shields": 2,
        "stationary": false
      },
      "baseId": "ice_wizard",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "IceWizard",
      "group": "rare",
      "icon": "icons/runtime/monster_ice_wizard.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/ice_wizard.png",
      "id": "monster_ice_wizard",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Ice Wizard",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Ice": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 12,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 3,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon 3 Ice Hounds",
          "name": "Summon Ice Hounds",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 10,
            "damage": 18,
            "duration": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 8,
            "range": 0,
            "requires_los": true
          },
          "className": "WizardIceAge",
          "description": "Deals damage and applies [3:duration] turns of [frozen] to enemies in a burst around the caster",
          "name": "Ice Age",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 6,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 6,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Beam attack",
          "name": "Ice Beam",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_ice_wizard.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_ice_wizard.png",
      "tags": [
        "Ice",
        "Living"
      ]
    },
    "monster_ice_wyrm": {
      "asset": "char/wyrm_blue.png",
      "attributes": {
        "flying": false,
        "max_hp": 75,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "ice_wyrm",
      "buffs": [
        {
          "asset": "status/heal.png",
          "className": "RegenBuff",
          "description": "",
          "name": "Regeneration"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "IceWyrm",
      "group": "normal",
      "icon": "icons/runtime/monster_ice_wyrm.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/wyrm_blue.png",
      "id": "monster_ice_wyrm",
      "kind": "monster",
      "level": 8,
      "maxLevel": null,
      "name": "Ice Wyrm",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Fire": -50,
        "Ice": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "damage": 7,
            "duration": 2,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 5,
            "requires_los": true
          },
          "className": "IceBreath",
          "description": "Cone attack\nInflicts [frozen] for [2:duration] turns",
          "name": "Ice Breath",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 14,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Trample attack",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_ice_wyrm.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_ice_wyrm.png",
      "tags": [
        "Ice",
        "Dragon",
        "Living"
      ]
    },
    "monster_ice_wyrm_egg": {
      "asset": "char/blue_wyrm_egg.png",
      "attributes": {
        "flying": false,
        "max_hp": 14,
        "radius": 0,
        "shields": 0,
        "stationary": true
      },
      "baseId": "ice_wyrm_egg",
      "buffs": [
        {
          "asset": "tiles/buffs/summon_on_death.png",
          "className": "SpawnOnDeath",
          "description": "",
          "name": "Summon On Death"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "IceWyrmEgg",
      "group": "rare",
      "icon": "icons/runtime/monster_ice_wyrm_egg.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/blue_wyrm_egg.png",
      "id": "monster_ice_wyrm_egg",
      "kind": "monster",
      "level": 2,
      "maxLevel": 9,
      "name": "Ice Wyrm Egg",
      "rare": true,
      "rareExtra": [
        "Ice"
      ],
      "resists": {
        "Fire": -50,
        "Ice": 100,
        "Physical": 50
      },
      "spells": [],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_ice_wyrm_egg.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_ice_wyrm_egg.png",
      "tags": [
        "Living",
        "Dragon",
        "Ice"
      ]
    },
    "monster_idol_of_agony": {
      "asset": "char/idol_of_agony.png",
      "attributes": {
        "flying": false,
        "max_hp": 1500,
        "radius": 1,
        "shields": 20,
        "stationary": true
      },
      "baseId": "idol_of_agony",
      "buffs": [
        {
          "asset": "tiles/buffs/aura_of_agony.png",
          "className": "IdolOfAgonyBuff",
          "description": "Redeal all non-[Poison] damage dealt to enemies as [Poison] damage",
          "name": "Aura of Agony"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "IdolOfAgony",
      "group": "rare",
      "icon": "icons/runtime/monster_idol_of_agony.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/idol_of_agony.png",
      "id": "monster_idol_of_agony",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Idol of Agony",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Fire": 50,
        "Lightning": 50,
        "Physical": 50
      },
      "spells": [],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_idol_of_agony.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 2,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_idol_of_agony.png",
      "tags": [
        "Construct"
      ]
    },
    "monster_idol_of_fiends": {
      "asset": "char/idol_of_nightmares.png",
      "attributes": {
        "flying": false,
        "max_hp": 1500,
        "radius": 1,
        "shields": 20,
        "stationary": true
      },
      "baseId": "idol_of_fiends",
      "buffs": [
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "IdolOfFiendsBuff",
          "description": "For every 100 damage dealt, summon a tormentor\n\nFor every 666 damage dealt, summon a fiend",
          "name": "Unnamed buff"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "IdolOfFiends",
      "group": "rare",
      "icon": "icons/runtime/monster_idol_of_fiends.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/idol_of_nightmares.png",
      "id": "monster_idol_of_fiends",
      "kind": "monster",
      "level": 3,
      "maxLevel": 1,
      "name": "Idol of Fiends",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Fire": 50,
        "Lightning": 50,
        "Physical": 50
      },
      "spells": [],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_idol_of_fiends.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 2,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_idol_of_fiends.png",
      "tags": [
        "Construct"
      ]
    },
    "monster_idol_of_fiery_vengeance": {
      "asset": "char/idol_of_vengeance.png",
      "attributes": {
        "flying": false,
        "max_hp": 1500,
        "radius": 1,
        "shields": 20,
        "stationary": true
      },
      "baseId": "idol_of_fiery_vengeance",
      "buffs": [
        {
          "asset": "tiles/buffs/idol_of_fiery_vengeance.png",
          "className": "FieryVengeanceBuff",
          "description": "When an ally dies, deal [9 Fire:fire] damage to a random enemy within 4 tiles",
          "name": "Idol of Fiery Vengeance"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "IdolOfFieryVengeance",
      "group": "rare",
      "icon": "icons/runtime/monster_idol_of_fiery_vengeance.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/idol_of_vengeance.png",
      "id": "monster_idol_of_fiery_vengeance",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Idol of Fiery Vengeance",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Fire": 50,
        "Lightning": 50,
        "Physical": 50
      },
      "spells": [],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_idol_of_fiery_vengeance.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 2,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_idol_of_fiery_vengeance.png",
      "tags": [
        "Construct"
      ]
    },
    "monster_idol_of_frailty": {
      "asset": "char/idol_of_weakness.png",
      "attributes": {
        "flying": false,
        "max_hp": 1500,
        "radius": 1,
        "shields": 20,
        "stationary": true
      },
      "baseId": "idol_of_frailty",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "IdolOfWeakness",
      "group": "rare",
      "icon": "icons/runtime/monster_idol_of_frailty.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/idol_of_weakness.png",
      "id": "monster_idol_of_frailty",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Idol of Frailty",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Fire": 50,
        "Lightning": 50,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "IdolOfWeaknessSpell",
          "description": "Enemies lose 25 resistance to a random damage type for 8 turns",
          "name": "Weaken",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_idol_of_frailty.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 2,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_idol_of_frailty.png",
      "tags": [
        "Construct"
      ]
    },
    "monster_idol_of_frost": {
      "asset": "char/3x3_idol_of_frost.png",
      "attributes": {
        "flying": false,
        "max_hp": 1500,
        "radius": 1,
        "shields": 20,
        "stationary": true
      },
      "baseId": "idol_of_frost",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "IdolOfFrost",
      "group": "rare",
      "icon": "icons/runtime/monster_idol_of_frost.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/3x3_idol_of_frost.png",
      "id": "monster_idol_of_frost",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Idol of Frost",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Fire": 50,
        "Lightning": 50,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 1,
            "damage": 10,
            "duration": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 4,
            "range": 0,
            "requires_los": true
          },
          "className": "FrostNova",
          "description": "Damages enemies and inflicts 3 turns of [frozen] in a burst around the caster\nEach cast increases radius and cooldown by 1\nCasts as often as possible, even if no enemies are in range",
          "name": "Frost Nova",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_idol_of_frost.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 2,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_idol_of_frost.png",
      "tags": [
        "Construct"
      ]
    },
    "monster_idol_of_insanity": {
      "asset": "char/idol_of_insanity.png",
      "attributes": {
        "flying": false,
        "max_hp": 1500,
        "radius": 1,
        "shields": 20,
        "stationary": true
      },
      "baseId": "idol_of_insanity",
      "buffs": [
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "DreamerBuff",
          "description": "Each turn, 50% chance to teleport each other unit up to 4 tiles away",
          "name": "Unnamed buff"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "IdolOfInsanity",
      "group": "rare",
      "icon": "icons/runtime/monster_idol_of_insanity.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/idol_of_insanity.png",
      "id": "monster_idol_of_insanity",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Idol of Insanity",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Fire": 50,
        "Lightning": 50,
        "Physical": 50
      },
      "spells": [],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_idol_of_insanity.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 2,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_idol_of_insanity.png",
      "tags": [
        "Construct"
      ]
    },
    "monster_idol_of_invincibiity": {
      "asset": "char/idol_of_shielding.png",
      "attributes": {
        "flying": false,
        "max_hp": 1500,
        "radius": 1,
        "shields": 100,
        "stationary": true
      },
      "baseId": "idol_of_invincibiity",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "IdolOfShielding",
      "group": "rare",
      "icon": "icons/runtime/monster_idol_of_invincibiity.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/idol_of_shielding.png",
      "id": "monster_idol_of_invincibiity",
      "kind": "monster",
      "level": 3,
      "maxLevel": 1,
      "name": "Idol of Invincibiity",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Fire": 50,
        "Lightning": 50,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 2,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "IdolOfShieldingSpell",
          "description": "Allies gain 1 SH up to a max of 3",
          "name": "Mass Protection",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_idol_of_invincibiity.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 2,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_idol_of_invincibiity.png",
      "tags": [
        "Construct"
      ]
    },
    "monster_idol_of_nightmares": {
      "asset": "char/the_tree_of_pain_and_nightmares.png",
      "attributes": {
        "flying": false,
        "max_hp": 1500,
        "radius": 1,
        "shields": 20,
        "stationary": true
      },
      "baseId": "idol_of_nightmares",
      "buffs": [
        {
          "asset": "status/nightmared.png",
          "className": "IdolOfNightmaresBuff",
          "description": "",
          "name": "Damage Aura"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "IdolOfNightmares",
      "group": "rare",
      "icon": "icons/runtime/monster_idol_of_nightmares.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/the_tree_of_pain_and_nightmares.png",
      "id": "monster_idol_of_nightmares",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Idol of Nightmares",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Fire": 50,
        "Lightning": 50,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 1,
            "duration": 10,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 6,
            "range": 99,
            "requires_los": false
          },
          "className": "IdolOfNightmaresSpell",
          "description": "Apply Nightmare Touched to an ally for [10:duration] turns",
          "name": "Bestow Nightmare",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_idol_of_nightmares.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 2,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_idol_of_nightmares.png",
      "tags": [
        "Construct"
      ]
    },
    "monster_idol_of_pain": {
      "asset": "char/3x3_idol_of_pain.png",
      "attributes": {
        "flying": false,
        "max_hp": 1500,
        "radius": 1,
        "shields": 20,
        "stationary": true
      },
      "baseId": "idol_of_pain",
      "buffs": [
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "CrucibleOfPainEnemyBuff",
          "description": "For every 300 damage dealt to any unit, summon a Furnace Hound",
          "name": "Unnamed buff"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "CrucibleOfPain",
      "group": "rare",
      "icon": "icons/runtime/monster_idol_of_pain.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/3x3_idol_of_pain.png",
      "id": "monster_idol_of_pain",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Idol of Pain",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Fire": 50,
        "Lightning": 50,
        "Physical": 50
      },
      "spells": [],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_idol_of_pain.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 2,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_idol_of_pain.png",
      "tags": [
        "Construct"
      ]
    },
    "monster_idol_of_rebirth": {
      "asset": "char/3x3_idol_of_rebirth.png",
      "attributes": {
        "flying": false,
        "max_hp": 1500,
        "radius": 1,
        "shields": 20,
        "stationary": true
      },
      "baseId": "idol_of_rebirth",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "IdolOfRebirth",
      "group": "rare",
      "icon": "icons/runtime/monster_idol_of_rebirth.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/3x3_idol_of_rebirth.png",
      "id": "monster_idol_of_rebirth",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Idol of Rebirth",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Fire": 50,
        "Lightning": 50,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 36,
            "requires_los": false
          },
          "className": "GrantRebirth",
          "description": "A random ally gains the ability to reincarnate",
          "name": "Grant Rebirth",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_idol_of_rebirth.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 2,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_idol_of_rebirth.png",
      "tags": [
        "Construct"
      ]
    },
    "monster_idol_of_sorcery": {
      "asset": "char/3x3_idol_of_sorcery.png",
      "attributes": {
        "flying": false,
        "max_hp": 1500,
        "radius": 1,
        "shields": 20,
        "stationary": true
      },
      "baseId": "idol_of_sorcery",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "IdolOfSorcery",
      "group": "rare",
      "icon": "icons/runtime/monster_idol_of_sorcery.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/3x3_idol_of_sorcery.png",
      "id": "monster_idol_of_sorcery",
      "kind": "monster",
      "level": 2,
      "maxLevel": 2,
      "name": "Idol of Sorcery",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Fire": 50,
        "Lightning": 50,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "GrantSorcery",
          "description": "Grants a ranged [Fire] or [Lightning] attack to a random ally, along with immunity to that damage type",
          "name": "Grant Sorcery",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_idol_of_sorcery.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 2,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_idol_of_sorcery.png",
      "tags": [
        "Construct"
      ]
    },
    "monster_idol_of_souls": {
      "asset": "char/3x3_soul_jar.png",
      "attributes": {
        "flying": false,
        "max_hp": 1500,
        "radius": 1,
        "shields": 20,
        "stationary": true
      },
      "baseId": "idol_of_souls",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "GiantSoulJar",
      "group": "rare",
      "icon": "icons/runtime/monster_idol_of_souls.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/3x3_soul_jar.png",
      "id": "monster_idol_of_souls",
      "kind": "monster",
      "level": 3,
      "maxLevel": 1,
      "name": "Idol of Souls",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Fire": 50,
        "Lightning": 50,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 36,
            "requires_los": false
          },
          "className": "JarAlly",
          "description": "Target ally becomes Soulbound to the Idol of Souls",
          "name": "Pickle Soul",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_idol_of_souls.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 2,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_idol_of_souls.png",
      "tags": [
        "Construct",
        "Dark",
        "Arcane"
      ]
    },
    "monster_idol_of_undeath": {
      "asset": "char/3x3_idol_of_undeath.png",
      "attributes": {
        "flying": false,
        "max_hp": 1500,
        "radius": 1,
        "shields": 20,
        "stationary": true
      },
      "baseId": "idol_of_undeath",
      "buffs": [
        {
          "asset": "tiles/buffs/aura_of_undeath.png",
          "className": "UndeathIdolBuff",
          "description": "Each turn, [Undead] allies heal 1 HP and [Living] enemies take 1 [Dark] damage\n\nSlain [Living] units are raised as Skeletons",
          "name": "Aura of Undeath"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "IdolOfUndeath",
      "group": "rare",
      "icon": "icons/runtime/monster_idol_of_undeath.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/3x3_idol_of_undeath.png",
      "id": "monster_idol_of_undeath",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Idol of Undeath",
      "rare": true,
      "rareExtra": [
        "Living"
      ],
      "resists": {
        "Fire": 50,
        "Lightning": 50,
        "Physical": 50
      },
      "spells": [],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_idol_of_undeath.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 2,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_idol_of_undeath.png",
      "tags": [
        "Construct"
      ]
    },
    "monster_idol_of_vampirism": {
      "asset": "char/idol_of_vampirism.png",
      "attributes": {
        "flying": false,
        "max_hp": 1500,
        "radius": 1,
        "shields": 20,
        "stationary": true
      },
      "baseId": "idol_of_vampirism",
      "buffs": [
        {
          "asset": "tiles/buffs/idol_of_vampirism.png",
          "className": "VampirismIdolBuff",
          "description": "When an ally deals damage, it heals for half that much HP",
          "name": "Idol of Vampirism"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "VampirismIdol",
      "group": "rare",
      "icon": "icons/runtime/monster_idol_of_vampirism.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/idol_of_vampirism.png",
      "id": "monster_idol_of_vampirism",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Idol of Vampirism",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Fire": 50,
        "Lightning": 50,
        "Physical": 50
      },
      "spells": [],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_idol_of_vampirism.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 2,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_idol_of_vampirism.png",
      "tags": [
        "Construct"
      ]
    },
    "monster_imp_collector": {
      "asset": "char/imp_collector.png",
      "attributes": {
        "flying": false,
        "max_hp": 66,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "imp_collector",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "ImpCollector",
      "group": "normal",
      "icon": "icons/runtime/monster_imp_collector.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/imp_collector.png",
      "id": "monster_imp_collector",
      "kind": "monster",
      "level": 5,
      "maxLevel": null,
      "name": "Imp Collector",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 50,
        "Fire": 50,
        "Lightning": 50,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 6,
            "duration": 5,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 3,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "ImpCollectorSummonImpSpell",
          "description": "Summons 3 temporary Imps",
          "name": "Imp Gate",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 7,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 5,
            "requires_los": true
          },
          "className": "WizardSwap",
          "description": "Swap places with a random [Demon:demon] unit",
          "name": "Fiend Swap",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 6,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 4,
            "requires_los": true
          },
          "className": "WarlockChaosBarrage",
          "description": "Shoot a bolt of each damage type at random enemies",
          "name": "Chaos Strike",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_imp_collector.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_imp_collector.png",
      "tags": [
        "Demon",
        "Chaos"
      ]
    },
    "monster_infernal_demon_prince": {
      "asset": "char/3x3_inferno_king.png",
      "attributes": {
        "flying": false,
        "max_hp": 6666,
        "radius": 1,
        "shields": 0,
        "stationary": false
      },
      "baseId": "infernal_demon_prince",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "InfernoKing",
      "group": "rare",
      "icon": "icons/runtime/monster_infernal_demon_prince.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/3X3_inferno_king.png",
      "id": "monster_infernal_demon_prince",
      "kind": "monster",
      "level": 3,
      "maxLevel": 1,
      "name": "Infernal Demon Prince",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Dark": 100,
        "Fire": 100,
        "Ice": -50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 12,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 3,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon 3 Fire Fiends",
          "name": "Infernal Court",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 6,
            "damage": 70,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 8,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Beam attack",
          "name": "Dark Beam",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 26,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 8,
            "requires_los": true
          },
          "className": "FireBreath",
          "description": "Cone attack",
          "name": "Fire Breath",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 4,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_infernal_demon_prince.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 4,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_infernal_demon_prince.png",
      "tags": [
        "Fire",
        "Demon"
      ]
    },
    "monster_insanity_fiend": {
      "asset": "char/fiend_insanity.png",
      "attributes": {
        "flying": false,
        "max_hp": 166,
        "radius": 0,
        "shields": 4,
        "stationary": false
      },
      "baseId": "insanity_fiend",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "InsanityFiend",
      "group": "normal",
      "icon": "icons/runtime/monster_insanity_fiend.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/fiend_insanity.png",
      "id": "monster_insanity_fiend",
      "kind": "monster",
      "level": 8,
      "maxLevel": null,
      "name": "Insanity Fiend",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 7,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 3,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon 3 Insanity Imps",
          "name": "Summon Insanity Imps",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 2,
            "damage": 5,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 6,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Beam attack",
          "name": "Dark Beam",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 6,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Teleports the target up to 3 tiles",
          "name": "Phase Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_insanity_fiend.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_insanity_fiend.png",
      "tags": [
        "Arcane",
        "Demon"
      ]
    },
    "monster_iron_imp": {
      "asset": "char/imp_iron.png",
      "attributes": {
        "flying": true,
        "max_hp": 5,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "iron_imp",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "IronImp",
      "group": "normal",
      "icon": "icons/runtime/monster_iron_imp.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/imp_iron.png",
      "id": "monster_iron_imp",
      "kind": "monster",
      "level": 3,
      "maxLevel": null,
      "name": "Iron Imp",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 3,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Physical Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_iron_imp.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_iron_imp.png",
      "tags": [
        "Demon",
        "Metallic"
      ]
    },
    "monster_jack_o_flames": {
      "asset": "char/pumpkin_wizard.png",
      "attributes": {
        "flying": false,
        "max_hp": 85,
        "radius": 0,
        "shields": 2,
        "stationary": false
      },
      "baseId": "jack_o_flames",
      "buffs": [
        {
          "asset": "tiles/buffs/flaming_aura.png",
          "className": "DamageAuraBuff",
          "description": "",
          "name": "Flaming Aura"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "PumpkinWizard",
      "group": "rare",
      "icon": "icons/runtime/monster_jack_o_flames.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/pumpkin_wizard.png",
      "id": "monster_jack_o_flames",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Jack o' Flames",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Dark": 75,
        "Fire": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 6,
            "duration": 10,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 5,
            "requires_los": true
          },
          "className": "SimpleCurse",
          "description": "Apply grasping earth for 10 turns",
          "name": "Entangle",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "damage": 10,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 5,
            "requires_los": true
          },
          "className": "FireBreath",
          "description": "Cone attack",
          "name": "Fire Breath",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 10,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 5,
            "requires_los": true
          },
          "className": "PullAttack",
          "description": "Pull the target 2 tiles toward the caster",
          "name": "Vine Pull",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_jack_o_flames.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_jack_o_flames.png",
      "tags": [
        "Nature",
        "Dark",
        "Fire"
      ]
    },
    "monster_kettle_man": {
      "asset": "char/kettle_man.png",
      "attributes": {
        "flying": false,
        "max_hp": 212,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "kettle_man",
      "buffs": [
        {
          "asset": "tiles/buffs/boiling.png",
          "className": "BoilingBuff",
          "description": "While Steam Breath is on cooldown, this unit is immobilized\n\nTaking [Lightning] damage reduces Steam Breath cooldown by 1",
          "name": "Boiling"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "KettleMan",
      "group": "rare",
      "icon": "icons/runtime/monster_kettle_man.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/kettle_man.png",
      "id": "monster_kettle_man",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Kettle Man",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Lightning": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 10,
            "damage": 22,
            "duration": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 6,
            "requires_los": true
          },
          "className": "SteamBreath",
          "description": "Cone attack\nInflicts soaked and [blind] for [3:duration] turns",
          "name": "Steam Breath",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_kettle_man.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_kettle_man.png",
      "tags": [
        "Metallic",
        "Construct",
        "Fire"
      ]
    },
    "monster_kobold": {
      "asset": "char/kobold.png",
      "attributes": {
        "flying": false,
        "max_hp": 4,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "kobold",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Kobold",
      "group": "normal",
      "icon": "icons/runtime/monster_kobold.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/kobold.png",
      "id": "monster_kobold",
      "kind": "monster",
      "level": 3,
      "maxLevel": null,
      "name": "Kobold",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 1,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 10,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Bow",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_kobold.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_kobold.png",
      "tags": [
        "Living"
      ]
    },
    "monster_kobold_camp": {
      "asset": "char/kobold_camp.png",
      "attributes": {
        "flying": false,
        "max_hp": 600,
        "radius": 1,
        "shields": 0,
        "stationary": true
      },
      "baseId": "kobold_camp",
      "buffs": [
        {
          "asset": "tiles/buffs/summon_on_death.png",
          "className": "SpawnOnDeath",
          "description": "",
          "name": "Summon On Death"
        },
        {
          "asset": "tiles/buffs/summon_on_death.png",
          "className": "SpawnOnDeath",
          "description": "",
          "name": "Summon On Death"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "KoboldCamp",
      "group": "rare",
      "icon": "icons/runtime/monster_kobold_camp.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/kobold_camp.png",
      "id": "monster_kobold_camp",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Kobold Camp",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 1,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 10,
            "requires_los": true
          },
          "className": "FortressShot",
          "description": "Each fortress tile shoots a target in range of that tile",
          "name": "Arrow Barrage",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "FortressBuild",
          "description": "Build 3 Kobold spawners on connected tiles",
          "name": "Expand Fortress",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_kobold_camp.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 2,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_kobold_camp.png",
      "tags": []
    },
    "monster_lamasu": {
      "asset": "char/lamasu.png",
      "attributes": {
        "flying": true,
        "max_hp": 200,
        "radius": 0,
        "shields": 3,
        "stationary": false
      },
      "baseId": "lamasu",
      "buffs": [
        {
          "asset": "tiles/buffs/healing_aura.png",
          "className": "HealAuraBuff",
          "description": "",
          "name": "Healing Aura"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "Lamasu",
      "group": "normal",
      "icon": "icons/runtime/monster_lamasu.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/lamasu.png",
      "id": "monster_lamasu",
      "kind": "monster",
      "level": 8,
      "maxLevel": null,
      "name": "Lamasu",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 50,
        "Dark": 50,
        "Holy": 75,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 7,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 7,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 4,
            "requires_los": true
          },
          "className": "LeapAttack",
          "description": "Leap attack",
          "name": "Charge",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_lamasu.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_lamasu.png",
      "tags": [
        "Nature",
        "Living",
        "Holy"
      ]
    },
    "monster_lamasu_methuselah": {
      "asset": "char/3x3_lamasu.png",
      "attributes": {
        "flying": true,
        "max_hp": 3044,
        "radius": 1,
        "shields": 6,
        "stationary": false
      },
      "baseId": "lamasu_methuselah",
      "buffs": [
        {
          "asset": "tiles/buffs/healing_aura.png",
          "className": "HealAuraBuff",
          "description": "",
          "name": "Healing Aura"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "GreaterLamasu",
      "group": "rare",
      "icon": "icons/runtime/monster_lamasu_methuselah.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/3X3_lamasu.png",
      "id": "monster_lamasu_methuselah",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Lamasu Methuselah",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Arcane": 50,
        "Dark": 50,
        "Holy": 75,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 2,
            "damage": 13,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 9,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Holy Bolt",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 17,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 4,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_lamasu_methuselah.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 4,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_lamasu_methuselah.png",
      "tags": [
        "Nature",
        "Living",
        "Holy"
      ]
    },
    "monster_large_worm_ball": {
      "asset": "char/wormball.png",
      "attributes": {
        "flying": false,
        "max_hp": 10,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "large_worm_ball",
      "buffs": [
        {
          "asset": "tiles/buffs/splitting.png",
          "className": "SplittingBuff",
          "description": "",
          "name": "Splitting"
        },
        {
          "asset": "status/heal.png",
          "className": "RegenBuff",
          "description": "",
          "name": "Regeneration"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "WormBall",
      "group": "normal",
      "icon": "icons/runtime/monster_large_worm_ball.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/wormball.png",
      "id": "monster_large_worm_ball",
      "kind": "monster",
      "level": 3,
      "maxLevel": null,
      "name": "Large Worm Ball",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 5,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_large_worm_ball.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_large_worm_ball.png",
      "tags": [
        "Living"
      ]
    },
    "monster_lava_spitter": {
      "asset": "char/lava_spitter.png",
      "attributes": {
        "flying": false,
        "max_hp": 150,
        "radius": 0,
        "shields": 0,
        "stationary": true
      },
      "baseId": "lava_spitter",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "LavaSpitter",
      "group": "rare",
      "icon": "icons/runtime/monster_lava_spitter.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/lava_spitter.png",
      "id": "monster_lava_spitter",
      "kind": "monster",
      "level": 3,
      "maxLevel": 7,
      "name": "Lava Spitter",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Dark": -50,
        "Fire": 100,
        "Ice": -50,
        "Physical": 50,
        "Slime": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 9,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Summons a Red Slime next to the target\n\n\nShoots 2 times",
          "name": "Spit",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_lava_spitter.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_lava_spitter.png",
      "tags": [
        "Slime",
        "Fire"
      ]
    },
    "monster_leghead": {
      "asset": "char/leghead.png",
      "attributes": {
        "flying": false,
        "max_hp": 45,
        "radius": 0,
        "shields": 3,
        "stationary": false
      },
      "baseId": "leghead",
      "buffs": [
        {
          "asset": "status/quickmove.png",
          "className": "QuickmoveBuff",
          "description": "",
          "name": "Quickstep"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "Leghead",
      "group": "normal",
      "icon": "icons/runtime/monster_leghead.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/leghead.png",
      "id": "monster_leghead",
      "kind": "monster",
      "level": 5,
      "maxLevel": null,
      "name": "Leghead",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 50,
        "Dark": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 12,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Apply feared for 1 turn",
          "name": "Big Bite",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_leghead.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_leghead.png",
      "tags": [
        "Arcane",
        "Dark"
      ]
    },
    "monster_lich": {
      "asset": "char/lich.png",
      "attributes": {
        "flying": false,
        "max_hp": 55,
        "radius": 0,
        "shields": 2,
        "stationary": false
      },
      "baseId": "lich",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "Lich",
      "group": "normal",
      "icon": "icons/runtime/monster_lich.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/lich.png",
      "id": "monster_lich",
      "kind": "monster",
      "level": 8,
      "maxLevel": null,
      "name": "Lich",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 50,
        "Dark": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 6,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Dark Bolt",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 20,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "LichSealSoulSpell",
          "description": "Summon a Soul Jar\nThe caster cannot die while the Soul Jar lives",
          "name": "Soul Jar",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_lich.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_lich.png",
      "tags": [
        "Dark",
        "Undead"
      ]
    },
    "monster_lightning_master": {
      "asset": "char/lightning_wizard.png",
      "attributes": {
        "flying": false,
        "max_hp": 32,
        "radius": 0,
        "shields": 8,
        "stationary": false
      },
      "baseId": "lightning_master",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "LightningWizard",
      "group": "rare",
      "icon": "icons/runtime/monster_lightning_master.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/lightning_wizard.png",
      "id": "monster_lightning_master",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Lightning Master",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Lightning": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 12,
            "duration": 8,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "WizardGrounding",
          "description": "Caster and allies gain 50% [Lightning] resist for [8:duration] turns",
          "name": "Lightning Protection",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 12,
            "damage": 9,
            "duration": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 2,
            "range": 8,
            "requires_los": true
          },
          "className": "WizardThunderStrike",
          "description": "Stuns all enemies in an area around the target for [3:duration] turns",
          "name": "Thunder Strike",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 16,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 20,
            "requires_los": true
          },
          "className": "WizardLightningFlash",
          "description": "Teleport the caster\nOn arrival, deal [3:damage] [Lightning] and blind enemies in line of sight for 2 turns",
          "name": "Flash of Lightning",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 6,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 9,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Beam attack",
          "name": "Lightning Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_lightning_master.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_lightning_master.png",
      "tags": [
        "Living",
        "Lightning"
      ]
    },
    "monster_limb_collector": {
      "asset": "char/limb_collector.png",
      "attributes": {
        "flying": false,
        "max_hp": 128,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "limb_collector",
      "buffs": [
        {
          "asset": "tiles/buffs/limb_collection.png",
          "className": "LimbCollectionBuff",
          "description": "",
          "name": "Limb Collection"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "LimbCollector",
      "group": "rare",
      "icon": "icons/runtime/monster_limb_collector.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/limb_collector.png",
      "id": "monster_limb_collector",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Limb Collector",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 11,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Apply stunned for 1 turn",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_limb_collector.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_limb_collector.png",
      "tags": [
        "Dark",
        "Undead"
      ]
    },
    "monster_louis_the_seer": {
      "asset": "char/eye_wizard.png",
      "attributes": {
        "flying": true,
        "max_hp": 1,
        "radius": 0,
        "shields": 8,
        "stationary": false
      },
      "baseId": "louis_the_seer",
      "buffs": [
        {
          "asset": "tiles/buffs/regenerating_shields.png",
          "className": "RegenShieldsBuff",
          "description": "",
          "name": "Regenerating Shields"
        },
        {
          "asset": "tiles/buffs/passive_teleportation.png",
          "className": "TeleportyBuff",
          "description": "",
          "name": "Passive Teleportation"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "EyeballWizard",
      "group": "rare",
      "icon": "icons/runtime/monster_louis_the_seer.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/eye_wizard.png",
      "id": "monster_louis_the_seer",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Louis the Seer",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Arcane": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 2,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 99,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "On hit, summon a Floating Eyeball near the target",
          "name": "Look",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_louis_the_seer.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_louis_the_seer.png",
      "tags": [
        "Arcane",
        "Demon"
      ]
    },
    "monster_maggot_empress": {
      "asset": "char/3x3_maggot_queen.png",
      "attributes": {
        "flying": true,
        "max_hp": 1210,
        "radius": 1,
        "shields": 0,
        "stationary": false
      },
      "baseId": "maggot_empress",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "GiantMindMaggotQueen",
      "group": "rare",
      "icon": "icons/runtime/monster_maggot_empress.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/3x3_maggot_queen.png",
      "id": "monster_maggot_empress",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Maggot Empress",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 74,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "On hit, drain all charges from a spell",
          "name": "Brain Bite",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 8,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 4,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon 4 Mind Maggots",
          "name": "Summon Mind Maggots",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 4,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_maggot_empress.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 4,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_maggot_empress.png",
      "tags": [
        "Living",
        "Arcane"
      ]
    },
    "monster_mantis": {
      "asset": "char/mantis.png",
      "attributes": {
        "flying": false,
        "max_hp": 4,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "mantis",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Mantis",
      "group": "normal",
      "icon": "icons/runtime/monster_mantis.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/mantis.png",
      "id": "monster_mantis",
      "kind": "monster",
      "level": 2,
      "maxLevel": null,
      "name": "Mantis",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 4,
            "requires_los": true
          },
          "className": "LeapAttack",
          "description": "Leap attack",
          "name": "Pounce",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_mantis.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_mantis.png",
      "tags": [
        "Living"
      ]
    },
    "monster_masked_wizard": {
      "asset": "char/mask_wizard.png",
      "attributes": {
        "flying": false,
        "max_hp": 1,
        "radius": 0,
        "shields": 13,
        "stationary": false
      },
      "baseId": "masked_wizard",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "MaskWizard",
      "group": "rare",
      "icon": "icons/runtime/monster_masked_wizard.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/mask_wizard.png",
      "id": "monster_masked_wizard",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Masked Wizard",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Arcane": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 6,
            "damage": 6,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 14,
            "requires_los": false
          },
          "className": "SimpleRangedAttack",
          "description": "Beam attack\n\n\nMelts walls",
          "name": "Void Beam",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 4,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 3,
            "range": 8,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Teleports units up to 5 tiles away",
          "name": "Warp Ball",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 9,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 10,
            "requires_los": false
          },
          "className": "MonsterTeleport",
          "description": "Teleport to a random tile",
          "name": "Teleport",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 17,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Warptouch",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_masked_wizard.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_masked_wizard.png",
      "tags": [
        "Arcane"
      ]
    },
    "monster_mass_of_eyes": {
      "asset": "char/floating_eyeball_mass.png",
      "attributes": {
        "flying": true,
        "max_hp": 18,
        "radius": 0,
        "shields": 12,
        "stationary": false
      },
      "baseId": "mass_of_eyes",
      "buffs": [
        {
          "asset": "tiles/buffs/passive_teleportation.png",
          "className": "TeleportyBuff",
          "description": "",
          "name": "Passive Teleportation"
        },
        {
          "asset": "tiles/buffs/summon_on_death.png",
          "className": "SpawnOnDeath",
          "description": "",
          "name": "Summon On Death"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "FloatingEyeMass",
      "group": "normal",
      "icon": "icons/runtime/monster_mass_of_eyes.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/floating_eyeball_mass.png",
      "id": "monster_mass_of_eyes",
      "kind": "monster",
      "level": 9,
      "maxLevel": null,
      "name": "Mass of Eyes",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 2,
            "range": 99,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Arcane Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_mass_of_eyes.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_mass_of_eyes.png",
      "tags": [
        "Arcane",
        "Demon"
      ]
    },
    "monster_mechanomancer": {
      "asset": "char/mechanomancer.png",
      "attributes": {
        "flying": false,
        "max_hp": 131,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "mechanomancer",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Mechanomancer",
      "group": "rare",
      "icon": "icons/runtime/monster_mechanomancer.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/mechanomancer.png",
      "id": "monster_mechanomancer",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Mechanomancer",
      "rare": true,
      "rareExtra": [
        "Construct"
      ],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 20,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 2,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon 2 Golems",
          "name": "Summon Golems",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "duration": 12,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 5,
            "requires_los": true
          },
          "className": "SimpleCurse",
          "description": "Apply Iron Plating to an ally, granting 50% [Physical] resist",
          "name": "Iron Blessing",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 5,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 5,
            "requires_los": true
          },
          "className": "HealAlly",
          "description": "Heals allied [Construct:construct] unit for 25 HP",
          "name": "Reconstitution",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 3,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Spikebolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_mechanomancer.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_mechanomancer.png",
      "tags": [
        "Construct"
      ]
    },
    "monster_medusa": {
      "asset": "char/medusa.png",
      "attributes": {
        "flying": false,
        "max_hp": 870,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "medusa",
      "buffs": [
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "MedusaSnakeBuff",
          "description": "",
          "name": "Unnamed buff"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Medusa",
      "group": "rare",
      "icon": "icons/runtime/monster_medusa.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/medusa.png",
      "id": "monster_medusa",
      "kind": "monster",
      "level": 3,
      "maxLevel": 1,
      "name": "Medusa",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 6,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "MedusaGaze",
          "description": "Petrifies all units in line of sight for 3 turns",
          "name": "Medusa's Gaze",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 4,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Apply poison for 15 turns\n\n\nAttacks 5 times",
          "name": "Snake Bites",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_medusa.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_medusa.png",
      "tags": [
        "Nature",
        "Arcane",
        "Living",
        "Dark"
      ]
    },
    "monster_mind_devourer": {
      "asset": "char/mind_devourer.png",
      "attributes": {
        "flying": false,
        "max_hp": 82,
        "radius": 0,
        "shields": 2,
        "stationary": false
      },
      "baseId": "mind_devourer",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "MindDevourer",
      "group": "normal",
      "icon": "icons/runtime/monster_mind_devourer.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/mind_devourer.png",
      "id": "monster_mind_devourer",
      "kind": "monster",
      "level": 7,
      "maxLevel": null,
      "name": "Mind Devourer",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 25,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "On hit, drain a charge from a random spell and gain [1 SH:shields]",
          "name": "Brain Bite",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 2,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 6,
            "requires_los": true
          },
          "className": "PullAttack",
          "description": "Pull the target 1 tile toward the caster",
          "name": "Tentacle",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_mind_devourer.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_mind_devourer.png",
      "tags": [
        "Arcane",
        "Living"
      ]
    },
    "monster_mind_maggot": {
      "asset": "char/mind_maggot.png",
      "attributes": {
        "flying": false,
        "max_hp": 5,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "mind_maggot",
      "buffs": [
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "MindMaggotBuff",
          "description": "Each turn, 5% chance to gain Flying",
          "name": "Unnamed buff"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "MindMaggot",
      "group": "normal",
      "icon": "icons/runtime/monster_mind_maggot.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/mind_maggot.png",
      "id": "monster_mind_maggot",
      "kind": "monster",
      "level": 2,
      "maxLevel": null,
      "name": "Mind Maggot",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "On hit, drains a spell charge",
          "name": "Brain Bite",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_mind_maggot.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_mind_maggot.png",
      "tags": [
        "Living",
        "Arcane"
      ]
    },
    "monster_mind_maggot_queen": {
      "asset": "char/mind_maggot_queen.png",
      "attributes": {
        "flying": false,
        "max_hp": 79,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "mind_maggot_queen",
      "buffs": [
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "GeneratorBuff",
          "description": "",
          "name": "Unnamed buff"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "MindMaggotQueen",
      "group": "normal",
      "icon": "icons/runtime/monster_mind_maggot_queen.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/mind_maggot_queen.png",
      "id": "monster_mind_maggot_queen",
      "kind": "monster",
      "level": 6,
      "maxLevel": null,
      "name": "Mind Maggot Queen",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 11,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "On hit, drains a spell charge",
          "name": "Brain Bite",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_mind_maggot_queen.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_mind_maggot_queen.png",
      "tags": [
        "Living",
        "Arcane"
      ]
    },
    "monster_mind_maggot_wretch": {
      "asset": "char/mind_maggot_wretch.png",
      "attributes": {
        "flying": false,
        "max_hp": 200,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "mind_maggot_wretch",
      "buffs": [
        {
          "asset": "status/quickmove.png",
          "className": "QuickmoveBuff",
          "description": "",
          "name": "Quickstep"
        },
        {
          "asset": "tiles/buffs/wretched_curse.png",
          "className": "DeathCurseRetaliation",
          "description": "",
          "name": "Wretched Curse"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "MindMaggotWretch",
      "group": "normal",
      "icon": "icons/runtime/monster_mind_maggot_wretch.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/mind_maggot_wretch.png",
      "id": "monster_mind_maggot_wretch",
      "kind": "monster",
      "level": 9,
      "maxLevel": null,
      "name": "Mind Maggot Wretch",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 25,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Attacks 2 times\n\n\nOn hit, drains a spell charge",
          "name": "Brain Bites",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_mind_maggot_wretch.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_mind_maggot_wretch.png",
      "tags": [
        "Living",
        "Arcane",
        "Dark"
      ]
    },
    "monster_mind_vampire": {
      "asset": "char/mind_vampire.png",
      "attributes": {
        "flying": true,
        "max_hp": 25,
        "radius": 0,
        "shields": 3,
        "stationary": false
      },
      "baseId": "mind_vampire",
      "buffs": [
        {
          "asset": "tiles/buffs/respawn_as_vampire_eye.png",
          "className": "RespawnAs",
          "description": "",
          "name": "Respawn As Vampire Eye"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "MindVampire",
      "group": "normal",
      "icon": "icons/runtime/monster_mind_vampire.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/mind_vampire.png",
      "id": "monster_mind_vampire",
      "kind": "monster",
      "level": 6,
      "maxLevel": null,
      "name": "Mind Vampire",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 50,
        "Fire": -100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 7,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "On hit, drain a charge from a random spell and gain [1 SH:shields], up to [3 SH:shields]",
          "name": "Mind Drain",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_mind_vampire.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_mind_vampire.png",
      "tags": [
        "Arcane",
        "Dark",
        "Undead"
      ]
    },
    "monster_minos_the_golden_bull": {
      "asset": "char/minotaur_gilded.png",
      "attributes": {
        "flying": false,
        "max_hp": 960,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "minos_the_golden_bull",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "GoldenBull",
      "group": "rare",
      "icon": "icons/runtime/monster_minos_the_golden_bull.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/minotaur_gilded.png",
      "id": "monster_minos_the_golden_bull",
      "kind": "monster",
      "level": 3,
      "maxLevel": 1,
      "name": "Minos, The Golden Bull",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Dark": 75,
        "Holy": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 30,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "BullCleave",
          "description": "Hits enemies in an arc",
          "name": "Thrashing Horns",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 36,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 6,
            "requires_los": true
          },
          "className": "LeapAttack",
          "description": "Charge attack",
          "name": "Charge",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_minos_the_golden_bull.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_minos_the_golden_bull.png",
      "tags": [
        "Living",
        "Metallic"
      ]
    },
    "monster_minotaur": {
      "asset": "char/minotaur.png",
      "attributes": {
        "flying": false,
        "max_hp": 45,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "minotaur",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "Minotaur",
      "group": "normal",
      "icon": "icons/runtime/monster_minotaur.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/minotaur.png",
      "id": "monster_minotaur",
      "kind": "monster",
      "level": 5,
      "maxLevel": null,
      "name": "Minotaur",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 12,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Trample attack",
          "name": "Melee Attack",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 12,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 6,
            "requires_los": true
          },
          "className": "LeapAttack",
          "description": "Charge attack",
          "name": "Charge",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_minotaur.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_minotaur.png",
      "tags": [
        "Living"
      ]
    },
    "monster_mischief_maker": {
      "asset": "char/gnomed_troubler.png",
      "attributes": {
        "flying": true,
        "max_hp": 1,
        "radius": 0,
        "shields": 33,
        "stationary": true
      },
      "baseId": "mischief_maker",
      "buffs": [
        {
          "asset": "tiles/buffs/passive_teleportation.png",
          "className": "TeleportyBuff",
          "description": "",
          "name": "Passive Teleportation"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "MischiefMaker",
      "group": "rare",
      "icon": "icons/runtime/monster_mischief_maker.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/gnomed_troubler.png",
      "id": "monster_mischief_maker",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Mischief Maker",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Arcane": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 2,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 10,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Teleports the target up to 3 tiles and summons 3 Fae Thorns nearby",
          "name": "Thorncurse",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_mischief_maker.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_mischief_maker.png",
      "tags": [
        "Arcane"
      ]
    },
    "monster_mogwai_mage": {
      "asset": "char/gremlin_mage.png",
      "attributes": {
        "flying": false,
        "max_hp": 135,
        "radius": 0,
        "shields": 3,
        "stationary": false
      },
      "baseId": "mogwai_mage",
      "buffs": [
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "SpawnOnHeal",
          "description": "",
          "name": "Unnamed buff"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "GremlinWizard",
      "group": "rare",
      "icon": "icons/runtime/monster_mogwai_mage.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/gremlin_mage.png",
      "id": "monster_mogwai_mage",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Mogwai Mage",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 2,
            "damage": 10,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 2,
            "range": 6,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Apply feared for 1 turn",
          "name": "Fear Ball",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 5,
            "requires_los": true
          },
          "className": "HealAlly",
          "description": "Heals caster or ally for 8 HP",
          "name": "Heal Ally",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 6,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Heals for damage dealt",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_mogwai_mage.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_mogwai_mage.png",
      "tags": [
        "Demon",
        "Dark"
      ]
    },
    "monster_molten_devourer": {
      "asset": "char/molten_devourer.png",
      "attributes": {
        "flying": false,
        "max_hp": 7007,
        "radius": 1,
        "shields": 0,
        "stationary": false
      },
      "baseId": "molten_devourer",
      "buffs": [
        {
          "asset": "tiles/buffs/fire_aura.png",
          "className": "DamageAuraBuff",
          "description": "",
          "name": "Fire Aura"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "MoltenDevourer",
      "group": "rare",
      "icon": "icons/runtime/monster_molten_devourer.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/molten_devourer.png",
      "id": "monster_molten_devourer",
      "kind": "monster",
      "level": 3,
      "maxLevel": 1,
      "name": "Molten Devourer",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Fire": 100,
        "Physical": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 5,
            "damage": 80,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 9,
            "requires_los": false
          },
          "className": "LavaBeam",
          "description": "Deals damage in a wide beam\n\nMelts walls",
          "name": "Lava Beam",
          "tags": [
            "Fire"
          ]
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "damage": 25,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 4,
            "range": 0,
            "requires_los": true
          },
          "className": "LavaBurst",
          "description": "Burst around the caster\nDestroy walls",
          "name": "Fire Burst",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 50,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Apply hemorrhage for 15 turns\n\n\nAttacks 3 times",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 4,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_molten_devourer.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 4,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_molten_devourer.png",
      "tags": [
        "Metallic",
        "Fire",
        "Demon"
      ]
    },
    "monster_moon_mage": {
      "asset": "char/moon_mage.png",
      "attributes": {
        "flying": false,
        "max_hp": 75,
        "radius": 0,
        "shields": 5,
        "stationary": false
      },
      "baseId": "moon_mage",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "MoonMage",
      "group": "rare",
      "icon": "icons/runtime/monster_moon_mage.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/moon_mage.png",
      "id": "monster_moon_mage",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Moon Mage",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Arcane": 100,
        "Holy": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 10,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 4,
            "range": 0,
            "requires_los": true
          },
          "className": "MoonBurst",
          "description": "Deals damage to enemies in a burst around the caster\nUnits within 4 tiles are randomly teleported",
          "name": "Moon Burst",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 10,
            "duration": 5,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 1,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon a temporary Lamasu",
          "name": "Lunar Steed",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 8,
            "duration": 30,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 5,
            "requires_los": true
          },
          "className": "SimpleCurse",
          "description": "Apply Moon Crown to an ally for 30 turns",
          "name": "Lunar Coronation",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 6,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 7,
            "requires_los": false
          },
          "className": "SimpleRangedAttack",
          "description": "Beam attack\n\n\nMelts walls",
          "name": "Moon Beam",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_moon_mage.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_moon_mage.png",
      "tags": [
        "Holy",
        "Arcane"
      ]
    },
    "monster_mother_of_spiders": {
      "asset": "char/3x3_spider_queen.png",
      "attributes": {
        "flying": false,
        "max_hp": 1284,
        "radius": 1,
        "shields": 0,
        "stationary": false
      },
      "baseId": "mother_of_spiders",
      "buffs": [
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "SpiderBuff",
          "description": "",
          "name": "Unnamed buff"
        },
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "GeneratorBuff",
          "description": "",
          "name": "Unnamed buff"
        },
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "GeneratorBuff",
          "description": "",
          "name": "Unnamed buff"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "MotherOfSpiders",
      "group": "rare",
      "icon": "icons/runtime/monster_mother_of_spiders.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/3x3_spider_queen.png",
      "id": "monster_mother_of_spiders",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Mother of Spiders",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 20,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Apply poison for 50 turns",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 4,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_mother_of_spiders.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 4,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_mother_of_spiders.png",
      "tags": [
        "Spider",
        "Living",
        "Nature"
      ]
    },
    "monster_mothgod": {
      "asset": "char/giant_mothgod.png",
      "attributes": {
        "flying": true,
        "max_hp": 1966,
        "radius": 1,
        "shields": 8,
        "stationary": false
      },
      "baseId": "mothgod",
      "buffs": [
        {
          "asset": "tiles/buffs/passive_teleportation.png",
          "className": "TeleportyBuff",
          "description": "",
          "name": "Passive Teleportation"
        },
        {
          "asset": "tiles/buffs/superstition.png",
          "className": "ArcaneFear",
          "description": "Enemies are [feared] for one turn when they take [Arcane] damage",
          "name": "Superstition"
        },
        {
          "asset": "tiles/buffs/shield_regeneration.png",
          "className": "ShieldRegenBuff",
          "description": "",
          "name": "Shield Regeneration"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Mothgod",
      "group": "rare",
      "icon": "icons/runtime/monster_mothgod.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/giant_mothgod.png",
      "id": "monster_mothgod",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Mothgod",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Arcane": 100,
        "Ice": -50,
        "Lightning": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 2,
            "damage": 12,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 9,
            "requires_los": false
          },
          "className": "WideBeam",
          "description": "Deals damage in a wide beam\n\nMelts walls",
          "name": "Arcane Beam",
          "tags": [
            "Arcane"
          ]
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "damage": 11,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 9,
            "requires_los": true
          },
          "className": "WideBeam",
          "description": "Deals damage in a wide beam",
          "name": "Lightning Beam",
          "tags": [
            "Lightning"
          ]
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 4,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_mothgod.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 4,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_mothgod.png",
      "tags": [
        "Arcane",
        "Lightning",
        "Living",
        "Demon"
      ]
    },
    "monster_mountain_mage": {
      "asset": "char/mountain_wizard.png",
      "attributes": {
        "flying": false,
        "max_hp": 86,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "mountain_mage",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "MountainWizard",
      "group": "rare",
      "icon": "icons/runtime/monster_mountain_mage.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/mountain_wizard.png",
      "id": "monster_mountain_mage",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Mountain Mage",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 12,
            "duration": 8,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "WizardStoneSkin",
          "description": "Caster and allies gain 50% [Physical] resist for [8:duration] turns",
          "name": "Stoneskin",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 5,
            "duration": 15,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 1,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon a temporary Earth Elemental",
          "name": "Summon Earth Elemental",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 8,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 3,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon 3 Wolves",
          "name": "Summon Wolves",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 16,
            "damage": 14,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 10,
            "range": 0,
            "requires_los": true
          },
          "className": "WizardEarthquake",
          "description": "Damages enemies in a burst around the caster\n50% chance to destroy affected walls",
          "name": "Earthquake",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 5,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Physical Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_mountain_mage.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_mountain_mage.png",
      "tags": [
        "Living",
        "Nature"
      ]
    },
    "monster_mycelial_mage": {
      "asset": "char/mushroom_mage.png",
      "attributes": {
        "flying": false,
        "max_hp": 120,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "mycelial_mage",
      "buffs": [
        {
          "asset": "status/heal.png",
          "className": "RegenBuff",
          "description": "",
          "name": "Regeneration"
        },
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "GeneratorBuff",
          "description": "",
          "name": "Unnamed buff"
        },
        {
          "asset": "tiles/buffs/mushboom_burst.png",
          "className": "MushboomBuff",
          "description": [
            "On death, apply {buff} to adjacent units for {duration} turns",
            {
              "buff": "Poison",
              "duration": 50
            }
          ],
          "name": "Mushboom Burst"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "MushroomWizard",
      "group": "rare",
      "icon": "icons/runtime/monster_mycelial_mage.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/mushroom_mage.png",
      "id": "monster_mycelial_mage",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Mycelial Mage",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Fire": -50,
        "Ice": -50,
        "Poison": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 16,
            "duration": 10,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "PoisonProtection",
          "description": "Allies have their [poison] removed and gain [100% Poison:poison] resist for 10 turns",
          "name": "Poison Protection",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 4,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 1,
            "range": 5,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Apply poison for 10 turns",
          "name": "Spore Shot",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_mycelial_mage.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_mycelial_mage.png",
      "tags": [
        "Nature"
      ]
    },
    "monster_mycobeast": {
      "asset": "char/spore_beast_toxic.png",
      "attributes": {
        "flying": false,
        "max_hp": 31,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "mycobeast",
      "buffs": [
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "GeneratorBuff",
          "description": "",
          "name": "Unnamed buff"
        },
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "GeneratorBuff",
          "description": "",
          "name": "Unnamed buff"
        },
        {
          "asset": "status/heal.png",
          "className": "RegenBuff",
          "description": "",
          "name": "Regeneration"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "Mycobeast",
      "group": "normal",
      "icon": "icons/runtime/monster_mycobeast.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/spore_beast_toxic.png",
      "id": "monster_mycobeast",
      "kind": "monster",
      "level": 5,
      "maxLevel": null,
      "name": "Mycobeast",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Fire": -50,
        "Ice": -50,
        "Poison": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_mycobeast.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_mycobeast.png",
      "tags": [
        "Living",
        "Nature"
      ]
    },
    "monster_necrodrake": {
      "asset": "char/necro_drake.png",
      "attributes": {
        "flying": true,
        "max_hp": 240,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "necrodrake",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "Necrodrake",
      "group": "normal",
      "icon": "icons/runtime/monster_necrodrake.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/necro_drake.png",
      "id": "monster_necrodrake",
      "kind": "monster",
      "level": 9,
      "maxLevel": null,
      "name": "Necrodrake",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "damage": 15,
            "duration": 5,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 5,
            "requires_los": true
          },
          "className": "NecroticBreath",
          "description": "Cone attack\nApplies [necrosis] for [5:duration] turns",
          "name": "Necrotic Breath",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 12,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Apply necrosis for 5 turns\n\n\nHeals for damage dealt",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_necrodrake.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_necrodrake.png",
      "tags": [
        "Dragon",
        "Living",
        "Dark"
      ]
    },
    "monster_night_hag": {
      "asset": "char/night_hag.png",
      "attributes": {
        "flying": false,
        "max_hp": 84,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "night_hag",
      "buffs": [
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "GeneratorBuff",
          "description": "",
          "name": "Unnamed buff"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "NightHag",
      "group": "normal",
      "icon": "icons/runtime/monster_night_hag.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/night_hag.png",
      "id": "monster_night_hag",
      "kind": "monster",
      "level": 7,
      "maxLevel": null,
      "name": "Night Hag",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 50,
        "Dark": 75,
        "Fire": -50,
        "Holy": -50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 2,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "HagDrain",
          "description": "Steals life from all [Living] units in line of sight",
          "name": "Life Siphon",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "damage": 1,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Apply sleep for 2 turns",
          "name": "Sleep Touch",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_night_hag.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_night_hag.png",
      "tags": [
        "Dark",
        "Arcane",
        "Undead"
      ]
    },
    "monster_nightmare_turtle": {
      "asset": "char/nightmare_turtle.png",
      "attributes": {
        "flying": false,
        "max_hp": 295,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "nightmare_turtle",
      "buffs": [
        {
          "asset": "tiles/buffs/nightmare_aura.png",
          "className": "DamageAuraBuff",
          "description": "",
          "name": "Nightmare Aura"
        },
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "TurtleBuff",
          "description": "",
          "name": "Unnamed buff"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "NightmareTurtle",
      "group": "normal",
      "icon": "icons/runtime/monster_nightmare_turtle.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/nightmare_turtle.png",
      "id": "monster_nightmare_turtle",
      "kind": "monster",
      "level": 8,
      "maxLevel": null,
      "name": "Nightmare Turtle",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 50,
        "Dark": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 30,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_nightmare_turtle.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_nightmare_turtle.png",
      "tags": [
        "Dark",
        "Nature",
        "Arcane",
        "Demon"
      ]
    },
    "monster_nine_the_cat": {
      "asset": "char/nine_the_cat.png",
      "attributes": {
        "flying": false,
        "max_hp": 9,
        "radius": 0,
        "shields": 9,
        "stationary": false
      },
      "baseId": "nine_the_cat",
      "buffs": [
        {
          "asset": "tiles/buffs/passive_teleportation.png",
          "className": "TeleportyBuff",
          "description": "",
          "name": "Passive Teleportation"
        },
        {
          "asset": "tiles/buffs/shield_regeneration.png",
          "className": "ShieldRegenBuff",
          "description": "",
          "name": "Shield Regeneration"
        },
        {
          "asset": "status/reincarnation.png",
          "className": "ReincarnationBuff",
          "description": "",
          "name": "Reincarnation"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "NineTheCat",
      "group": "rare",
      "icon": "icons/runtime/monster_nine_the_cat.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/nine_the_cat.png",
      "id": "monster_nine_the_cat",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Nine the Cat",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Arcane": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 9,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_nine_the_cat.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_nine_the_cat.png",
      "tags": [
        "Living",
        "Arcane"
      ]
    },
    "monster_observer": {
      "asset": "char/twofold_watcher.png",
      "attributes": {
        "flying": false,
        "max_hp": 2020,
        "radius": 0,
        "shields": 0,
        "stationary": true
      },
      "baseId": "observer",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Observer",
      "group": "rare",
      "icon": "icons/runtime/monster_observer.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/twofold_watcher.png",
      "id": "monster_observer",
      "kind": "monster",
      "level": 3,
      "maxLevel": 1,
      "name": "Observer",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Fire": 50,
        "Lightning": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 20,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": true,
            "range": 12,
            "requires_los": true
          },
          "className": "MonsterChainLightning",
          "description": "Chains to targets up to 3 tiles away",
          "name": "Chain Lightning",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_observer.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_observer.png",
      "tags": [
        "Construct",
        "Lightning"
      ]
    },
    "monster_odin_aesir_immortal": {
      "asset": "char/aesir_immortal.png",
      "attributes": {
        "flying": false,
        "max_hp": 676,
        "radius": 0,
        "shields": 3,
        "stationary": false
      },
      "baseId": "odin_aesir_immortal",
      "buffs": [
        {
          "asset": "status/reincarnation.png",
          "className": "ReincarnationBuff",
          "description": "",
          "name": "Reincarnation"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "AesirLord",
      "group": "rare",
      "icon": "icons/runtime/monster_odin_aesir_immortal.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/aesir_immortal.png",
      "id": "monster_odin_aesir_immortal",
      "kind": "monster",
      "level": 3,
      "maxLevel": 1,
      "name": "Odin, Aesir Immortal",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Dark": 75,
        "Holy": 100,
        "Lightning": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 9,
            "damage": 9,
            "duration": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 2,
            "range": 8,
            "requires_los": true
          },
          "className": "WizardThunderStrike",
          "description": "Stuns all enemies in an area around the target for [3:duration] turns",
          "name": "Thunder Strike",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 2,
            "damage": 25,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 6,
            "requires_los": true
          },
          "className": "MonsterChainLightning",
          "description": "Chains to targets up to 3 tiles away",
          "name": "Chain Lightning",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 29,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Apply stunned for 1 turn",
          "name": "Gungir",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_odin_aesir_immortal.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_odin_aesir_immortal.png",
      "tags": [
        "Lightning",
        "Living",
        "Holy"
      ]
    },
    "monster_ogre": {
      "asset": "char/ogre.png",
      "attributes": {
        "flying": false,
        "max_hp": 45,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "ogre",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Ogre",
      "group": "normal",
      "icon": "icons/runtime/monster_ogre.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/ogre.png",
      "id": "monster_ogre",
      "kind": "monster",
      "level": 4,
      "maxLevel": null,
      "name": "Ogre",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 15,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_ogre.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_ogre.png",
      "tags": [
        "Living"
      ]
    },
    "monster_old_thunderbones": {
      "asset": "char/ogre_shaman.png",
      "attributes": {
        "flying": false,
        "max_hp": 256,
        "radius": 0,
        "shields": 3,
        "stationary": false
      },
      "baseId": "old_thunderbones",
      "buffs": [
        {
          "asset": "tiles/buffs/summon_on_death.png",
          "className": "SpawnOnDeath",
          "description": "",
          "name": "Summon On Death"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Thunderbones",
      "group": "rare",
      "icon": "icons/runtime/monster_old_thunderbones.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/ogre_shaman.png",
      "id": "monster_old_thunderbones",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Old Thunderbones",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Dark": 50,
        "Lightning": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 5,
            "duration": 20,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 2,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon 2 temporary Spark Spirits",
          "name": "Summon Spark Spirits",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 5,
            "damage": 10,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 2,
            "range": 6,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Apply feared for 3 turns",
          "name": "Dark Ball",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 25,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Apply stunned for 1 turn",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_old_thunderbones.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_old_thunderbones.png",
      "tags": [
        "Living",
        "Dark",
        "Lightning"
      ]
    },
    "monster_orc": {
      "asset": "char/orc.png",
      "attributes": {
        "flying": false,
        "max_hp": 20,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "orc",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Orc",
      "group": "normal",
      "icon": "icons/runtime/monster_orc.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/orc.png",
      "id": "monster_orc",
      "kind": "monster",
      "level": 2,
      "maxLevel": null,
      "name": "Orc",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 5,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_orc.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_orc.png",
      "tags": [
        "Living"
      ]
    },
    "monster_orc_houndlord": {
      "asset": "char/orc_houndlord.png",
      "attributes": {
        "flying": false,
        "max_hp": 49,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "orc_houndlord",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "OrcHoundlord",
      "group": "normal",
      "icon": "icons/runtime/monster_orc_houndlord.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/orc_houndlord.png",
      "id": "monster_orc_houndlord",
      "kind": "monster",
      "level": 5,
      "maxLevel": null,
      "name": "Orc Houndlord",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 10,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 2,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon 2 Orc Wolfs",
          "name": "Summon Orc Wolfs",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 5,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_orc_houndlord.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_orc_houndlord.png",
      "tags": [
        "Living"
      ]
    },
    "monster_ossuary_spider": {
      "asset": "char/arachnid_abomination.png",
      "attributes": {
        "flying": false,
        "max_hp": 2568,
        "radius": 1,
        "shields": 0,
        "stationary": false
      },
      "baseId": "ossuary_spider",
      "buffs": [
        {
          "asset": "tiles/buffs/rotting_aura.png",
          "className": "DamageAuraBuff",
          "description": "",
          "name": "Rotting Aura"
        },
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "SpiderBuff",
          "description": "",
          "name": "Unnamed buff"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "OssuarySpider",
      "group": "rare",
      "icon": "icons/runtime/monster_ossuary_spider.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/arachnid_abomination.png",
      "id": "monster_ossuary_spider",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Ossuary Spider",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Poison": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 8,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 3,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon 3 Bone Shamblers",
          "name": "Summon Bone Shamblers",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 20,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Apply necrosis for 50 turns",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 4,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_ossuary_spider.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 4,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_ossuary_spider.png",
      "tags": [
        "Spider",
        "Undead",
        "Nature"
      ]
    },
    "monster_pale_rider": {
      "asset": "char/pale_horseman.png",
      "attributes": {
        "flying": false,
        "max_hp": 374,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "pale_rider",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "PaleRider",
      "group": "rare",
      "icon": "icons/runtime/monster_pale_rider.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/pale_horseman.png",
      "id": "monster_pale_rider",
      "kind": "monster",
      "level": 3,
      "maxLevel": 1,
      "name": "Pale Rider",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Dark": 100,
        "Holy": 100,
        "Poison": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 20,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 50,
            "requires_los": false
          },
          "className": "MonsterTeleport",
          "description": "Teleport to a random tile",
          "name": "Teleport",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 17,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 7,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon 7 Ghosts",
          "name": "Army of Hades",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 17,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 3,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon 3 Blood Hounds",
          "name": "Beasts of Earth",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 4,
            "damage": 7,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 9,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Drains 7 maximum hp",
          "name": "Famine Gaze",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 70,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_pale_rider.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_pale_rider.png",
      "tags": [
        "Holy",
        "Demon"
      ]
    },
    "monster_pan": {
      "asset": "char/pan.png",
      "attributes": {
        "flying": false,
        "max_hp": 91,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "pan",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Pan",
      "group": "rare",
      "icon": "icons/runtime/monster_pan.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/pan.png",
      "id": "monster_pan",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Pan",
      "rare": true,
      "rareExtra": [
        "Living"
      ],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 7,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 7,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon 7 Satyrs\n at random locations",
          "name": "Piper at the Gates",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "duration": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "PansMadnessSpell",
          "description": "Berserks enemies for 3 turns",
          "name": "Strife",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 18,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_pan.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_pan.png",
      "tags": [
        "Chaos",
        "Living",
        "Nature"
      ]
    },
    "monster_phoenix": {
      "asset": "char/phoenix.png",
      "attributes": {
        "flying": true,
        "max_hp": 125,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "phoenix",
      "buffs": [
        {
          "asset": "tiles/buffs/phoenix_fire.png",
          "className": "PhoenixBuff",
          "description": "",
          "name": "Phoenix Fire"
        },
        {
          "asset": "status/reincarnation.png",
          "className": "ReincarnationBuff",
          "description": "",
          "name": "Reincarnation"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "Phoenix",
      "group": "normal",
      "icon": "icons/runtime/monster_phoenix.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/phoenix.png",
      "id": "monster_phoenix",
      "kind": "monster",
      "level": 9,
      "maxLevel": null,
      "name": "Phoenix",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": -50,
        "Fire": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 9,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 5,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Fire Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_phoenix.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_phoenix.png",
      "tags": [
        "Fire",
        "Holy"
      ]
    },
    "monster_pillar_of_bones": {
      "asset": "char/3x3_pillar_of_bones.png",
      "attributes": {
        "flying": false,
        "max_hp": 2800,
        "radius": 1,
        "shields": 0,
        "stationary": true
      },
      "baseId": "pillar_of_bones",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "PillarOfBone",
      "group": "rare",
      "icon": "icons/runtime/monster_pillar_of_bones.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/3x3_pillar_of_bones.png",
      "id": "monster_pillar_of_bones",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Pillar of Bones",
      "rare": true,
      "rareExtra": [
        "Undead"
      ],
      "resists": {
        "Physical": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 12,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 4,
            "max_charges": 0,
            "melee": false,
            "num_summons": 1,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon a Bone Shambler\n at a random location\n\n\nCan be channeled for 4 turns",
          "name": "Awaken Bone Shamblers",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 16,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 6,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Beam attack",
          "name": "Bone Spear",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 4,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_pillar_of_bones.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 4,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_pillar_of_bones.png",
      "tags": [
        "Undead",
        "Dark"
      ]
    },
    "monster_pillar_of_worms": {
      "asset": "char/3x3_pillar_of_worms.png",
      "attributes": {
        "flying": false,
        "max_hp": 3000,
        "radius": 1,
        "shields": 0,
        "stationary": true
      },
      "baseId": "pillar_of_worms",
      "buffs": [
        {
          "asset": "status/heal.png",
          "className": "RegenBuff",
          "description": "",
          "name": "Regeneration"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "PillarOfWorms",
      "group": "rare",
      "icon": "icons/runtime/monster_pillar_of_worms.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/3x3_pillar_of_worms.png",
      "id": "monster_pillar_of_worms",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Pillar of Worms",
      "rare": true,
      "rareExtra": [
        "Living"
      ],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 12,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 3,
            "max_charges": 0,
            "melee": false,
            "num_summons": 1,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon a Worm Shambler\n at a random location\n\n\nCan be channeled for 3 turns",
          "name": "Summon Worm Shambler",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "duration": 20,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 10,
            "requires_los": true
          },
          "className": "SimpleCurse",
          "description": "Apply poison for 20 turns",
          "name": "Poison",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 4,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_pillar_of_worms.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 4,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_pillar_of_worms.png",
      "tags": [
        "Living"
      ]
    },
    "monster_polar_bear": {
      "asset": "char/polar_bear.png",
      "attributes": {
        "flying": false,
        "max_hp": 75,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "polar_bear",
      "buffs": [
        {
          "asset": "tiles/buffs/icy_metabolism.png",
          "className": "IcyMetabolism",
          "description": "",
          "name": "Icy Metabolism"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "PolarBear",
      "group": "normal",
      "icon": "icons/runtime/monster_polar_bear.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/polar_bear.png",
      "id": "monster_polar_bear",
      "kind": "monster",
      "level": 4,
      "maxLevel": null,
      "name": "Polar Bear",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Fire": -50,
        "Ice": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 9,
            "duration": 4,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "Hibernate",
          "description": "[Freeze] caster for 4 turns",
          "name": "Hibernate",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 10,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Attacks 2 times",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_polar_bear.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_polar_bear.png",
      "tags": [
        "Living",
        "Nature",
        "Ice"
      ]
    },
    "monster_pumpkinhead": {
      "asset": "char/pumpkinhead.png",
      "attributes": {
        "flying": false,
        "max_hp": 15,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "pumpkinhead",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Pumpkinhead",
      "group": "normal",
      "icon": "icons/runtime/monster_pumpkinhead.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/pumpkinhead.png",
      "id": "monster_pumpkinhead",
      "kind": "monster",
      "level": 3,
      "maxLevel": null,
      "name": "Pumpkinhead",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 50,
        "Fire": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "damage": 5,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 3,
            "requires_los": true
          },
          "className": "FireBreath",
          "description": "Cone attack",
          "name": "Fire Breath",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 3,
            "requires_los": true
          },
          "className": "PullAttack",
          "description": "Pull the target 1 tile toward the caster",
          "name": "Pull Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_pumpkinhead.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_pumpkinhead.png",
      "tags": [
        "Nature",
        "Dark",
        "Fire"
      ]
    },
    "monster_purple_hand": {
      "asset": "char/giant_hand.png",
      "attributes": {
        "flying": false,
        "max_hp": 38,
        "radius": 0,
        "shields": 2,
        "stationary": false
      },
      "baseId": "purple_hand",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "PurpleHand",
      "group": "normal",
      "icon": "icons/runtime/monster_purple_hand.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/giant_hand.png",
      "id": "monster_purple_hand",
      "kind": "monster",
      "level": 5,
      "maxLevel": null,
      "name": "Purple Hand",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 16,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Teleports the target up to 4 tiles",
          "name": "Void Flick",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_purple_hand.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_purple_hand.png",
      "tags": [
        "Arcane"
      ]
    },
    "monster_rattlemaw": {
      "asset": "char/3x3_bone_dragon.png",
      "attributes": {
        "flying": true,
        "max_hp": 3004,
        "radius": 1,
        "shields": 0,
        "stationary": false
      },
      "baseId": "rattlemaw",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Rattlemaw",
      "group": "rare",
      "icon": "icons/runtime/monster_rattlemaw.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/3x3_bone_dragon.png",
      "id": "monster_rattlemaw",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Rattlemaw",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Dark": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 20,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "LichSealSoulSpell",
          "description": "Summon a Soul Jar\nThe caster cannot die while the Soul Jar lives",
          "name": "Soul Jar",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "damage": 23,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 11,
            "requires_los": true
          },
          "className": "DarkBreath",
          "description": "Cone attack\nSlain units become Skeletons",
          "name": "Dark Breath",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 47,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 4,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_rattlemaw.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 4,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_rattlemaw.png",
      "tags": [
        "Dragon",
        "Undead",
        "Dark"
      ]
    },
    "monster_raven": {
      "asset": "char/raven.png",
      "attributes": {
        "flying": true,
        "max_hp": 13,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "raven",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Raven",
      "group": "normal",
      "icon": "icons/runtime/monster_raven.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/raven.png",
      "id": "monster_raven",
      "kind": "monster",
      "level": 3,
      "maxLevel": null,
      "name": "Raven",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Apply blind for 3 turns",
          "name": "Peck",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_raven.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_raven.png",
      "tags": [
        "Living",
        "Dark"
      ]
    },
    "monster_raven_mage": {
      "asset": "char/raven_wizard.png",
      "attributes": {
        "flying": true,
        "max_hp": 76,
        "radius": 0,
        "shields": 4,
        "stationary": false
      },
      "baseId": "raven_mage",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "RavenMage",
      "group": "rare",
      "icon": "icons/runtime/monster_raven_mage.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/raven_wizard.png",
      "id": "monster_raven_mage",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Raven Mage",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 6,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 3,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon 3 Ravens",
          "name": "Summon Ravens",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 12,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 20,
            "requires_los": true
          },
          "className": "MonsterTeleport",
          "description": "Teleports to a random tile in line of sight",
          "name": "Ride the Wind",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 9,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "RavenBlind",
          "description": "Blinds all enemies for 3 turns",
          "name": "Mass Blindness",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 44,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Death Touch",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_raven_mage.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_raven_mage.png",
      "tags": [
        "Living",
        "Dark"
      ]
    },
    "monster_razor_beast": {
      "asset": "char/razor_beast.png",
      "attributes": {
        "flying": false,
        "max_hp": 18,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "razor_beast",
      "buffs": [
        {
          "asset": "tiles/buffs/passive_teleportation.png",
          "className": "TeleportyBuff",
          "description": "",
          "name": "Passive Teleportation"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "RazorBeast",
      "group": "normal",
      "icon": "icons/runtime/monster_razor_beast.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/razor_beast.png",
      "id": "monster_razor_beast",
      "kind": "monster",
      "level": 3,
      "maxLevel": null,
      "name": "Razor Beast",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 50,
        "Fire": 0,
        "Ice": 0,
        "Lightning": -50,
        "Physical": 0,
        "Poison": 0
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Apply bleed for 3 turns\n\n\nAttacks 2 times",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_razor_beast.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_razor_beast.png",
      "tags": [
        "Living",
        "Arcane",
        "Metallic"
      ]
    },
    "monster_reaper": {
      "asset": "char/reaper.png",
      "attributes": {
        "flying": true,
        "max_hp": 31,
        "radius": 0,
        "shields": 2,
        "stationary": false
      },
      "baseId": "reaper",
      "buffs": [
        {
          "asset": "tiles/buffs/passive_teleportation.png",
          "className": "TeleportyBuff",
          "description": "",
          "name": "Passive Teleportation"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "Reaper",
      "group": "normal",
      "icon": "icons/runtime/monster_reaper.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/reaper.png",
      "id": "monster_reaper",
      "kind": "monster",
      "level": 7,
      "maxLevel": null,
      "name": "Reaper",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 100,
        "Physical": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 200,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Death Touch",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_reaper.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_reaper.png",
      "tags": [
        "Undead",
        "Dark"
      ]
    },
    "monster_red_cyclops": {
      "asset": "char/red_cyclops.png",
      "attributes": {
        "flying": false,
        "max_hp": 256,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "red_cyclops",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "RedCyclops",
      "group": "normal",
      "icon": "icons/runtime/monster_red_cyclops.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/red_cyclops.png",
      "id": "monster_red_cyclops",
      "kind": "monster",
      "level": 7,
      "maxLevel": null,
      "name": "Red Cyclops",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 13,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1,
            "requires_los": true
          },
          "className": "CyclopsEnemyBat",
          "description": "Bat an enemy to a random tile in line of sight",
          "name": "Swat Enemy",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 13,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 8,
            "requires_los": true
          },
          "className": "CyclopsAllyBat",
          "description": "Bats an adjacent unit towards an enemy",
          "name": "Swat Ally",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_red_cyclops.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_red_cyclops.png",
      "tags": [
        "Living"
      ]
    },
    "monster_red_rider": {
      "asset": "char/red_horseman.png",
      "attributes": {
        "flying": false,
        "max_hp": 374,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "red_rider",
      "buffs": [
        {
          "asset": "tiles/buffs/strife_healing.png",
          "className": "RedRiderHealingBuff",
          "description": "When a unit takes [Physical] or [Fire] damage, heal [5 HP:heal]",
          "name": "Strife Healing"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "RedRider",
      "group": "rare",
      "icon": "icons/runtime/monster_red_rider.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/red_horseman.png",
      "id": "monster_red_rider",
      "kind": "monster",
      "level": 3,
      "maxLevel": 1,
      "name": "Red Rider",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Dark": 100,
        "Fire": 50,
        "Holy": 100,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 20,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 50,
            "requires_los": false
          },
          "className": "MonsterTeleport",
          "description": "Teleport to a random tile",
          "name": "Teleport",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 13,
            "duration": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "RedRiderBerserkingSpell",
          "description": "Berserk enemy units in line of sight for [3:duration] turns",
          "name": "Strife",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 7,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Attacks 4 times",
          "name": "Melee Attack",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 36,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 9,
            "requires_los": true
          },
          "className": "LeapAttack",
          "description": "Charge attack",
          "name": "Charge",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_red_rider.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_red_rider.png",
      "tags": [
        "Holy",
        "Demon"
      ]
    },
    "monster_red_slime": {
      "asset": "char/red_slime.png",
      "attributes": {
        "flying": false,
        "max_hp": 10,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "red_slime",
      "buffs": [
        {
          "asset": "tiles/buffs/slime_growth.png",
          "className": "SlimeBuff",
          "description": [
            "Each turn, {chance}% chance to heal for 10% of original max HP\nExcess raises max HP\nAt double original max HP, split into 2 {spawn}",
            {
              "chance": 50,
              "spawn": "slimes"
            }
          ],
          "name": "Slime Growth"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "RedSlime",
      "group": "normal",
      "icon": "icons/runtime/monster_red_slime.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/red_slime.png",
      "id": "monster_red_slime",
      "kind": "monster",
      "level": 4,
      "maxLevel": null,
      "name": "Red Slime",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Fire": 100,
        "Ice": -100,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 3,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Fire Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_red_slime.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_red_slime.png",
      "tags": [
        "Slime",
        "Fire"
      ]
    },
    "monster_rock_worm": {
      "asset": "char/rock_worm.png",
      "attributes": {
        "flying": false,
        "max_hp": 25,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "rock_worm",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "RockWorm",
      "group": "normal",
      "icon": "icons/runtime/monster_rock_worm.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/rock_worm.png",
      "id": "monster_rock_worm",
      "kind": "monster",
      "level": 3,
      "maxLevel": null,
      "name": "Rock Worm",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Fire": 50,
        "Ice": -50,
        "Lightning": 50,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 7,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_rock_worm.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_rock_worm.png",
      "tags": [
        "Living"
      ]
    },
    "monster_rot_fiend": {
      "asset": "char/fiend_rot.png",
      "attributes": {
        "flying": false,
        "max_hp": 166,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "rot_fiend",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "RotFiend",
      "group": "normal",
      "icon": "icons/runtime/monster_rot_fiend.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/fiend_rot.png",
      "id": "monster_rot_fiend",
      "kind": "monster",
      "level": 8,
      "maxLevel": null,
      "name": "Rot Fiend",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 7,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 3,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon 3 Rot Imps",
          "name": "Summon Rot Imps",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 2,
            "damage": 5,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 6,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Beam attack",
          "name": "Dark Beam",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 4,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 2,
            "range": 6,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Apply necrosis for 10 turns",
          "name": "Rot Blast",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_rot_fiend.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_rot_fiend.png",
      "tags": [
        "Dark",
        "Demon"
      ]
    },
    "monster_rotting_mass": {
      "asset": "char/zombie_mass.png",
      "attributes": {
        "flying": false,
        "max_hp": 121,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "rotting_mass",
      "buffs": [
        {
          "asset": "tiles/buffs/summon_on_death.png",
          "className": "SpawnOnDeath",
          "description": "",
          "name": "Summon On Death"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "ZombieMass",
      "group": "normal",
      "icon": "icons/runtime/monster_rotting_mass.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/zombie_mass.png",
      "id": "monster_rotting_mass",
      "kind": "monster",
      "level": 8,
      "maxLevel": null,
      "name": "Rotting Mass",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 15,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Apply necrosis for 15 turns",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_rotting_mass.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_rotting_mass.png",
      "tags": [
        "Undead"
      ]
    },
    "monster_rotting_phoenix": {
      "asset": "char/rotting_phoenix.png",
      "attributes": {
        "flying": true,
        "max_hp": 250,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "rotting_phoenix",
      "buffs": [
        {
          "asset": "tiles/buffs/phoenix_rotfire.png",
          "className": "RottingPhoenixBuff",
          "description": "",
          "name": "Phoenix Rotfire"
        },
        {
          "asset": "status/reincarnation.png",
          "className": "ReincarnationBuff",
          "description": "",
          "name": "Reincarnation"
        },
        {
          "asset": "tiles/buffs/rotfire_aura.png",
          "className": "DamageAuraBuff",
          "description": "",
          "name": "Rotfire Aura"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "RottingPhoenix",
      "group": "rare",
      "icon": "icons/runtime/monster_rotting_phoenix.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/rotting_phoenix.png",
      "id": "monster_rotting_phoenix",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Rotting Phoenix",
      "rare": true,
      "rareExtra": [
        "Undead"
      ],
      "resists": {
        "Fire": 50,
        "Holy": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 9,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 5,
            "requires_los": false
          },
          "className": "SimpleRangedAttack",
          "description": "Melts walls\n\n\nApply necrosis for 3 turns",
          "name": "Rotfire",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_rotting_phoenix.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_rotting_phoenix.png",
      "tags": [
        "Dark",
        "Fire",
        "Undead",
        "Holy"
      ]
    },
    "monster_rotting_zombie": {
      "asset": "char/zombie.png",
      "attributes": {
        "flying": false,
        "max_hp": 27,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "rotting_zombie",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Zombie",
      "group": "normal",
      "icon": "icons/runtime/monster_rotting_zombie.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/zombie.png",
      "id": "monster_rotting_zombie",
      "kind": "monster",
      "level": 3,
      "maxLevel": null,
      "name": "Rotting Zombie",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 5,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Apply necrosis for 3 turns",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_rotting_zombie.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_rotting_zombie.png",
      "tags": [
        "Undead"
      ]
    },
    "monster_satyr": {
      "asset": "char/satyr.png",
      "attributes": {
        "flying": false,
        "max_hp": 19,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "satyr",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Satyr",
      "group": "normal",
      "icon": "icons/runtime/monster_satyr.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/satyr.png",
      "id": "monster_satyr",
      "kind": "monster",
      "level": 3,
      "maxLevel": null,
      "name": "Satyr",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 2,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 2,
            "requires_los": true
          },
          "className": "HealAlly",
          "description": "Heals caster or ally for 5 HP",
          "name": "Refresh",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_satyr.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_satyr.png",
      "tags": [
        "Living",
        "Nature"
      ]
    },
    "monster_scuttler": {
      "asset": "char/hot_crab.png",
      "attributes": {
        "flying": false,
        "max_hp": 23,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "scuttler",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "Scuttler",
      "group": "normal",
      "icon": "icons/runtime/monster_scuttler.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/hot_crab.png",
      "id": "monster_scuttler",
      "kind": "monster",
      "level": 2,
      "maxLevel": null,
      "name": "Scuttler",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Ice": -50,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 5,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "ScuttlerPinch",
          "description": "Immobilizes for 1 turn",
          "name": "Pinch",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_scuttler.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_scuttler.png",
      "tags": [
        "Living"
      ]
    },
    "monster_sentient_shield": {
      "asset": "char/sentient_shield.png",
      "attributes": {
        "flying": false,
        "max_hp": 18,
        "radius": 0,
        "shields": 2,
        "stationary": false
      },
      "baseId": "sentient_shield",
      "buffs": [
        {
          "asset": "tiles/buffs/shield_regeneration.png",
          "className": "ShieldRegenBuff",
          "description": "",
          "name": "Shield Regeneration"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "SentientShield",
      "group": "normal",
      "icon": "icons/runtime/monster_sentient_shield.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/sentient_shield.png",
      "id": "monster_sentient_shield",
      "kind": "monster",
      "level": 4,
      "maxLevel": null,
      "name": "Sentient Shield",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 5,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "On hit, push the target 1 tile",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_sentient_shield.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_sentient_shield.png",
      "tags": [
        "Construct",
        "Metallic",
        "Arcane"
      ]
    },
    "monster_shrapnel_beast": {
      "asset": "char/shrapnel_beast.png",
      "attributes": {
        "flying": false,
        "max_hp": 8000,
        "radius": 1,
        "shields": 0,
        "stationary": false
      },
      "baseId": "shrapnel_beast",
      "buffs": [
        {
          "asset": "tiles/buffs/thorns.png",
          "className": "Thorns",
          "description": [
            "Deal {damage} {dtype} damage to melee attackers",
            {
              "damage": 8,
              "dtype": [
                "[{tag_label}:{tag_key}]",
                {
                  "tag_key": "physical",
                  "tag_label": "Physical"
                }
              ]
            }
          ],
          "name": "Thorns"
        },
        {
          "asset": "tiles/buffs/spikebeast_spikes.png",
          "className": "SpikeBeastBuff",
          "description": "",
          "name": "Spikebeast Spikes"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "ShrapnelBeast",
      "group": "rare",
      "icon": "icons/runtime/monster_shrapnel_beast.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/shrapnel_beast.png",
      "id": "monster_shrapnel_beast",
      "kind": "monster",
      "level": 3,
      "maxLevel": 1,
      "name": "Shrapnel Beast",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 6,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 9,
            "requires_los": true
          },
          "className": "ShrapnelSpears",
          "description": "Each portion of the beast fires a spear of molten metal at an enemy in sight",
          "name": "Shrapnel Spears",
          "tags": [
            "Metallic",
            "Fire"
          ]
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 40,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Bite",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 4,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_shrapnel_beast.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 4,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_shrapnel_beast.png",
      "tags": [
        "Living",
        "Metallic"
      ]
    },
    "monster_shru_the_toad_sorcerer": {
      "asset": "char/horned_toad_mage_nightmare.png",
      "attributes": {
        "flying": false,
        "max_hp": 109,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "shru_the_toad_sorcerer",
      "buffs": [
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "NightmareToadDefense",
          "description": "When damaged, [stun] the source for 2 turns",
          "name": "Unnamed buff"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "ToadNightmareSorcerer",
      "group": "rare",
      "icon": "icons/runtime/monster_shru_the_toad_sorcerer.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/horned_toad_mage_nightmare.png",
      "id": "monster_shru_the_toad_sorcerer",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Shru the Toad Sorcerer",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Arcane": 75,
        "Dark": 75,
        "Ice": -50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 4,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 10,
            "requires_los": false
          },
          "className": "MonsterTeleport",
          "description": "Teleport to a random tile",
          "name": "Teleport",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 16,
            "duration": 8,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 7,
            "range": 0,
            "requires_los": true
          },
          "className": "WizardNightmare",
          "description": "Each turn, deal 2  damage to all enemies within 7 tiles\nLasts 8 turns",
          "name": "Nightmare Aura",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 8,
            "damage": 5,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 6,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleBurst",
          "description": "Deal damage in a burst around the caster\nApplies 7 turns of [poison]",
          "name": "Poison Burst",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 4,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 16,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Arcane Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_shru_the_toad_sorcerer.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_shru_the_toad_sorcerer.png",
      "tags": [
        "Living",
        "Nature",
        "Arcane",
        "Dark"
      ]
    },
    "monster_siren": {
      "asset": "char/siren.png",
      "attributes": {
        "flying": false,
        "max_hp": 96,
        "radius": 0,
        "shields": 0,
        "stationary": true
      },
      "baseId": "siren",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Siren",
      "group": "rare",
      "icon": "icons/runtime/monster_siren.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/siren.png",
      "id": "monster_siren",
      "kind": "monster",
      "level": 2,
      "maxLevel": 5,
      "name": "Siren",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Dark": 0,
        "Holy": -50,
        "Lightning": -50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 2,
            "duration": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 6,
            "range": 0,
            "requires_los": true
          },
          "className": "SirenSong",
          "description": "Pull [Living] enemies up to 3 tiles toward the caster, inflict [berserk] for 3 turns",
          "name": "Siren Song",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 4,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Dominates [Living] non-player enemies and removes [berserk]",
          "name": "Love Bite",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_siren.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_siren.png",
      "tags": [
        "Living",
        "Nature",
        "Demon"
      ]
    },
    "monster_skull_hornet": {
      "asset": "char/skull_hornet.png",
      "attributes": {
        "flying": true,
        "max_hp": 9,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "skull_hornet",
      "buffs": [
        {
          "asset": "status/quickmove.png",
          "className": "QuickmoveBuff",
          "description": "",
          "name": "Quickstep"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "SkullHornet",
      "group": "normal",
      "icon": "icons/runtime/monster_skull_hornet.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/skull_hornet.png",
      "id": "monster_skull_hornet",
      "kind": "monster",
      "level": 4,
      "maxLevel": null,
      "name": "Skull Hornet",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Apply necrosis for 3 turns\n\n\nAttacks 3 times",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_skull_hornet.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_skull_hornet.png",
      "tags": [
        "Nature",
        "Undead"
      ]
    },
    "monster_skull_hornet_hive": {
      "asset": "char/3x3_skull_hornet_hive.png",
      "attributes": {
        "flying": false,
        "max_hp": 400,
        "radius": 1,
        "shields": 0,
        "stationary": true
      },
      "baseId": "skull_hornet_hive",
      "buffs": [
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "GeneratorBuff",
          "description": "",
          "name": "Unnamed buff"
        },
        {
          "asset": "tiles/buffs/reinforcements.png",
          "className": "SummonReinforcements",
          "description": "",
          "name": "Reinforcements"
        },
        {
          "asset": "tiles/buffs/respawn_as_skull_hornet_queen.png",
          "className": "RespawnAs",
          "description": "",
          "name": "Respawn As Skull Hornet Queen"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "SkullHornetHive",
      "group": "rare",
      "icon": "icons/runtime/monster_skull_hornet_hive.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/3x3_skull_hornet_hive.png",
      "id": "monster_skull_hornet_hive",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Skull Hornet Hive",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Fire": -50,
        "Ice": -50
      },
      "spells": [],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_skull_hornet_hive.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 2,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_skull_hornet_hive.png",
      "tags": []
    },
    "monster_skull_sentry": {
      "asset": "char/3x3_crystal_skull.png",
      "attributes": {
        "flying": false,
        "max_hp": 800,
        "radius": 1,
        "shields": 0,
        "stationary": true
      },
      "baseId": "skull_sentry",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "SkullSentry",
      "group": "rare",
      "icon": "icons/runtime/monster_skull_sentry.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/3X3_crystal_skull.png",
      "id": "monster_skull_sentry",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Skull Sentry",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 29,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 9,
            "requires_los": true
          },
          "className": "WideBeam",
          "description": "Deals damage in a wide beam",
          "name": "Sentry Beam",
          "tags": [
            "Dark"
          ]
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 4,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_skull_sentry.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 4,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_skull_sentry.png",
      "tags": [
        "Dark",
        "Undead",
        "Construct"
      ]
    },
    "monster_slazephan_the_philosopher": {
      "asset": "char/serpent_philosopher.png",
      "attributes": {
        "flying": false,
        "max_hp": 94,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "slazephan_the_philosopher",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "SerpentPhilosopher",
      "group": "rare",
      "icon": "icons/runtime/monster_slazephan_the_philosopher.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/serpent_philosopher.png",
      "id": "monster_slazephan_the_philosopher",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Slazephan the Philosopher",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Fire": 50,
        "Poison": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 20,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 8,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon 8 Snakes",
          "name": "Summon Snakes",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 5,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 9,
            "requires_los": true
          },
          "className": "SnakePhilosophy",
          "description": "Sacrifice a Snake to summon a random Drake",
          "name": "Enlighten Serpent",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 8,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 10,
            "requires_los": true
          },
          "className": "HealAlly",
          "description": "Heals caster or ally for 50 HP",
          "name": "Heal",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 5,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 6,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Poison Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_slazephan_the_philosopher.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_slazephan_the_philosopher.png",
      "tags": [
        "Living",
        "Nature"
      ]
    },
    "monster_slime_drake": {
      "asset": "char/slime_drake.png",
      "attributes": {
        "flying": true,
        "max_hp": 140,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "slime_drake",
      "buffs": [
        {
          "asset": "tiles/buffs/slime_growth.png",
          "className": "SlimeBuff",
          "description": [
            "Each turn, {chance}% chance to heal for 10% of original max HP\nExcess raises max HP\nAt double original max HP, split into 2 {spawn}",
            {
              "chance": 50,
              "spawn": "slime drakes"
            }
          ],
          "name": "Slime Growth"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "SlimeDrake",
      "group": "rare",
      "icon": "icons/runtime/monster_slime_drake.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/slime_drake.png",
      "id": "monster_slime_drake",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Slime Drake",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Physical": 50,
        "Poison": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "damage": 9,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 5,
            "requires_los": true
          },
          "className": "PoisonBreath",
          "description": "Cone attack",
          "name": "Poison Breath",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_slime_drake.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_slime_drake.png",
      "tags": [
        "Slime",
        "Dragon"
      ]
    },
    "monster_slimesoul_idol": {
      "asset": "char/idol_of_slime.png",
      "attributes": {
        "flying": false,
        "max_hp": 1500,
        "radius": 1,
        "shields": 20,
        "stationary": true
      },
      "baseId": "slimesoul_idol",
      "buffs": [
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "IdolOfSlimeBuff",
          "description": "When a non-[Slime] ally dies, summon a matching [Slime] where it died",
          "name": "Unnamed buff"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "IdolOfSlime",
      "group": "rare",
      "icon": "icons/runtime/monster_slimesoul_idol.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/idol_of_slime.png",
      "id": "monster_slimesoul_idol",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Slimesoul Idol",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Fire": 50,
        "Lightning": 50,
        "Physical": 50
      },
      "spells": [],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_slimesoul_idol.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 2,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_slimesoul_idol.png",
      "tags": [
        "Construct"
      ]
    },
    "monster_snow_scuttler": {
      "asset": "char/cold_crab.png",
      "attributes": {
        "flying": false,
        "max_hp": 38,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "snow_scuttler",
      "buffs": [
        {
          "asset": "tiles/buffs/ice_aura.png",
          "className": "DamageAuraBuff",
          "description": "",
          "name": "Ice Aura"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "SnowScuttler",
      "group": "normal",
      "icon": "icons/runtime/monster_snow_scuttler.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/cold_crab.png",
      "id": "monster_snow_scuttler",
      "kind": "monster",
      "level": 4,
      "maxLevel": null,
      "name": "Snow Scuttler",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Fire": -50,
        "Ice": 75,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 5,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "ScuttlerPinch",
          "description": "Immobilizes for 1 turn",
          "name": "Pinch",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_snow_scuttler.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_snow_scuttler.png",
      "tags": [
        "Living",
        "Ice"
      ]
    },
    "monster_spark_imp": {
      "asset": "char/imp_spark.png",
      "attributes": {
        "flying": true,
        "max_hp": 5,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "spark_imp",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "SparkImp",
      "group": "normal",
      "icon": "icons/runtime/monster_spark_imp.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/imp_spark.png",
      "id": "monster_spark_imp",
      "kind": "monster",
      "level": 3,
      "maxLevel": null,
      "name": "Spark Imp",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 75,
        "Lightning": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 3,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Lightning Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_spark_imp.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_spark_imp.png",
      "tags": [
        "Demon",
        "Lightning"
      ]
    },
    "monster_spark_spirit": {
      "asset": "char/spark_spirit.png",
      "attributes": {
        "flying": false,
        "max_hp": 10,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "spark_spirit",
      "buffs": [
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "SpiritBuff",
          "description": "",
          "name": "Unnamed buff"
        },
        {
          "asset": "tiles/buffs/thorns.png",
          "className": "Thorns",
          "description": [
            "Deal {damage} {dtype} damage to melee attackers",
            {
              "damage": 4,
              "dtype": [
                "[{tag_label}:{tag_key}]",
                {
                  "tag_key": "lightning",
                  "tag_label": "Lightning"
                }
              ]
            }
          ],
          "name": "Thorns"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "SparkSpirit",
      "group": "normal",
      "icon": "icons/runtime/monster_spark_spirit.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/spark_spirit.png",
      "id": "monster_spark_spirit",
      "kind": "monster",
      "level": 3,
      "maxLevel": null,
      "name": "Spark Spirit",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Lightning": 100,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 5,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 5,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Lightning Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_spark_spirit.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_spark_spirit.png",
      "tags": [
        "Lightning"
      ]
    },
    "monster_spike_ball": {
      "asset": "char/rolling_spike_ball.png",
      "attributes": {
        "flying": false,
        "max_hp": 60,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "spike_ball",
      "buffs": [
        {
          "asset": "tiles/buffs/thorns.png",
          "className": "Thorns",
          "description": [
            "Deal {damage} {dtype} damage to melee attackers",
            {
              "damage": 6,
              "dtype": [
                "[{tag_label}:{tag_key}]",
                {
                  "tag_key": "physical",
                  "tag_label": "Physical"
                }
              ]
            }
          ],
          "name": "Thorns"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "SpikeBall",
      "group": "normal",
      "icon": "icons/runtime/monster_spike_ball.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/rolling_spike_ball.png",
      "id": "monster_spike_ball",
      "kind": "monster",
      "level": 6,
      "maxLevel": null,
      "name": "Spike Ball",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 10,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Trample attack",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_spike_ball.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_spike_ball.png",
      "tags": [
        "Construct",
        "Metallic"
      ]
    },
    "monster_spike_beast": {
      "asset": "char/spike_beast.png",
      "attributes": {
        "flying": false,
        "max_hp": 65,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "spike_beast",
      "buffs": [
        {
          "asset": "tiles/buffs/spikebeast_spikes.png",
          "className": "SpikeBeastBuff",
          "description": "",
          "name": "Spikebeast Spikes"
        },
        {
          "asset": "tiles/buffs/thorns.png",
          "className": "Thorns",
          "description": [
            "Deal {damage} {dtype} damage to melee attackers",
            {
              "damage": 8,
              "dtype": [
                "[{tag_label}:{tag_key}]",
                {
                  "tag_key": "physical",
                  "tag_label": "Physical"
                }
              ]
            }
          ],
          "name": "Thorns"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "SpikeBeast",
      "group": "normal",
      "icon": "icons/runtime/monster_spike_beast.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/spike_beast.png",
      "id": "monster_spike_beast",
      "kind": "monster",
      "level": 5,
      "maxLevel": null,
      "name": "Spike Beast",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Physical": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 12,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_spike_beast.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_spike_beast.png",
      "tags": [
        "Living",
        "Nature"
      ]
    },
    "monster_stalker": {
      "asset": "char/stalker.png",
      "attributes": {
        "flying": false,
        "max_hp": 190,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "stalker",
      "buffs": [
        {
          "asset": "status/quickmove.png",
          "className": "QuickmoveBuff",
          "description": "",
          "name": "Quickstep"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "Stalker",
      "group": "normal",
      "icon": "icons/runtime/monster_stalker.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/stalker.png",
      "id": "monster_stalker",
      "kind": "monster",
      "level": 6,
      "maxLevel": null,
      "name": "Stalker",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "damage": 28,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Heals for damage dealt",
          "name": "Bite",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 6,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Apply bleed for 12 turns\n\n\nAttacks 2 times",
          "name": "Slash",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_stalker.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_stalker.png",
      "tags": [
        "Living",
        "Blood"
      ]
    },
    "monster_star_swimmer": {
      "asset": "char/star_swimmer.png",
      "attributes": {
        "flying": true,
        "max_hp": 30,
        "radius": 0,
        "shields": 2,
        "stationary": true
      },
      "baseId": "star_swimmer",
      "buffs": [
        {
          "asset": "tiles/buffs/passive_teleportation.png",
          "className": "TeleportyBuff",
          "description": "",
          "name": "Passive Teleportation"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "StarSwimmer",
      "group": "normal",
      "icon": "icons/runtime/monster_star_swimmer.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/star_swimmer.png",
      "id": "monster_star_swimmer",
      "kind": "monster",
      "level": 6,
      "maxLevel": null,
      "name": "Star Swimmer",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 2,
            "range": 6,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Teleports targets up to 4 tiles",
          "name": "Phase Blast",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_star_swimmer.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_star_swimmer.png",
      "tags": [
        "Arcane"
      ]
    },
    "monster_starclaw": {
      "asset": "char/3x3_void_dragon.png",
      "attributes": {
        "flying": true,
        "max_hp": 3676,
        "radius": 1,
        "shields": 0,
        "stationary": false
      },
      "baseId": "starclaw",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Starclaw",
      "group": "rare",
      "icon": "icons/runtime/monster_starclaw.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/3x3_void_dragon.png",
      "id": "monster_starclaw",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Starclaw",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Arcane": 100,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "damage": 34,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 7,
            "requires_los": false
          },
          "className": "VoidBreath",
          "description": "Cone attack\nMelts walls",
          "name": "Void Breath",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 17,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 4,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_starclaw.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 4,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_starclaw.png",
      "tags": [
        "Dragon",
        "Living",
        "Arcane"
      ]
    },
    "monster_starfire_chimera": {
      "asset": "char/starfire_chimera.png",
      "attributes": {
        "flying": false,
        "max_hp": 46,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "starfire_chimera",
      "buffs": [
        {
          "asset": "tiles/buffs/summon_on_death.png",
          "className": "SpawnOnDeath",
          "description": "",
          "name": "Summon On Death"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "StarfireChimera",
      "group": "normal",
      "icon": "icons/runtime/monster_starfire_chimera.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/starfire_chimera.png",
      "id": "monster_starfire_chimera",
      "kind": "monster",
      "level": 6,
      "maxLevel": null,
      "name": "Starfire Chimera",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 75,
        "Fire": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 2,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 2,
            "range": 5,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Fire",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 2,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 5,
            "requires_los": false
          },
          "className": "SimpleRangedAttack",
          "description": "Beam attack\n\n\nMelts walls",
          "name": "Void",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_starfire_chimera.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_starfire_chimera.png",
      "tags": [
        "Arcane",
        "Fire",
        "Living"
      ]
    },
    "monster_steel_spider_queen": {
      "asset": "char/steel_spider_mother.png",
      "attributes": {
        "flying": false,
        "max_hp": 96,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "steel_spider_queen",
      "buffs": [
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "SpiderBuff",
          "description": "",
          "name": "Unnamed buff"
        },
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "GeneratorBuff",
          "description": "",
          "name": "Unnamed buff"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "SteelSpiderQueen",
      "group": "normal",
      "icon": "icons/runtime/monster_steel_spider_queen.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/steel_spider_mother.png",
      "id": "monster_steel_spider_queen",
      "kind": "monster",
      "level": 7,
      "maxLevel": null,
      "name": "Steel Spider Queen",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 48,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Apply poison for 10 turns",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_steel_spider_queen.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_steel_spider_queen.png",
      "tags": [
        "Spider",
        "Construct",
        "Metallic"
      ]
    },
    "monster_stone_shark": {
      "asset": "char/great_stonefish.png",
      "attributes": {
        "flying": false,
        "max_hp": 225,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "stone_shark",
      "buffs": [
        {
          "asset": "status/quickmove.png",
          "className": "QuickmoveBuff",
          "description": "",
          "name": "Quickstep"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "StoneShark",
      "group": "normal",
      "icon": "icons/runtime/monster_stone_shark.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/great_stonefish.png",
      "id": "monster_stone_shark",
      "kind": "monster",
      "level": 8,
      "maxLevel": null,
      "name": "Stone Shark",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 75,
        "Fire": 75,
        "Ice": -75,
        "Lightning": 75,
        "Physical": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "damage": 16,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": true,
            "range": 4,
            "requires_los": true
          },
          "className": "LeapAttack",
          "description": "Leap attack",
          "name": "Pounce",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 16,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Attacks 3 times",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_stone_shark.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_stone_shark.png",
      "tags": [
        "Living",
        "Arcane"
      ]
    },
    "monster_stonefish": {
      "asset": "char/stonefish.png",
      "attributes": {
        "flying": false,
        "max_hp": 75,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "stonefish",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "StoneFish",
      "group": "normal",
      "icon": "icons/runtime/monster_stonefish.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/stonefish.png",
      "id": "monster_stonefish",
      "kind": "monster",
      "level": 5,
      "maxLevel": null,
      "name": "Stonefish",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Fire": 50,
        "Ice": -50,
        "Lightning": 50,
        "Physical": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 4,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 3,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Physical Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_stonefish.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_stonefish.png",
      "tags": [
        "Living",
        "Arcane"
      ]
    },
    "monster_storm_drake": {
      "asset": "char/storm_drake.png",
      "attributes": {
        "flying": true,
        "max_hp": 48,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "storm_drake",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "StormDrake",
      "group": "normal",
      "icon": "icons/runtime/monster_storm_drake.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/storm_drake.png",
      "id": "monster_storm_drake",
      "kind": "monster",
      "level": 6,
      "maxLevel": null,
      "name": "Storm Drake",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Lightning": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "damage": 10,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 5,
            "requires_los": true
          },
          "className": "StormBreath",
          "description": "Cone attack\nCreates Storm Clouds",
          "name": "Storm Breath",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_storm_drake.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_storm_drake.png",
      "tags": [
        "Dragon",
        "Living",
        "Lightning"
      ]
    },
    "monster_storm_knight": {
      "asset": "char/storm_knight.png",
      "attributes": {
        "flying": false,
        "max_hp": 200,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "storm_knight",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "StormKnight",
      "group": "normal",
      "icon": "icons/runtime/monster_storm_knight.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/storm_knight.png",
      "id": "monster_storm_knight",
      "kind": "monster",
      "level": 7,
      "maxLevel": null,
      "name": "Storm Knight",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Ice": 100,
        "Lightning": 75,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 7,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 7,
            "requires_los": true
          },
          "className": "LeapAttack",
          "description": "Leap attack",
          "name": "Flash of Lightning",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 5,
            "damage": 16,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 2,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleBurst",
          "description": "Deal damage in a burst around the caster",
          "name": "Frost",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 6,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Creates Thunderstorms and Blizzards",
          "name": "Storm Strike",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_storm_knight.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_storm_knight.png",
      "tags": [
        "Ice",
        "Lightning",
        "Living"
      ]
    },
    "monster_storm_troll": {
      "asset": "char/storm_troll.png",
      "attributes": {
        "flying": false,
        "max_hp": 30,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "storm_troll",
      "buffs": [
        {
          "asset": "tiles/buffs/troll_regeneration.png",
          "className": "TrollRegenBuff",
          "description": "",
          "name": "Troll Regeneration"
        },
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "CloudGeneratorBuff",
          "description": "",
          "name": "Unnamed buff"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "StormTroll",
      "group": "normal",
      "icon": "icons/runtime/monster_storm_troll.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/storm_troll.png",
      "id": "monster_storm_troll",
      "kind": "monster",
      "level": 5,
      "maxLevel": null,
      "name": "Storm Troll",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Lightning": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 10,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_storm_troll.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_storm_troll.png",
      "tags": [
        "Living",
        "Lightning"
      ]
    },
    "monster_stormcrest": {
      "asset": "char/3x3_storm_dragon.png",
      "attributes": {
        "flying": true,
        "max_hp": 1976,
        "radius": 1,
        "shields": 0,
        "stationary": false
      },
      "baseId": "stormcrest",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Stormcrest",
      "group": "rare",
      "icon": "icons/runtime/monster_stormcrest.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/3x3_storm_dragon.png",
      "id": "monster_stormcrest",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Stormcrest",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Lightning": 100,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "damage": 20,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 9,
            "requires_los": true
          },
          "className": "StormBreath",
          "description": "Cone attack\nCreates Storm Clouds",
          "name": "Storm Breath",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 27,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 4,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_stormcrest.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 4,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_stormcrest.png",
      "tags": [
        "Dragon",
        "Living",
        "Lightning"
      ]
    },
    "monster_stringed_puppet": {
      "asset": "char/wooden_boy.png",
      "attributes": {
        "flying": false,
        "max_hp": 5,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "stringed_puppet",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "StringedPuppet",
      "group": "normal",
      "icon": "icons/runtime/monster_stringed_puppet.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/wooden_boy.png",
      "id": "monster_stringed_puppet",
      "kind": "monster",
      "level": 1,
      "maxLevel": null,
      "name": "Stringed Puppet",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Fire": -100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 3,
            "requires_los": true
          },
          "className": "PullAttack",
          "description": "Pull the target 1 tile toward the caster",
          "name": "Pull Attack",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_stringed_puppet.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_stringed_puppet.png",
      "tags": [
        "Construct"
      ]
    },
    "monster_sun_mage": {
      "asset": "char/sun_king.png",
      "attributes": {
        "flying": false,
        "max_hp": 365,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "sun_mage",
      "buffs": [
        {
          "asset": "tiles/buffs/solar_crown.png",
          "className": "SolarCrownBuff",
          "description": "",
          "name": "Solar Crown"
        },
        {
          "asset": "tiles/buffs/healing_aura.png",
          "className": "HealAuraBuff",
          "description": "",
          "name": "Healing Aura"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "SunMage",
      "group": "rare",
      "icon": "icons/runtime/monster_sun_mage.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/sun_king.png",
      "id": "monster_sun_mage",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Sun Mage",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Physical": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 8,
            "duration": 30,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 5,
            "requires_los": true
          },
          "className": "SimpleCurse",
          "description": "Apply Solar Crown to an ally for 30 turns",
          "name": "Solar Coronation",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 28,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 6,
            "requires_los": false
          },
          "className": "SimpleRangedAttack",
          "description": "Beam attack\n\n\nMelts walls",
          "name": "Sun Beam",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_sun_mage.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_sun_mage.png",
      "tags": [
        "Holy",
        "Fire"
      ]
    },
    "monster_swamp_queen": {
      "asset": "char/swamp_queen.png",
      "attributes": {
        "flying": false,
        "max_hp": 59,
        "radius": 0,
        "shields": 2,
        "stationary": false
      },
      "baseId": "swamp_queen",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "SwampQueen",
      "group": "rare",
      "icon": "icons/runtime/monster_swamp_queen.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/swamp_queen.png",
      "id": "monster_swamp_queen",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Swamp Queen",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 12,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 5,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summons 5 grey or green mushbooms",
          "name": "Mushbloom",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 9,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 2,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon 2 Fly Traps\n at random locations",
          "name": "Grow Fly Traps",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 16,
            "duration": 7,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 10,
            "range": 0,
            "requires_los": true
          },
          "className": "WizardHealAura",
          "description": "Heal allies within [10:radius] tiles for [1 HP:heal] each turn\nLasts [7 turns:duration]",
          "name": "Heal Aura",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 3,
            "damage": 1,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 14,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Apply poison for 10 turns",
          "name": "Toxic Gaze",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_swamp_queen.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_swamp_queen.png",
      "tags": [
        "Poison",
        "Living",
        "Nature"
      ]
    },
    "monster_taurokelevee": {
      "asset": "char/3x3_blood_beast.png",
      "attributes": {
        "flying": false,
        "max_hp": 697,
        "radius": 1,
        "shields": 0,
        "stationary": false
      },
      "baseId": "taurokelevee",
      "buffs": [
        {
          "asset": "tiles/buffs/corrupted_blood.png",
          "className": "TaurokeleveeBloodBuff",
          "description": "Heal 10 HP each turn\nExcess raises max HP\nWhen damaged, summon a Blood Slime",
          "name": "Corrupted Blood"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Taurokelevee",
      "group": "rare",
      "icon": "icons/runtime/monster_taurokelevee.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/3x3_blood_beast.png",
      "id": "monster_taurokelevee",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Taurokelevee",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 4,
            "damage": 7,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 7,
            "requires_los": true
          },
          "className": "BloodSlimeBreath",
          "description": "Cone attack\nSummon Blood Slimes on empty tiles",
          "name": "Gore Vent",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 2,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 4,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleBurst",
          "description": "Deal damage in a burst around the caster\nEnemies receive [necrosis]\nAllies receive [Regeneration:heal]",
          "name": "Blood Burst",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 4,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_taurokelevee.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 4,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_taurokelevee.png",
      "tags": [
        "Blood",
        "Dark",
        "Slime",
        "Undead"
      ]
    },
    "monster_the_furnace": {
      "asset": "char/3x3_furnace.png",
      "attributes": {
        "flying": false,
        "max_hp": 4096,
        "radius": 1,
        "shields": 0,
        "stationary": false
      },
      "baseId": "the_furnace",
      "buffs": [
        {
          "asset": "tiles/buffs/fire_aura.png",
          "className": "DamageAuraBuff",
          "description": "",
          "name": "Fire Aura"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "TheFurnace",
      "group": "rare",
      "icon": "icons/runtime/monster_the_furnace.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/3x3_furnace.png",
      "id": "monster_the_furnace",
      "kind": "monster",
      "level": 3,
      "maxLevel": 1,
      "name": "The Furnace",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Fire": 100,
        "Ice": -100,
        "Physical": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "damage": 43,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 5,
            "requires_los": true
          },
          "className": "FireBreath",
          "description": "Cone attack",
          "name": "Fire Breath",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 4,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_the_furnace.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 4,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_the_furnace.png",
      "tags": [
        "Fire",
        "Construct",
        "Metallic"
      ]
    },
    "monster_the_great_pumpking": {
      "asset": "char/the_great_pumpkin.png",
      "attributes": {
        "flying": false,
        "max_hp": 1031,
        "radius": 1,
        "shields": 0,
        "stationary": false
      },
      "baseId": "the_great_pumpking",
      "buffs": [
        {
          "asset": "tiles/buffs/pumpking's_harvest.png",
          "className": "PumpkingsHarvestBuff",
          "description": "When a unit dies, heal [5 HP:heal]",
          "name": "Pumpking's Harvest"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "TheGreatPumpking",
      "group": "rare",
      "icon": "icons/runtime/monster_the_great_pumpking.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/the_great_pumpkin.png",
      "id": "monster_the_great_pumpking",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "The Great Pumpking",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Dark": 75,
        "Fire": 75,
        "Holy": -50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 2,
            "damage": 31,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "ShapedSpell",
          "description": "Damages enemies in the smile\nCasts as often as possible",
          "name": "Pumpking's Smile",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "SwarmSummon",
          "description": "Summon a Vine near every enemy.",
          "name": "Vine Swarm Summon",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 4,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_the_great_pumpking.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 4,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_the_great_pumpking.png",
      "tags": [
        "Nature",
        "Dark"
      ]
    },
    "monster_thunderbird": {
      "asset": "char/thunderbird.png",
      "attributes": {
        "flying": true,
        "max_hp": 22,
        "radius": 0,
        "shields": 1,
        "stationary": false
      },
      "baseId": "thunderbird",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "Thunderbird",
      "group": "normal",
      "icon": "icons/runtime/monster_thunderbird.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/thunderbird.png",
      "id": "monster_thunderbird",
      "kind": "monster",
      "level": 5,
      "maxLevel": null,
      "name": "Thunderbird",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Lightning": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "damage": 5,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 5,
            "requires_los": true
          },
          "className": "LeapAttack",
          "description": "Leap attack",
          "name": "Lightning Dive",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 5,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Lightning Talons",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_thunderbird.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_thunderbird.png",
      "tags": [
        "Lightning",
        "Nature",
        "Living"
      ]
    },
    "monster_time_keeper": {
      "asset": "char/time_keeper.png",
      "attributes": {
        "flying": false,
        "max_hp": 300,
        "radius": 0,
        "shields": 3,
        "stationary": false
      },
      "baseId": "time_keeper",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "TimeKeeper",
      "group": "rare",
      "icon": "icons/runtime/monster_time_keeper.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/time_keeper.png",
      "id": "monster_time_keeper",
      "kind": "monster",
      "level": 3,
      "maxLevel": 1,
      "name": "Time Keeper",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Arcane": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "TimeKeeperTimestop",
          "description": "Stun all enemies for 1 turn",
          "name": "Timestop",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 9,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 6,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Arcane Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_time_keeper.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_time_keeper.png",
      "tags": [
        "Arcane",
        "Construct"
      ]
    },
    "monster_titan": {
      "asset": "char/titan.png",
      "attributes": {
        "flying": false,
        "max_hp": 394,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "titan",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "Titan",
      "group": "normal",
      "icon": "icons/runtime/monster_titan.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/titan.png",
      "id": "monster_titan",
      "kind": "monster",
      "level": 9,
      "maxLevel": null,
      "name": "Titan",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 75,
        "Fire": 100,
        "Holy": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 35,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 4,
            "damage": 23,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 2,
            "range": 7,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Fire Ball",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_titan.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_titan.png",
      "tags": [
        "Fire",
        "Living",
        "Holy"
      ]
    },
    "monster_tombstone": {
      "asset": "char/tombstone.png",
      "attributes": {
        "flying": false,
        "max_hp": 50,
        "radius": 0,
        "shields": 2,
        "stationary": true
      },
      "baseId": "tombstone",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Tombstone",
      "group": "rare",
      "icon": "icons/runtime/monster_tombstone.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/tombstone.png",
      "id": "monster_tombstone",
      "kind": "monster",
      "level": 1,
      "maxLevel": 4,
      "name": "Tombstone",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Fire": 50,
        "Lightning": 50,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 4,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 1,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "TombstoneSummon",
          "description": "Summons a Ghost near the Wizard",
          "name": "Haunt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_tombstone.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_tombstone.png",
      "tags": [
        "Construct"
      ]
    },
    "monster_towering_bone_shambler": {
      "asset": "char/towering_bone_shambler.png",
      "attributes": {
        "flying": false,
        "max_hp": 128,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "towering_bone_shambler",
      "buffs": [
        {
          "asset": "tiles/buffs/splitting.png",
          "className": "SplittingBuff",
          "description": "",
          "name": "Splitting"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "ToweringBoneShambler",
      "group": "normal",
      "icon": "icons/runtime/monster_towering_bone_shambler.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/towering_bone_shambler.png",
      "id": "monster_towering_bone_shambler",
      "kind": "monster",
      "level": 8,
      "maxLevel": null,
      "name": "Towering Bone Shambler",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 32,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_towering_bone_shambler.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_towering_bone_shambler.png",
      "tags": [
        "Undead"
      ]
    },
    "monster_towering_toadbeast": {
      "asset": "char/big_toad.png",
      "attributes": {
        "flying": false,
        "max_hp": 85,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "towering_toadbeast",
      "buffs": [
        {
          "asset": "tiles/buffs/troll_regeneration.png",
          "className": "TrollRegenBuff",
          "description": "",
          "name": "Troll Regeneration"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "GiantToad",
      "group": "normal",
      "icon": "icons/runtime/monster_towering_toadbeast.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/big_toad.png",
      "id": "monster_towering_toadbeast",
      "kind": "monster",
      "level": 6,
      "maxLevel": null,
      "name": "Towering Toadbeast",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Ice": -50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 4,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "ToadHop",
          "description": "Leaps to a random tile in line of sight within 4 tiles",
          "name": "Frog Hop",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 15,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Trample attack",
          "name": "Melee Attack",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 4,
            "requires_los": true
          },
          "className": "PullAttack",
          "description": "Pull the target 1 tile toward the caster",
          "name": "Tongue Lash",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_towering_toadbeast.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_towering_toadbeast.png",
      "tags": [
        "Living",
        "Nature"
      ]
    },
    "monster_toxic_mind_devourer": {
      "asset": "char/toxic_mind_devourer.png",
      "attributes": {
        "flying": false,
        "max_hp": 82,
        "radius": 0,
        "shields": 2,
        "stationary": false
      },
      "baseId": "toxic_mind_devourer",
      "buffs": [
        {
          "asset": "tiles/buffs/toxic_aura.png",
          "className": "ToxicAura",
          "description": "",
          "name": "Toxic Aura"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "ToxicMindDevourer",
      "group": "normal",
      "icon": "icons/runtime/monster_toxic_mind_devourer.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/toxic_mind_devourer.png",
      "id": "monster_toxic_mind_devourer",
      "kind": "monster",
      "level": 8,
      "maxLevel": null,
      "name": "Toxic Mind Devourer",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 100,
        "Poison": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 25,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "On hit, drain a charge from a random spell and gain [1 SH:shields]",
          "name": "Brain Bite",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 2,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 6,
            "requires_los": true
          },
          "className": "PullAttack",
          "description": "Pull the target 1 tile toward the caster",
          "name": "Tentacle",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_toxic_mind_devourer.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_toxic_mind_devourer.png",
      "tags": [
        "Arcane",
        "Living"
      ]
    },
    "monster_translocator": {
      "asset": "char/translocation_master.png",
      "attributes": {
        "flying": false,
        "max_hp": 85,
        "radius": 0,
        "shields": 3,
        "stationary": false
      },
      "baseId": "translocator",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Translocator",
      "group": "rare",
      "icon": "icons/runtime/monster_translocator.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/translocation_master.png",
      "id": "monster_translocator",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Translocator",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Arcane": 75,
        "Physical": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 8,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 10,
            "requires_los": false
          },
          "className": "MonsterTeleport",
          "description": "Teleport to a random tile",
          "name": "Teleport",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 6,
            "requires_los": false
          },
          "className": "HagSwap",
          "description": "Swap places with the Wizard\nIgnores walls",
          "name": "Aether Swap",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 16,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 4,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Teleports victims randomly up to 3 tiles away",
          "name": "Phase Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_translocator.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_translocator.png",
      "tags": [
        "Arcane",
        "Translocation"
      ]
    },
    "monster_treant": {
      "asset": "char/treant.png",
      "attributes": {
        "flying": false,
        "max_hp": 37,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "treant",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Treant",
      "group": "normal",
      "icon": "icons/runtime/monster_treant.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/treant.png",
      "id": "monster_treant",
      "kind": "monster",
      "level": 3,
      "maxLevel": null,
      "name": "Treant",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Fire": -100,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "HealAlly",
          "description": "Heals caster for 12 HP",
          "name": "Regrow",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_treant.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_treant.png",
      "tags": [
        "Nature",
        "Living"
      ]
    },
    "monster_troll": {
      "asset": "char/troll.png",
      "attributes": {
        "flying": false,
        "max_hp": 30,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "troll",
      "buffs": [
        {
          "asset": "tiles/buffs/troll_regeneration.png",
          "className": "TrollRegenBuff",
          "description": "",
          "name": "Troll Regeneration"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Troll",
      "group": "normal",
      "icon": "icons/runtime/monster_troll.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/troll.png",
      "id": "monster_troll",
      "kind": "monster",
      "level": 4,
      "maxLevel": null,
      "name": "Troll",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 10,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_troll.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_troll.png",
      "tags": [
        "Living"
      ]
    },
    "monster_troll_geomancer": {
      "asset": "char/troll_wizard.png",
      "attributes": {
        "flying": false,
        "max_hp": 120,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "troll_geomancer",
      "buffs": [
        {
          "asset": "tiles/buffs/troll_regeneration.png",
          "className": "TrollRegenBuff",
          "description": "",
          "name": "Troll Regeneration"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "TrollGeomancer",
      "group": "rare",
      "icon": "icons/runtime/monster_troll_geomancer.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/troll_wizard.png",
      "id": "monster_troll_geomancer",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Troll Geomancer",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Fire": 50,
        "Lightning": 50,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 15,
            "damage": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 4,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Apply petrified for 4 turns",
          "name": "Petrify",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 8,
            "duration": 0,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 2,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon 2 Clay Hounds",
          "name": "Summon Clay Hounds",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 6,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "Invigoration",
          "description": "Wounded allies heal for [10 HP:heal] and gain [1:damage] spell damage",
          "name": "Invigoration",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 10,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_troll_geomancer.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_troll_geomancer.png",
      "tags": [
        "Living",
        "Nature"
      ]
    },
    "monster_trollataur": {
      "asset": "char/trollataur.png",
      "attributes": {
        "flying": false,
        "max_hp": 45,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "trollataur",
      "buffs": [
        {
          "asset": "tiles/buffs/troll_regeneration.png",
          "className": "TrollRegenBuff",
          "description": "",
          "name": "Troll Regeneration"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Trollataur",
      "group": "normal",
      "icon": "icons/runtime/monster_trollataur.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/trollataur.png",
      "id": "monster_trollataur",
      "kind": "monster",
      "level": 5,
      "maxLevel": null,
      "name": "Trollataur",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Trample attack",
          "name": "Trample",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 4,
            "requires_los": true
          },
          "className": "LeapAttack",
          "description": "Leap attack",
          "name": "Leap",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_trollataur.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_trollataur.png",
      "tags": [
        "Living"
      ]
    },
    "monster_troubler": {
      "asset": "char/mask.png",
      "attributes": {
        "flying": true,
        "max_hp": 1,
        "radius": 0,
        "shields": 1,
        "stationary": true
      },
      "baseId": "troubler",
      "buffs": [
        {
          "asset": "tiles/buffs/passive_teleportation.png",
          "className": "TeleportyBuff",
          "description": "",
          "name": "Passive Teleportation"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Troubler",
      "group": "normal",
      "icon": "icons/runtime/monster_troubler.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/mask.png",
      "id": "monster_troubler",
      "kind": "monster",
      "level": 4,
      "maxLevel": null,
      "name": "Troubler",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 2,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 7,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Teleports the target up to 3 tiles",
          "name": "Phase Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_troubler.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_troubler.png",
      "tags": [
        "Arcane"
      ]
    },
    "monster_twilight_knight": {
      "asset": "char/twilight_knight.png",
      "attributes": {
        "flying": false,
        "max_hp": 200,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "twilight_knight",
      "buffs": [
        {
          "asset": "status/reincarnation.png",
          "className": "ReincarnationBuff",
          "description": "",
          "name": "Reincarnation"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "TwilightKnight",
      "group": "normal",
      "icon": "icons/runtime/monster_twilight_knight.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/twilight_knight.png",
      "id": "monster_twilight_knight",
      "kind": "monster",
      "level": 7,
      "maxLevel": null,
      "name": "Twilight Knight",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 100,
        "Holy": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "damage": 14,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 1,
            "range": 6,
            "requires_los": true
          },
          "className": "FalseProphetHolyBlast",
          "description": "Beam attack\nHeals allies",
          "name": "Heavenly Blast",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 11,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Apply necrosis for 10 turns",
          "name": "Wight Blade",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_twilight_knight.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_twilight_knight.png",
      "tags": [
        "Dark",
        "Holy",
        "Living"
      ]
    },
    "monster_twilight_seer": {
      "asset": "char/twilight_seer.png",
      "attributes": {
        "flying": false,
        "max_hp": 99,
        "radius": 0,
        "shields": 1,
        "stationary": false
      },
      "baseId": "twilight_seer",
      "buffs": [
        {
          "asset": "status/reincarnation.png",
          "className": "ReincarnationBuff",
          "description": "",
          "name": "Reincarnation"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "TwilightSeer",
      "group": "rare",
      "icon": "icons/runtime/monster_twilight_seer.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/twilight_seer.png",
      "id": "monster_twilight_seer",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Twilight Seer",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Dark": 75,
        "Holy": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 12,
            "duration": 8,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "TwilightProtection",
          "description": "Caster and allies gain 50% [Dark] and [Holy] resist for [8:duration] turns",
          "name": "Twilight Protection",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 2,
            "damage": 7,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 2,
            "range": 8,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Heals for damage dealt",
          "name": "Life Siphon",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 2,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 1,
            "range": 8,
            "requires_los": true
          },
          "className": "FalseProphetHolyBlast",
          "description": "Beam attack\nHeals allies",
          "name": "Heavenly Blast",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_twilight_seer.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_twilight_seer.png",
      "tags": [
        "Living",
        "Dark",
        "Holy"
      ]
    },
    "monster_two_headed_snake": {
      "asset": "char/two_headed_snake.png",
      "attributes": {
        "flying": false,
        "max_hp": 18,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "two_headed_snake",
      "buffs": [
        {
          "asset": "tiles/buffs/summon_on_death.png",
          "className": "SpawnOnDeath",
          "description": "",
          "name": "Summon On Death"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "TwoHeadedSnake",
      "group": "normal",
      "icon": "icons/runtime/monster_two_headed_snake.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/two_headed_snake.png",
      "id": "monster_two_headed_snake",
      "kind": "monster",
      "level": 3,
      "maxLevel": null,
      "name": "Two Headed Snake",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Ice": -50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Apply poison for 5 turns",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_two_headed_snake.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_two_headed_snake.png",
      "tags": [
        "Living",
        "Nature"
      ]
    },
    "monster_ultimate_mind_devourer": {
      "asset": "char/3x3_mind_devourer.png",
      "attributes": {
        "flying": false,
        "max_hp": 4375,
        "radius": 1,
        "shields": 16,
        "stationary": false
      },
      "baseId": "ultimate_mind_devourer",
      "buffs": [
        {
          "asset": "tiles/buffs/insanity_aura.png",
          "className": "InsanityAura",
          "description": "",
          "name": "Insanity Aura"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "GiantMindDevourer",
      "group": "rare",
      "icon": "icons/runtime/monster_ultimate_mind_devourer.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/3x3_mind_devourer.png",
      "id": "monster_ultimate_mind_devourer",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Ultimate Mind Devourer",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Arcane": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 4,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "num_targets": 4,
            "quick_cast": false,
            "range": 6,
            "requires_los": true
          },
          "className": "MultiTentacle",
          "description": "Pulls in up to 4 enemies",
          "name": "Tentacles",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 4,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_ultimate_mind_devourer.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 4,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_ultimate_mind_devourer.png",
      "tags": [
        "Arcane",
        "Living"
      ]
    },
    "monster_ultimate_troubler": {
      "asset": "char/ultimate_troubler.png",
      "attributes": {
        "flying": true,
        "max_hp": 1,
        "radius": 1,
        "shields": 99,
        "stationary": true
      },
      "baseId": "ultimate_troubler",
      "buffs": [
        {
          "asset": "tiles/buffs/passive_teleportation.png",
          "className": "TeleportyBuff",
          "description": "",
          "name": "Passive Teleportation"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "UltimateTroubler",
      "group": "rare",
      "icon": "icons/runtime/monster_ultimate_troubler.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/ultimate_troubler.png",
      "id": "monster_ultimate_troubler",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Ultimate Troubler",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Arcane": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 9,
            "requires_los": true
          },
          "className": "TroublerBarrage",
          "description": "Shoots 9 missiles which teleport the victims randomly up to 9 tiles away.",
          "name": "Troubler Barrage",
          "tags": [
            "Arcane"
          ]
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 4,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_ultimate_troubler.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 4,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_ultimate_troubler.png",
      "tags": [
        "Arcane"
      ]
    },
    "monster_vampire": {
      "asset": "char/vampire.png",
      "attributes": {
        "flying": true,
        "max_hp": 32,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "vampire",
      "buffs": [
        {
          "asset": "tiles/buffs/respawn_as_vampire_bat.png",
          "className": "RespawnAs",
          "description": "",
          "name": "Respawn As Vampire Bat"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Vampire",
      "group": "normal",
      "icon": "icons/runtime/monster_vampire.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/vampire.png",
      "id": "monster_vampire",
      "kind": "monster",
      "level": 4,
      "maxLevel": null,
      "name": "Vampire",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Fire": -100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 7,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Heals for damage dealt",
          "name": "Drain Life",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_vampire.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_vampire.png",
      "tags": [
        "Undead",
        "Dark",
        "Blood"
      ]
    },
    "monster_vampire_count": {
      "asset": "char/vampire_count.png",
      "attributes": {
        "flying": true,
        "max_hp": 1260,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "vampire_count",
      "buffs": [
        {
          "asset": "tiles/buffs/respawn_as_vampire_bat.png",
          "className": "RespawnAs",
          "description": "",
          "name": "Respawn As Vampire Bat"
        },
        {
          "asset": "tiles/buffs/blood_tax.png",
          "className": "VampireCountBuff",
          "description": "When an enemy takes [Dark] damage, heal [4 HP:heal]",
          "name": "Blood Tax"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "VampireCount",
      "group": "rare",
      "icon": "icons/runtime/monster_vampire_count.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/vampire_count.png",
      "id": "monster_vampire_count",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Vampire Count",
      "rare": true,
      "rareExtra": [
        "Undead"
      ],
      "resists": {
        "Fire": -100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 11,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Heals for damage dealt\n\n\nSlain [Living] units are raised as Vampires",
          "name": "Drain Life",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_vampire_count.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_vampire_count.png",
      "tags": [
        "Undead",
        "Dark",
        "Blood"
      ]
    },
    "monster_void_ancestor": {
      "asset": "char/void_ancestor.png",
      "attributes": {
        "flying": false,
        "max_hp": 320,
        "radius": 0,
        "shields": 12,
        "stationary": false
      },
      "baseId": "void_ancestor",
      "buffs": [
        {
          "asset": "tiles/buffs/regenerating_shields.png",
          "className": "RegenShieldsBuff",
          "description": "",
          "name": "Regenerating Shields"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "VoidAncestor",
      "group": "normal",
      "icon": "icons/runtime/monster_void_ancestor.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/void_ancestor.png",
      "id": "monster_void_ancestor",
      "kind": "monster",
      "level": 9,
      "maxLevel": null,
      "name": "Void Ancestor",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 100,
        "Dark": 100,
        "Physical": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 20,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 3,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 5,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Beam attack\n\n\nCan be channeled for up to 3 turns\n\n\nApply feared for 1 turn",
          "name": "Void Stare",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_void_ancestor.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_void_ancestor.png",
      "tags": [
        "Arcane",
        "Dark"
      ]
    },
    "monster_void_bomber": {
      "asset": "char/void_bomber.png",
      "attributes": {
        "flying": false,
        "max_hp": 1,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "void_bomber",
      "buffs": [
        {
          "asset": "tiles/buffs/suicide_explosion.png",
          "className": "VoidBomberBuff",
          "description": "",
          "name": "Suicide Explosion"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "VoidBomber",
      "group": "normal",
      "icon": "icons/runtime/monster_void_bomber.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/void_bomber.png",
      "id": "monster_void_bomber",
      "kind": "monster",
      "level": 2,
      "maxLevel": null,
      "name": "Void Bomber",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 12,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 2,
            "requires_los": true
          },
          "className": "VoidBomberSuicide",
          "description": "Suicide attack\n2 tile radius\nMelts Walls\nAutocast on death",
          "name": "Suicide Explosion",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_void_bomber.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_void_bomber.png",
      "tags": [
        "Arcane"
      ]
    },
    "monster_void_child": {
      "asset": "char/void_child.png",
      "attributes": {
        "flying": false,
        "max_hp": 8,
        "radius": 0,
        "shields": 1,
        "stationary": false
      },
      "baseId": "void_child",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "VoidChild",
      "group": "normal",
      "icon": "icons/runtime/monster_void_child.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/void_child.png",
      "id": "monster_void_child",
      "kind": "monster",
      "level": 3,
      "maxLevel": null,
      "name": "Void Child",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 50,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 3,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 3,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Beam attack\n\n\nCan be channeled for up to 3 turns\n\n\nApply feared for 1 turn",
          "name": "Void Stare",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_void_child.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_void_child.png",
      "tags": [
        "Arcane",
        "Dark"
      ]
    },
    "monster_void_drake": {
      "asset": "char/void_drake.png",
      "attributes": {
        "flying": true,
        "max_hp": 48,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "void_drake",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "VoidDrake",
      "group": "normal",
      "icon": "icons/runtime/monster_void_drake.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/void_drake.png",
      "id": "monster_void_drake",
      "kind": "monster",
      "level": 6,
      "maxLevel": null,
      "name": "Void Drake",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "damage": 9,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 5,
            "requires_los": false
          },
          "className": "VoidBreath",
          "description": "Cone attack\nMelts walls",
          "name": "Void Breath",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_void_drake.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_void_drake.png",
      "tags": [
        "Dragon",
        "Living",
        "Arcane"
      ]
    },
    "monster_void_elder": {
      "asset": "char/void_elder.png",
      "attributes": {
        "flying": false,
        "max_hp": 80,
        "radius": 0,
        "shields": 3,
        "stationary": false
      },
      "baseId": "void_elder",
      "buffs": [
        {
          "asset": "tiles/buffs/shield_regeneration.png",
          "className": "ShieldRegenBuff",
          "description": "",
          "name": "Shield Regeneration"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "VoidElder",
      "group": "normal",
      "icon": "icons/runtime/monster_void_elder.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/void_elder.png",
      "id": "monster_void_elder",
      "kind": "monster",
      "level": 7,
      "maxLevel": null,
      "name": "Void Elder",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 75,
        "Dark": 75,
        "Physical": 75
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 10,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 3,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 4,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Beam attack\n\n\nCan be channeled for up to 3 turns\n\n\nApply feared for 1 turn",
          "name": "Void Stare",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_void_elder.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_void_elder.png",
      "tags": [
        "Arcane",
        "Dark"
      ]
    },
    "monster_void_knight": {
      "asset": "char/void_knight.png",
      "attributes": {
        "flying": false,
        "max_hp": 200,
        "radius": 0,
        "shields": 3,
        "stationary": false
      },
      "baseId": "void_knight",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "VoidKnight",
      "group": "normal",
      "icon": "icons/runtime/monster_void_knight.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/void_knight.png",
      "id": "monster_void_knight",
      "kind": "monster",
      "level": 7,
      "maxLevel": null,
      "name": "Void Knight",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 100,
        "Dark": 50,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 8,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "Teleports the target up to 3 tiles",
          "name": "Melee Attack",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 16,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 3,
            "requires_los": false
          },
          "className": "LeapAttack",
          "description": "Ignores obstacles",
          "name": "Aether Charge",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_void_knight.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_void_knight.png",
      "tags": [
        "Arcane",
        "Living"
      ]
    },
    "monster_void_phoenix": {
      "asset": "char/cosmic_bird.png",
      "attributes": {
        "flying": true,
        "max_hp": 250,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "void_phoenix",
      "buffs": [
        {
          "asset": "tiles/buffs/phoenix_starfire.png",
          "className": "ArcanePhoenixBuff",
          "description": "",
          "name": "Phoenix Starfire"
        },
        {
          "asset": "status/reincarnation.png",
          "className": "ReincarnationBuff",
          "description": "",
          "name": "Reincarnation"
        },
        {
          "asset": "tiles/buffs/arcane_aura.png",
          "className": "DamageAuraBuff",
          "description": "",
          "name": "Arcane Aura"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "VoidPhoenix",
      "group": "rare",
      "icon": "icons/runtime/monster_void_phoenix.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/cosmic_bird.png",
      "id": "monster_void_phoenix",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Void Phoenix",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Arcane": 100,
        "Dark": -50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 9,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 5,
            "requires_los": false
          },
          "className": "SimpleRangedAttack",
          "description": "Melts walls",
          "name": "Arcane Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_void_phoenix.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_void_phoenix.png",
      "tags": [
        "Arcane",
        "Holy"
      ]
    },
    "monster_void_rift": {
      "asset": "char/void_rift.png",
      "attributes": {
        "flying": false,
        "max_hp": 30,
        "radius": 0,
        "shields": 0,
        "stationary": true
      },
      "baseId": "void_rift",
      "buffs": [
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "GeneratorBuff",
          "description": "",
          "name": "Unnamed buff"
        },
        {
          "asset": "tiles/buffs/passive_teleportation.png",
          "className": "TeleportyBuff",
          "description": "",
          "name": "Passive Teleportation"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "VoidRift",
      "group": "normal",
      "icon": "icons/runtime/monster_void_rift.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/void_rift.png",
      "id": "monster_void_rift",
      "kind": "monster",
      "level": 5,
      "maxLevel": null,
      "name": "Void Rift",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 100,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 5,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 7,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Arcane Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_void_rift.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_void_rift.png",
      "tags": [
        "Arcane"
      ]
    },
    "monster_void_rocket_bomber": {
      "asset": "char/void_bomber_cluster.png",
      "attributes": {
        "flying": false,
        "max_hp": 1,
        "radius": 0,
        "shields": 1,
        "stationary": false
      },
      "baseId": "void_rocket_bomber",
      "buffs": [
        {
          "asset": "tiles/buffs/suicide_explosion.png",
          "className": "VoidBomberBuff",
          "description": "",
          "name": "Suicide Explosion"
        },
        {
          "asset": "status/quickmove.png",
          "className": "QuickmoveBuff",
          "description": "",
          "name": "Quickstep"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "VoidRocketBomber",
      "group": "normal",
      "icon": "icons/runtime/monster_void_rocket_bomber.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/void_bomber_cluster.png",
      "id": "monster_void_rocket_bomber",
      "kind": "monster",
      "level": 4,
      "maxLevel": null,
      "name": "Void Rocket Bomber",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 12,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 2,
            "requires_los": true
          },
          "className": "VoidBomberSuicide",
          "description": "Suicide attack\n2 tile radius\nMelts Walls\nAutocast on death",
          "name": "Suicide Explosion",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_void_rocket_bomber.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_void_rocket_bomber.png",
      "tags": [
        "Arcane",
        "Construct"
      ]
    },
    "monster_void_slime": {
      "asset": "char/void_slime.png",
      "attributes": {
        "flying": false,
        "max_hp": 10,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "void_slime",
      "buffs": [
        {
          "asset": "tiles/buffs/slime_growth.png",
          "className": "SlimeBuff",
          "description": [
            "Each turn, {chance}% chance to heal for 10% of original max HP\nExcess raises max HP\nAt double original max HP, split into 2 {spawn}",
            {
              "chance": 50,
              "spawn": "slimes"
            }
          ],
          "name": "Slime Growth"
        },
        {
          "asset": "tiles/buffs/passive_teleportation.png",
          "className": "TeleportyBuff",
          "description": "",
          "name": "Passive Teleportation"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "VoidSlime",
      "group": "normal",
      "icon": "icons/runtime/monster_void_slime.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/void_slime.png",
      "id": "monster_void_slime",
      "kind": "monster",
      "level": 4,
      "maxLevel": null,
      "name": "Void Slime",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 100,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 3,
            "requires_los": false
          },
          "className": "SimpleRangedAttack",
          "description": "Beam attack\n\n\nMelts walls",
          "name": "Arcane Beam",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_void_slime.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_void_slime.png",
      "tags": [
        "Slime",
        "Arcane"
      ]
    },
    "monster_void_toad": {
      "asset": "char/void_toad.png",
      "attributes": {
        "flying": false,
        "max_hp": 45,
        "radius": 0,
        "shields": 2,
        "stationary": false
      },
      "baseId": "void_toad",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "VoidToad",
      "group": "normal",
      "icon": "icons/runtime/monster_void_toad.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/void_toad.png",
      "id": "monster_void_toad",
      "kind": "monster",
      "level": 5,
      "maxLevel": null,
      "name": "Void Toad",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Arcane": 75,
        "Ice": -50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 4,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "ToadHop",
          "description": "Leaps to a random tile in line of sight within 4 tiles",
          "name": "Frog Hop",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 7,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 3,
            "requires_los": false
          },
          "className": "SimpleRangedAttack",
          "description": "Beam attack\nPulls target towards the caster\nMelts walls\n\n\nBeam attack\n\n\nMelts walls",
          "name": "Void Lick",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_void_toad.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_void_toad.png",
      "tags": [
        "Living",
        "Arcane",
        "Nature"
      ]
    },
    "monster_void_watcher": {
      "asset": "char/void_watcher.png",
      "attributes": {
        "flying": false,
        "max_hp": 40,
        "radius": 0,
        "shields": 1,
        "stationary": true
      },
      "baseId": "void_watcher",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "VoidWatcher",
      "group": "rare",
      "icon": "icons/runtime/monster_void_watcher.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/void_watcher.png",
      "id": "monster_void_watcher",
      "kind": "monster",
      "level": 2,
      "maxLevel": 6,
      "name": "Void Watcher",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Arcane": 100,
        "Fire": 50,
        "Lightning": 0
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 3,
            "damage": 10,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 30,
            "requires_los": false
          },
          "className": "SimpleRangedAttack",
          "description": "Beam attack\n\n\nMelts walls",
          "name": "Void Eye",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_void_watcher.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_void_watcher.png",
      "tags": [
        "Construct",
        "Arcane"
      ]
    },
    "monster_volcano_turtle": {
      "asset": "char/volcano_turtle.png",
      "attributes": {
        "flying": false,
        "max_hp": 395,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "volcano_turtle",
      "buffs": [
        {
          "asset": "tiles/buffs/unnamed_buff.png",
          "className": "TurtleBuff",
          "description": "",
          "name": "Unnamed buff"
        },
        {
          "asset": "tiles/buffs/volcano_shell.png",
          "className": "VolcanoTurtleBuff",
          "description": "Each turn, spew 3 meteors within 4 tiles\nEach meteor deals [8 Fire:fire] damage in a 2 tile burst\nDirect hits deal [11 Physical:physical] damage, stun for 1 turn, and make floors",
          "name": "Volcano Shell"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "VolcanoTurtle",
      "group": "normal",
      "icon": "icons/runtime/monster_volcano_turtle.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/volcano_turtle.png",
      "id": "monster_volcano_turtle",
      "kind": "monster",
      "level": 9,
      "maxLevel": null,
      "name": "Volcano Turtle",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Fire": 100,
        "Ice": -50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 30,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_volcano_turtle.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_volcano_turtle.png",
      "tags": [
        "Nature",
        "Fire",
        "Demon"
      ]
    },
    "monster_wailing_banshee": {
      "asset": "char/banshee.png",
      "attributes": {
        "flying": false,
        "max_hp": 81,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "wailing_banshee",
      "buffs": [
        {
          "asset": "tiles/buffs/dark_aura.png",
          "className": "BansheeFearAura",
          "description": "Each turn, enemies within 5 tiles are [feared] for 1 turn",
          "name": "Dark Aura"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "Banshee",
      "group": "normal",
      "icon": "icons/runtime/monster_wailing_banshee.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/banshee.png",
      "id": "monster_wailing_banshee",
      "kind": "monster",
      "level": 7,
      "maxLevel": null,
      "name": "Wailing Banshee",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 9,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_wailing_banshee.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_wailing_banshee.png",
      "tags": [
        "Undead",
        "Dark"
      ]
    },
    "monster_watcher": {
      "asset": "char/watcher.png",
      "attributes": {
        "flying": false,
        "max_hp": 40,
        "radius": 0,
        "shields": 0,
        "stationary": true
      },
      "baseId": "watcher",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Watcher",
      "group": "rare",
      "icon": "icons/runtime/monster_watcher.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/watcher.png",
      "id": "monster_watcher",
      "kind": "monster",
      "level": 1,
      "maxLevel": 6,
      "name": "Watcher",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Fire": 50,
        "Lightning": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 10,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 30,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Beam attack",
          "name": "Lightning Eye",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_watcher.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_watcher.png",
      "tags": [
        "Construct",
        "Lightning"
      ]
    },
    "monster_werewolf": {
      "asset": "char/werewolf_transformed.png",
      "attributes": {
        "flying": false,
        "max_hp": 28,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "werewolf",
      "buffs": [
        {
          "asset": "tiles/buffs/respawn_as_wild_man.png",
          "className": "RespawnAs",
          "description": "",
          "name": "Respawn As Wild Man"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Werewolf",
      "group": "normal",
      "icon": "icons/runtime/monster_werewolf.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/werewolf_transformed.png",
      "id": "monster_werewolf",
      "kind": "monster",
      "level": 4,
      "maxLevel": null,
      "name": "Werewolf",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 75,
        "Holy": -50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 6,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "damage": 6,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 3,
            "requires_los": true
          },
          "className": "LeapAttack",
          "description": "Leap attack",
          "name": "Pounce",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_werewolf.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_werewolf.png",
      "tags": [
        "Living",
        "Nature",
        "Dark"
      ]
    },
    "monster_whirlwind_reaper": {
      "asset": "char/second_death.png",
      "attributes": {
        "flying": true,
        "max_hp": 44,
        "radius": 0,
        "shields": 4,
        "stationary": false
      },
      "baseId": "whirlwind_reaper",
      "buffs": [
        {
          "asset": "status/quickmove.png",
          "className": "QuickmoveBuff",
          "description": "",
          "name": "Quickstep"
        },
        {
          "asset": "status/reincarnation.png",
          "className": "ReincarnationBuff",
          "description": "",
          "name": "Reincarnation"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "WhirlwindReaper",
      "group": "normal",
      "icon": "icons/runtime/monster_whirlwind_reaper.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/second_death.png",
      "id": "monster_whirlwind_reaper",
      "kind": "monster",
      "level": 9,
      "maxLevel": null,
      "name": "Whirlwind Reaper",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 100,
        "Physical": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 200,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "WhirlWind",
          "description": "Hits all adjacent enemies\nGains 1 Reincarnation on kill",
          "name": "Reaping Scythe",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_whirlwind_reaper.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_whirlwind_reaper.png",
      "tags": [
        "Undead",
        "Dark"
      ]
    },
    "monster_white_rider": {
      "asset": "char/white_horseman.png",
      "attributes": {
        "flying": false,
        "max_hp": 374,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "white_rider",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "WhiteRider",
      "group": "rare",
      "icon": "icons/runtime/monster_white_rider.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/white_horseman.png",
      "id": "monster_white_rider",
      "kind": "monster",
      "level": 3,
      "maxLevel": 1,
      "name": "White Rider",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Dark": 100,
        "Fire": 50,
        "Holy": 100,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 20,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 50,
            "requires_los": false
          },
          "className": "MonsterTeleport",
          "description": "Teleport to a random tile",
          "name": "Teleport",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 3,
            "damage": 7,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 9,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Apply stunned for 1 turn",
          "name": "Arrow of Halting",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 3,
            "damage": 7,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 9,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Apply poison for 10 turns",
          "name": "Arrow of Poison",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "damage": 7,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 3,
            "range": 9,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Arrow of Flame",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_white_rider.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_white_rider.png",
      "tags": [
        "Holy",
        "Demon"
      ]
    },
    "monster_winterbringer": {
      "asset": "char/3x3_dragon.png",
      "attributes": {
        "flying": true,
        "max_hp": 2676,
        "radius": 1,
        "shields": 0,
        "stationary": false
      },
      "baseId": "winterbringer",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Winterbringer",
      "group": "rare",
      "icon": "icons/runtime/monster_winterbringer.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/3x3_dragon.png",
      "id": "monster_winterbringer",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Winterbringer",
      "rare": true,
      "rareExtra": [
        null
      ],
      "resists": {
        "Fire": -50,
        "Ice": 100,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 4,
            "damage": 14,
            "duration": 2,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 11,
            "requires_los": true
          },
          "className": "IceBreath",
          "description": "Cone attack\nInflicts [frozen] for [2:duration] turns",
          "name": "Ice Breath",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 17,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 4,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_winterbringer.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 4,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_winterbringer.png",
      "tags": [
        "Dragon",
        "Living",
        "Ice"
      ]
    },
    "monster_witch": {
      "asset": "char/witch.png",
      "attributes": {
        "flying": true,
        "max_hp": 13,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "witch",
      "buffs": [],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Witch",
      "group": "normal",
      "icon": "icons/runtime/monster_witch.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/witch.png",
      "id": "monster_witch",
      "kind": "monster",
      "level": 3,
      "maxLevel": null,
      "name": "Witch",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Dark": 50,
        "Fire": -50,
        "Holy": -50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 5,
            "duration": 10,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "num_summons": 1,
            "quick_cast": false,
            "radius": 3,
            "range": 0,
            "requires_los": true
          },
          "className": "SimpleSummon",
          "description": "Summon a temporary Ghost",
          "name": "Summon Ghost",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 0,
            "damage": 3,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 5,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "",
          "name": "Dark Bolt",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_witch.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_witch.png",
      "tags": [
        "Living",
        "Dark"
      ]
    },
    "monster_worm_shambler": {
      "asset": "char/wormball_shambler.png",
      "attributes": {
        "flying": false,
        "max_hp": 50,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "worm_shambler",
      "buffs": [
        {
          "asset": "tiles/buffs/splitting.png",
          "className": "SplittingBuff",
          "description": "",
          "name": "Splitting"
        },
        {
          "asset": "status/heal.png",
          "className": "RegenBuff",
          "description": "",
          "name": "Regeneration"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": false,
      "extractionSource": "runtime",
      "factoryName": "WormShambler",
      "group": "normal",
      "icon": "icons/runtime/monster_worm_shambler.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/wormball_shambler.png",
      "id": "monster_worm_shambler",
      "kind": "monster",
      "level": 6,
      "maxLevel": null,
      "name": "Worm Shambler",
      "rare": false,
      "rareExtra": [],
      "resists": {},
      "spells": [
        {
          "attributes": {
            "can_target_empty": false,
            "cool_down": 3,
            "damage": 7,
            "hp_cost": 0,
            "level": 0,
            "max_channel": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 0,
            "range": 6,
            "requires_los": true
          },
          "className": "SimpleRangedAttack",
          "description": "Summons a Tiny Worm Ball next to the target",
          "name": "Worm Bolt",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 25,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_worm_shambler.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_worm_shambler.png",
      "tags": [
        "Living"
      ]
    },
    "monster_yeti": {
      "asset": "char/yeti.png",
      "attributes": {
        "flying": false,
        "max_hp": 155,
        "radius": 0,
        "shields": 0,
        "stationary": false
      },
      "baseId": "yeti",
      "buffs": [
        {
          "asset": "tiles/buffs/ice_aura.png",
          "className": "DamageAuraBuff",
          "description": "",
          "name": "Ice Aura"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "Yeti",
      "group": "normal",
      "icon": "icons/runtime/monster_yeti.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/yeti.png",
      "id": "monster_yeti",
      "kind": "monster",
      "level": 7,
      "maxLevel": null,
      "name": "Yeti",
      "rare": false,
      "rareExtra": [],
      "resists": {
        "Fire": -50,
        "Ice": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 34,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_yeti.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_yeti.png",
      "tags": [
        "Ice",
        "Living"
      ]
    },
    "monster_yeti_shaman": {
      "asset": "char/yeti_shaman.png",
      "attributes": {
        "flying": false,
        "max_hp": 180,
        "radius": 0,
        "shields": 3,
        "stationary": false
      },
      "baseId": "yeti_shaman",
      "buffs": [
        {
          "asset": "tiles/buffs/ice_aura.png",
          "className": "DamageAuraBuff",
          "description": "",
          "name": "Ice Aura"
        },
        {
          "asset": "tiles/buffs/shaman's_sorrow.png",
          "className": "ShamansSorrow",
          "description": "",
          "name": "Shaman's Sorrow"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "YetiShaman",
      "group": "rare",
      "icon": "icons/runtime/monster_yeti_shaman.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/yeti_shaman.png",
      "id": "monster_yeti_shaman",
      "kind": "monster",
      "level": 1,
      "maxLevel": 1,
      "name": "Yeti Shaman",
      "rare": true,
      "rareExtra": [
        "Living"
      ],
      "resists": {
        "Fire": -50,
        "Ice": 100
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 10,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "radius": 4,
            "range": 8,
            "requires_los": true
          },
          "className": "WizardBlizzard",
          "description": "Create Blizzards around the target",
          "name": "Blizzard",
          "tags": []
        },
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 0,
            "damage": 34,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": true,
            "quick_cast": false,
            "range": 1.5,
            "requires_los": true
          },
          "className": "SimpleMeleeAttack",
          "description": "",
          "name": "Melee Attack",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 2,
        "frameSize": 60,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_yeti_shaman.png",
        "tileHeight": 1,
        "tileWidth": 1
      },
      "spriteColumns": 2,
      "spriteFrameSize": 60,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_yeti_shaman.png",
      "tags": [
        "Ice",
        "Living"
      ]
    },
    "monster_yggdrasil": {
      "asset": "char/3x3_yggdrasil.png",
      "attributes": {
        "flying": false,
        "max_hp": 3550,
        "radius": 1,
        "shields": 0,
        "stationary": true
      },
      "baseId": "yggdrasil",
      "buffs": [
        {
          "asset": "tiles/buffs/yggdrasil's_dream.png",
          "className": "YggdrasilsDream",
          "description": "Each turn, enemies take 2 [Dark] and [Arcane] damage\nAllies are healed instead",
          "name": "Yggdrasil's Dream"
        },
        {
          "asset": "tiles/buffs/reinforcements.png",
          "className": "SummonReinforcements",
          "description": "",
          "name": "Reinforcements"
        }
      ],
      "className": "Unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "elite": true,
      "extractionSource": "runtime",
      "factoryName": "TwistedTree",
      "group": "rare",
      "icon": "icons/runtime/monster_yggdrasil.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "char/3x3_yggdrasil.png",
      "id": "monster_yggdrasil",
      "kind": "monster",
      "level": 2,
      "maxLevel": 1,
      "name": "Yggdrasil",
      "rare": true,
      "rareExtra": [
        "Nature"
      ],
      "resists": {
        "Arcane": 50,
        "Dark": 50,
        "Fire": -100,
        "Physical": 50
      },
      "spells": [
        {
          "attributes": {
            "can_target_empty": true,
            "cool_down": 3,
            "hp_cost": 0,
            "level": 0,
            "max_charges": 0,
            "melee": false,
            "quick_cast": false,
            "range": 0,
            "requires_los": true
          },
          "className": "TreeThornSummon",
          "description": "Summon 3 Fae Thorns near the wizard",
          "name": "Grow Thorns",
          "tags": []
        }
      ],
      "sprite": {
        "animationMs": 900,
        "columns": 4,
        "frameSize": 180,
        "idleRow": 1,
        "rows": 2,
        "sheet": "icons/sheets/monster_yggdrasil.png",
        "tileHeight": 3,
        "tileWidth": 3
      },
      "spriteColumns": 4,
      "spriteFrameSize": 180,
      "spriteIdleRow": 1,
      "spriteRows": 2,
      "spriteSheet": "icons/sheets/monster_yggdrasil.png",
      "tags": [
        "Nature",
        "Demon"
      ]
    },
    "spell_amalgamate_slime": {
      "asset": "UI/spell skill icons/amalgamate_slime.png",
      "attributes": {
        "can_self_target": false,
        "can_target_empty": false,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 3,
        "melee": false,
        "quick_cast": false,
        "range": 36,
        "requires_los": false
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "helmet": 2,
          "trinket": 1,
          "weapon": 6
        },
        "count": 10
      },
      "baseId": "amalgamate_slime",
      "className": "AmalgamateSlime",
      "damageType": [],
      "description": "[Slime] allies in a connected group are amalgamated onto the target\nTarget gains the max HP, resists, spells, and spell damage, of affected units\nTarget loses the base slime buff, and gains the Slimy buff which causes its health to increase over time and to shed slimes when damaged\nThis spell must target a [Slime] ally",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_amalgamate_slime.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/amalgamate_slime.png",
      "id": "spell_amalgamate_slime",
      "kind": "spell",
      "name": "Amalgamate Slime",
      "stats": [
        "range",
        "max_charges",
        "hp_cost",
        "slimy_mimic",
        "absorption",
        "damage",
        "can_self_target",
        "global_network"
      ],
      "tags": [
        "Slime",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "You may target yourself with this spell\nCasting it on yourself causes you to heal for the total absorbed health instead of summoning a creature",
          "id": "slime_drinking",
          "name": "Slime Drinking",
          "tags": [
            "Slime",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Affects all [Slime] allies, instead of only those in a connected group",
          "id": "global_network",
          "name": "Global Network",
          "tags": [
            "Slime",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "[Slime] allies steal [{damage}:damage] max HP from adjacent enemies before amalgamating",
          "id": "absorption",
          "name": "Absorption",
          "tags": [
            "Slime",
            "Sorcery",
            "Blood"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Instead of consolidating into the target slime, summons a random monster with the Slimy buff\nThe monster summoned depends on the total health of the absorbed slimes, with higher health pools yielding potentially more powerful monsters\nThe summoned monster's max HP is set to the total health of the absorbed slimes\nThe damage of the monster's spells scales with their increased HP",
          "id": "slimy_mimic",
          "name": "Slimy Mimic",
          "tags": [
            "Slime",
            "Sorcery",
            "Chaos"
          ],
          "unlocksItems": 2
        }
      ]
    },
    "spell_annihilate": {
      "asset": "UI/spell skill icons/annihilate.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 16,
        "hp_cost": 0,
        "level": 2,
        "max_charges": 10,
        "melee": false,
        "quick_cast": false,
        "range": 5,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "helmet": 3,
          "trinket": 1,
          "weapon": 9
        },
        "count": 13
      },
      "baseId": "annihilate",
      "className": "AnnihilateSpell",
      "damageType": [
        "Fire",
        "Lightning",
        "Physical"
      ],
      "description": "Deal [16:damage] [Fire], [Lightning], and [Physical] damage to the target",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 4,
        "outgoingCount": 0,
        "pathCount": 2
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_annihilate.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/annihilate.png",
      "id": "spell_annihilate",
      "kind": "spell",
      "name": "Annihilate",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "hp_cost",
        "comprehensive",
        "cascade",
        "assured_destruction"
      ],
      "tags": [
        "Chaos",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "If you are able, when you cast this spell, use an additional charge to cast it again if the target lives",
          "id": "assured_destruction",
          "name": "Assured Destruction",
          "tags": [
            "Chaos",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "If Annihilate kills a unit, any remaining hits will jump to an enemy within range of the killed unit\nIgnores line of sight",
          "id": "cascade",
          "name": "Cascade",
          "tags": [
            "Chaos",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 7,
          "damageType": [
            "Ice",
            "Holy",
            "Dark",
            "Arcane"
          ],
          "description": "Annihilate also deals [Ice], [Holy], [Dark], and [Arcane] damage hits",
          "id": "comprehensive_annihilation",
          "name": "Comprehensive Annihilation",
          "tags": [
            "Chaos",
            "Sorcery",
            "Ice",
            "Holy",
            "Dark",
            "Arcane"
          ],
          "unlocksItems": 20
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 9,
          "damageType": [],
          "description": "",
          "id": "mega_annihilate",
          "name": "Mega Annihilate",
          "tags": [
            "Chaos",
            "Sorcery"
          ]
        }
      ]
    },
    "spell_arc_lightning": {
      "asset": "UI/spell skill icons/arc_lightning.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 32,
        "hp_cost": 0,
        "level": 6,
        "max_charges": 1,
        "melee": false,
        "num_targets": 4,
        "quick_cast": false,
        "range": 18,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "helmet": 2,
          "trinket": 2,
          "weapon": 13
        },
        "count": 17
      },
      "baseId": "arc_lightning",
      "className": "ArcLightning",
      "damageType": [
        "Lightning"
      ],
      "description": "Lightning arcs to [4:num_targets] enemies in line of sight of the target tile\nEach arc deals [32:damage] [Lightning] damage in a beam\nThen, this process repeats once for half damage, originating from each arc target",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_arc_lightning.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/arc_lightning.png",
      "id": "spell_arc_lightning",
      "kind": "spell",
      "name": "Arc Lightning",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "num_targets",
        "hp_cost",
        "weld",
        "invigoration",
        "proton"
      ],
      "tags": [
        "Lightning",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "",
          "id": "multi_flash",
          "name": "Multi Flash",
          "tags": [
            "Lightning",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Arc Lightning heals allies instead of damaging them",
          "id": "invigoration",
          "name": "Invigoration",
          "tags": [
            "Lightning",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "damage": 4
          },
          "cost": 6,
          "damageType": [
            "Arcane"
          ],
          "description": "Arc Lightning deals [{damage}:damage] [Arcane] damage to units in line of sight of each arc target",
          "id": "proton_storm",
          "name": "Proton Storm",
          "tags": [
            "Lightning",
            "Sorcery",
            "Arcane"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 7,
          "damageType": [],
          "description": "When Arc Lightning begins at or arcs to a unit, cast Immolate on them\nIf it's a [Metallic] unit, also cast Magnetize on it",
          "id": "arc_welder",
          "name": "Arc Welder",
          "tags": [
            "Lightning",
            "Sorcery",
            "Fire",
            "Metallic"
          ],
          "unlocksItems": 7
        }
      ]
    },
    "spell_arcane_warding": {
      "asset": "UI/spell skill icons/arcane_warding.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "duration": 8,
        "hp_cost": 0,
        "level": 4,
        "max_charges": 2,
        "melee": false,
        "quick_cast": false,
        "range": 0,
        "requires_los": true,
        "shields": 3
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "helmet": 2,
          "trinket": 1,
          "weapon": 4
        },
        "count": 8
      },
      "baseId": "arcane_warding",
      "className": "ArcaneWardingSpell",
      "damageType": [],
      "description": "Each turn, gain [3 SH:shields]\nWhen enemy damage is blocked by your shields, reflect that damage to the source\nLasts [8:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 4,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_arcane_warding.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/arcane_warding.png",
      "id": "spell_arcane_warding",
      "kind": "spell",
      "name": "Arcane Warding",
      "stats": [
        "range",
        "max_charges",
        "duration",
        "shields",
        "hp_cost",
        "shields",
        "absorb",
        "cycle",
        "amp",
        "transmute"
      ],
      "tags": [
        "Arcane",
        "Enchantment"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "If Arcane Ward kills a unit, it extends its remaining duration by 3",
          "id": "soul_thief",
          "name": "Soul Thief",
          "tags": [
            "Arcane",
            "Enchantment",
            "Dark"
          ],
          "unlocksItems": 8
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Instead of reflecting the same damage type, the damage type will instead be of a type that the targeted unit is most vulnerable to",
          "id": "transmutation_ward",
          "name": "Transmutation Ward",
          "tags": [
            "Arcane",
            "Enchantment",
            "Chaos"
          ],
          "unlocksItems": 2
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Arcane Ward deals twice as much damage as the blocked hit",
          "id": "amplifier_ward",
          "name": "Amplifier Ward",
          "tags": [
            "Arcane",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "In addition to reflecting damage back at the attacker, heal for half the incoming damage",
          "id": "energy_absorber",
          "name": "Energy Absorber",
          "tags": [
            "Arcane",
            "Enchantment"
          ]
        }
      ]
    },
    "spell_armageddon_blade": {
      "asset": "UI/spell skill icons/armageddon_blade.png",
      "attributes": {
        "can_target_empty": false,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 4,
        "max_charges": 6,
        "melee": false,
        "quick_cast": false,
        "range": 5,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "helmet": 3,
          "trinket": 3,
          "weapon": 6
        },
        "count": 12
      },
      "baseId": "armageddon_blade",
      "className": "ArmageddonBladeSpell",
      "damageType": [],
      "description": "Grant target ally a melee version of your Annihilate spell",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 1,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_armageddon_blade.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/armageddon_blade.png",
      "id": "spell_armageddon_blade",
      "kind": "spell",
      "name": "Armageddon Blade",
      "stats": [
        "range",
        "max_charges",
        "hp_cost",
        "doombrand",
        "connected_group",
        "armor"
      ],
      "tags": [
        "Chaos",
        "Metallic",
        "Enchantment"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Grants a buff which provides 50% resistance to [Fire], [Lightning], and [Physical] damage\nThe buff also deals 6 [Fire], [Lightning], and [Physical] damage to enemies that harm the owner",
          "id": "armor_of_armageddon",
          "name": "Armor of Armageddon",
          "tags": [
            "Chaos",
            "Metallic",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "When the unit uses their Annihilate on an enemy, they inflict the Doom debuff\nDoom reduces all resistances by 25%",
          "id": "doombrand",
          "name": "Doombrand",
          "tags": [
            "Chaos",
            "Metallic",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 4,
          "damageType": null,
          "description": "",
          "id": "armageddon_foretold",
          "name": "Armageddon Foretold",
          "tags": [
            "Chaos",
            "Metallic",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 7,
          "damageType": [],
          "description": "Affects a connected group of allies",
          "id": "mass_armaments",
          "name": "Mass Armaments",
          "tags": [
            "Chaos",
            "Metallic",
            "Enchantment"
          ]
        }
      ]
    },
    "spell_black_hole": {
      "asset": "UI/spell skill icons/black_hole.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 6,
        "max_charges": 2,
        "melee": false,
        "quick_cast": false,
        "range": 6,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "helmet": 3,
          "trinket": 1,
          "weapon": 6
        },
        "count": 12
      },
      "baseId": "black_hole",
      "className": "BlackHoleSpell",
      "damageType": [],
      "description": "Enemies in line of sight of the target are teleported as close as they can be toward it",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 1
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_black_hole.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/black_hole.png",
      "id": "spell_black_hole",
      "kind": "spell",
      "name": "Black Hole",
      "stats": [
        "range",
        "max_charges",
        "hp_cost",
        "quake",
        "requires_los",
        "freeze",
        "radius",
        "duration",
        "singularity",
        "damage"
      ],
      "tags": [
        "Arcane",
        "Sorcery",
        "Translocation"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Deal [{damage}:damage] [Physical] damage to the unit at the target tile after units have been teleported",
          "id": "singularity_crush",
          "name": "Singularity Crush",
          "tags": [
            "Arcane",
            "Sorcery",
            "Translocation"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Enemies within [{radius}:radius] tiles of the target are [frozen] for [{duration}:duration] turns",
          "id": "heat_death",
          "name": "Heat Death",
          "tags": [
            "Arcane",
            "Sorcery",
            "Translocation",
            "Ice"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "",
          "id": "cosmic_grasp",
          "name": "Cosmic Grasp",
          "tags": [
            "Arcane",
            "Sorcery",
            "Translocation"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 8,
          "damageType": [],
          "description": "Black Hole first casts Earthquake centered on the target before teleporting",
          "id": "environmental_destruction",
          "name": "Environmental Destruction",
          "tags": [
            "Arcane",
            "Sorcery",
            "Translocation",
            "Nature"
          ],
          "unlocksItems": 1
        }
      ]
    },
    "spell_blazerip": {
      "asset": "UI/spell skill icons/blazerip.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 12,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 6,
        "melee": false,
        "quick_cast": false,
        "radius": 3,
        "range": 5,
        "requires_los": false
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 3,
          "helmet": 2,
          "trinket": 1,
          "weapon": 14
        },
        "count": 20
      },
      "baseId": "blazerip",
      "className": "Blazerip",
      "damageType": [
        "Arcane",
        "Fire"
      ],
      "description": "Deal [12:damage] [Arcane] and [Fire] damage in a [7:radius] tile line perpendicular to the caster\nMelts walls",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 8,
        "outgoingCount": 0,
        "pathCount": 4
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_blazerip.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/blazerip.png",
      "id": "spell_blazerip",
      "kind": "spell",
      "name": "Blazerip",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "radius",
        "hp_cost",
        "reality_rip",
        "minion_health",
        "minion_damage",
        "minion_range",
        "aether_poison",
        "duration",
        "assassin",
        "mirror"
      ],
      "tags": [
        "Arcane",
        "Fire",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Blazerip also affects a symmetric area behind the caster",
          "id": "dual_blazerip",
          "name": "Dual Blazerip",
          "tags": [
            "Arcane",
            "Fire",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "damage": 1
          },
          "cost": 4,
          "damageType": [],
          "description": "Inflict [{duration}:duration] turns of [Aether Poison:arcane] on affected units\n[Aether Poison:arcane] reduces [Arcane] resist by 50 and deals [{damage}:damage] [Arcane] damage each turn",
          "id": "aether_poison",
          "name": "Aether Poison",
          "tags": [
            "Arcane",
            "Fire",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Blazerip deals double damage when cast on a target outside your line of sight",
          "id": "arcane_assassin",
          "name": "Arcane Assassin",
          "tags": [
            "Arcane",
            "Fire",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "When Blazerip kills an enemy, summon a Flame Rift or Void Rift depending on the damage type that killed them",
          "id": "reality_rip",
          "name": "Reality Rip",
          "tags": [
            "Arcane",
            "Fire",
            "Sorcery",
            "Conjuration"
          ],
          "unlocksItems": 2
        }
      ]
    },
    "spell_blinding_light": {
      "asset": "UI/spell skill icons/blinding_light.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 5,
        "duration": 4,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 3,
        "melee": false,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "boots": 1,
          "helmet": 2,
          "trinket": 5,
          "weapon": 9
        },
        "count": 18
      },
      "baseId": "blinding_light",
      "className": "BlindingLightSpell",
      "damageType": [
        "Holy"
      ],
      "description": "[Blind] units in line of sight of the caster for [4:duration] turns\nDeal [5:damage] [Holy] damage to affected [Undead] and [Demon] units",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 3,
        "outgoingCount": 2,
        "pathCount": 3
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_blinding_light.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/blinding_light.png",
      "id": "spell_blinding_light",
      "kind": "spell",
      "name": "Blinding Light",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "duration",
        "hp_cost",
        "angel",
        "quick_cast",
        "deal_fire",
        "inflict_stun"
      ],
      "tags": [
        "Holy",
        "Eye",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Blinding Light gains quickcast",
          "id": "quickcast",
          "name": "Quickcast",
          "tags": [
            "Holy",
            "Eye",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "damage": 5
          },
          "cost": 4,
          "damageType": [
            "Fire"
          ],
          "description": "Blinding Light also deals [{damage}:damage] [Fire] damage to enemies in line of sight",
          "id": "searing_light",
          "name": "Searing Light",
          "tags": [
            "Holy",
            "Eye",
            "Sorcery",
            "Fire"
          ],
          "unlocksItems": 5
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "For every 100 damage dealt by a single cast of Blinding Light, cast your Choir of Angels spell",
          "id": "angelic_visions",
          "name": "Angelic Visions",
          "tags": [
            "Holy",
            "Eye",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "duration": 2
          },
          "cost": 5,
          "damageType": [],
          "description": "[Stuns] affected enemies for [{duration} turn:duration] turns",
          "id": "halting_light",
          "name": "Halting Light",
          "tags": [
            "Holy",
            "Eye",
            "Sorcery"
          ]
        }
      ]
    },
    "spell_blink": {
      "asset": "UI/spell skill icons/blink.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 6,
        "melee": false,
        "quick_cast": false,
        "range": 5,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "helmet": 3,
          "trinket": 1,
          "weapon": 6
        },
        "count": 12
      },
      "baseId": "blink",
      "className": "BlinkSpell",
      "damageType": [],
      "description": "Teleport to target tile",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 1,
        "outgoingCount": 4,
        "pathCount": 3
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_blink.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/blink.png",
      "id": "spell_blink",
      "kind": "spell",
      "name": "Blink",
      "stats": [
        "range",
        "max_charges",
        "hp_cost",
        "thunder",
        "num_targets",
        "dispersal",
        "requires_los",
        "aether_swap",
        "damage"
      ],
      "tags": [
        "Arcane",
        "Sorcery",
        "Translocation"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "You may now cast Blink targeting a unit\nDoing so causes you to swap places with them, and deals [{damage}:damage] [Arcane] damage",
          "id": "aether_swap",
          "name": "Aether Swap",
          "tags": [
            "Arcane",
            "Sorcery",
            "Translocation"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Blink can be cast outside your line of sight",
          "id": "blindcasting",
          "name": "Blindcasting",
          "tags": [
            "Arcane",
            "Sorcery",
            "Translocation"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Casting Blink also casts Disperse on the target",
          "id": "dissolution",
          "name": "Dissolution",
          "tags": [
            "Arcane",
            "Sorcery",
            "Translocation"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Casting Blink also casts Thunder Strike on the [{num_targets}:num_targets] nearest enemies in line of sight of the target",
          "id": "thunderblink",
          "name": "Thunderblink",
          "tags": [
            "Arcane",
            "Sorcery",
            "Translocation",
            "Lightning"
          ],
          "unlocksItems": 4
        }
      ]
    },
    "spell_blizzard": {
      "asset": "UI/spell skill icons/blizzard.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 5,
        "duration": 5,
        "hp_cost": 0,
        "level": 4,
        "max_charges": 3,
        "melee": false,
        "quick_cast": false,
        "radius": 3,
        "range": 6,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 3,
          "helmet": 3,
          "weapon": 14
        },
        "count": 20
      },
      "baseId": "blizzard",
      "className": "BlizzardSpell",
      "damageType": [],
      "description": "Create [Blizzards:ice] over tiles in a [3:radius] tile radius\n[Blizzards:ice] deal [5:damage] [Ice] damage each turn and have a 50% chance to inflict [frozen]\nThe clouds last for [5:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 1,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_blizzard.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/blizzard.png",
      "id": "spell_blizzard",
      "kind": "spell",
      "name": "Blizzard",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "radius",
        "duration",
        "hp_cost",
        "blind",
        "cast_icicle",
        "beast",
        "minion_health",
        "minion_damage",
        "num_summons"
      ],
      "tags": [
        "Enchantment",
        "Ice",
        "Nature"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "duration": 5
          },
          "cost": 2,
          "damageType": [],
          "description": "Damage dealt by this spell's [Blizzards:ice] inflict [{duration}:duration] turns of [blind]",
          "id": "blinding_squall",
          "name": "Blinding Squall",
          "tags": [
            "Enchantment",
            "Ice",
            "Nature"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Casting Blizzard also summons up to [{num_summons}:num_summons] Blizzard Beasts in unoccupied affected tiles",
          "id": "blizzard_beasts",
          "name": "Blizzard Beasts",
          "tags": [
            "Enchantment",
            "Ice",
            "Nature",
            "Conjuration"
          ],
          "unlocksItems": 2
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 6,
          "damageType": null,
          "description": "Every 300 damage dealt by this spell's [Blizzards:ice], regain a charge of a random [Ice] spell",
          "id": "blizzard_harvest",
          "name": "Blizzard Harvest",
          "tags": [
            "Enchantment",
            "Ice",
            "Nature"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 7,
          "damageType": [],
          "description": "For each cloud in your Blizzard, there is a 25% chance for you to cast Icicle on it each turn",
          "id": "hailstorm",
          "name": "Hailstorm",
          "tags": [
            "Enchantment",
            "Ice",
            "Nature"
          ]
        }
      ]
    },
    "spell_blood_bullet": {
      "asset": "UI/spell skill icons/blood_bullet.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 10,
        "hp_cost": 1,
        "level": 1,
        "max_charges": 0,
        "melee": false,
        "quick_cast": false,
        "range": 10,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "helmet": 2,
          "trinket": 4,
          "weapon": 11
        },
        "count": 17
      },
      "baseId": "blood_bullet",
      "className": "BloodBullet",
      "damageType": [
        "Physical"
      ],
      "description": "Shoot a projectile that deals [10:damage] [Physical] damage to the first unit in its path",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_blood_bullet.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/blood_bullet.png",
      "id": "spell_blood_bullet",
      "kind": "spell",
      "name": "Blood Bullet",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "hp_cost",
        "six",
        "num_targets",
        "blessed",
        "rime"
      ],
      "tags": [
        "Blood",
        "Metallic",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [
            "Ice"
          ],
          "description": "Blood Bullet also deals [Ice] damage",
          "id": "rime_coated_rounds",
          "name": "Rime Coated Rounds",
          "tags": [
            "Blood",
            "Metallic",
            "Sorcery",
            "Ice"
          ],
          "unlocksItems": 6
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Blood Bullet penetrates and deals additional [Holy] damage to [Dark], [Demon], and [Undead] units",
          "id": "blessed_blood",
          "name": "Blessed Blood",
          "tags": [
            "Blood",
            "Metallic",
            "Sorcery",
            "Holy"
          ],
          "unlocksItems": 6
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Shoot [{num_targets}:num_targets] bullets instead of one",
          "id": "double_tap",
          "name": "Double Tap",
          "tags": [
            "Blood",
            "Metallic",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 5,
          "damageType": null,
          "description": "",
          "id": "sniper_s_trance",
          "name": "Sniper's Trance",
          "tags": [
            "Blood",
            "Metallic",
            "Sorcery"
          ]
        }
      ]
    },
    "spell_blood_meridian": {
      "asset": "UI/spell skill icons/blood_meridian.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 36,
        "duration": 3,
        "hp_cost": 36,
        "level": 5,
        "max_charges": 3,
        "melee": false,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "helmet": 1,
          "trinket": 2,
          "weapon": 9
        },
        "count": 12
      },
      "baseId": "blood_meridian",
      "className": "BloodMeridian",
      "damageType": [
        "Physical"
      ],
      "description": "Inflict [36:damage] [Physical] damage and [3:duration] turns of [bleed] to other units in a line extending above and below the caster\nEnemies to the left of the meridian are put to [sleep] for [3:duration] turns\nEnemies to the right of the meridian are [berserked] for [3:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_blood_meridian.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/blood_meridian.png",
      "id": "spell_blood_meridian",
      "kind": "spell",
      "name": "Blood Meridian",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "duration",
        "hp_cost",
        "twilight",
        "wall",
        "lifesteal",
        "wide"
      ],
      "tags": [
        "Blood",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Heal for damage dealt by this spell",
          "id": "lifesteal",
          "name": "Lifesteal",
          "tags": [
            "Blood",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Instead of a line, Blood Meridian affects a 3 tile wide beam that extends above and below the caster",
          "id": "deep_division",
          "name": "Deep Division",
          "tags": [
            "Blood",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "After dealing damage, unoccupied tiles in the meridian become walls",
          "id": "blood_wall",
          "name": "Blood Wall",
          "tags": [
            "Blood",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "damage": 18
          },
          "cost": 9,
          "damageType": [
            "Dark",
            "Holy"
          ],
          "description": "Enemies to the left of the meridian take [{damage}:damage] [Dark] damage\nEnemies to the right of the meridian take [{damage}:damage] [Holy] damage",
          "id": "twilight_divide",
          "name": "Twilight Divide",
          "tags": [
            "Blood",
            "Sorcery",
            "Dark",
            "Holy"
          ],
          "unlocksItems": 12
        }
      ]
    },
    "spell_bloodshift": {
      "asset": "UI/spell skill icons/bloodshift.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 18,
        "hp_cost": 8,
        "level": 3,
        "max_charges": 6,
        "melee": false,
        "quick_cast": false,
        "radius": 4,
        "range": 5,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "boots": 1,
          "helmet": 4,
          "trinket": 5,
          "weapon": 14
        },
        "count": 26
      },
      "baseId": "bloodshift",
      "className": "Bloodshift",
      "damageType": [
        "Dark"
      ],
      "description": "Enemies in a [4:radius] tile burst take [18:damage] [Dark] damage\nDamage dealt this way heals you or a wounded ally in the targeted area for half that amount",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 2,
        "outgoingCount": 1,
        "pathCount": 1
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_bloodshift.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/bloodshift.png",
      "id": "spell_bloodshift",
      "kind": "spell",
      "name": "Bloodshift",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "radius",
        "hp_cost",
        "boil",
        "greed",
        "toxicity",
        "freeze",
        "duration"
      ],
      "tags": [
        "Blood",
        "Dark",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Affected enemies are [frozen] for [{duration}:duration] turns",
          "id": "blood_freeze",
          "name": "Blood Freeze",
          "tags": [
            "Blood",
            "Dark",
            "Sorcery",
            "Ice"
          ],
          "unlocksItems": 6
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "You and only you are healed by this spell, even if you are out of the targeted area",
          "id": "blood_greed",
          "name": "Blood Greed",
          "tags": [
            "Blood",
            "Dark",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Allies in the affected area receive a buff to their damage, as though you had cast Boiling Blood",
          "id": "boiling_bloodshift",
          "name": "Boiling Bloodshift",
          "tags": [
            "Blood",
            "Dark",
            "Sorcery",
            "Fire"
          ],
          "unlocksItems": 6
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [
            "Poison"
          ],
          "description": "Bloodshift also deals [Poison] damage\nThe [Poison] damage does not cause healing",
          "id": "toxic_shift",
          "name": "Toxic Shift",
          "tags": [
            "Blood",
            "Dark",
            "Sorcery"
          ]
        }
      ]
    },
    "spell_blue_lion": {
      "asset": "UI/spell skill icons/blue_lion.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 5,
        "max_charges": 2,
        "melee": false,
        "minion_damage": 7,
        "minion_health": 28,
        "quick_cast": false,
        "range": 5,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 4,
          "boots": 1,
          "helmet": 4,
          "trinket": 4,
          "weapon": 7
        },
        "count": 20
      },
      "baseId": "blue_lion",
      "className": "SummonBlueLion",
      "damageType": [],
      "description": "Summon a Blue Lion",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 2,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_blue_lion.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/blue_lion.png",
      "id": "spell_blue_lion",
      "kind": "spell",
      "name": "Blue Lion",
      "stats": [
        "range",
        "max_charges",
        "minion_damage",
        "minion_health",
        "hp_cost",
        "lamasu",
        "minion_range",
        "radius",
        "healing_light_spell",
        "holy_bolt"
      ],
      "tags": [
        "Nature",
        "Holy",
        "Conjuration",
        "Arcane"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Blue Lion gains a ranged [{minion_range}:minion_range] [Holy] attack",
          "id": "holy_bolt",
          "name": "Holy Bolt",
          "tags": [
            "Nature",
            "Holy",
            "Conjuration",
            "Arcane"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Blue Lion can cast your Healing Light on a 7 turn cooldown",
          "id": "shimmermane",
          "name": "Shimmermane",
          "tags": [
            "Nature",
            "Holy",
            "Conjuration",
            "Arcane"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 4,
          "damageType": null,
          "description": "",
          "id": "lion_saviors",
          "name": "Lion Saviors",
          "tags": [
            "Nature",
            "Holy",
            "Conjuration",
            "Arcane"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 9,
          "damageType": [],
          "description": "Instead of a Blue Lion, summon a Lamasu",
          "id": "summon_lamasu",
          "name": "Summon Lamasu",
          "tags": [
            "Nature",
            "Holy",
            "Conjuration",
            "Arcane"
          ]
        }
      ]
    },
    "spell_boiling_blood": {
      "asset": "UI/spell skill icons/boiling_blood.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "duration": 7,
        "hp_cost": 2,
        "level": 2,
        "max_charges": 9,
        "melee": false,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "helmet": 2,
          "weapon": 8
        },
        "count": 11
      },
      "baseId": "boiling_blood",
      "className": "BoilingBlood",
      "damageType": [],
      "description": "Allies gain 6 [damage] to their [Fire] and [Physical] spells\nLasts [7:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 2,
        "outgoingCount": 0,
        "pathCount": 1
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_boiling_blood.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/boiling_blood.png",
      "id": "spell_boiling_blood",
      "kind": "spell",
      "name": "Boiling Blood",
      "stats": [
        "range",
        "max_charges",
        "duration",
        "hp_cost",
        "berserker_rage",
        "endless_fury",
        "combustion_point",
        "twilight_fury"
      ],
      "tags": [
        "Nature",
        "Enchantment",
        "Blood",
        "Fire"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Boiling Blood grants 5% resistance to all damage types",
          "id": "berserker_rage",
          "name": "Berserker Rage",
          "tags": [
            "Nature",
            "Enchantment",
            "Blood",
            "Fire"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Affected units receive a [Fire] damage aura and a death explosion effect which scales with their health",
          "id": "combustion_point",
          "name": "Combustion Point",
          "tags": [
            "Nature",
            "Enchantment",
            "Blood",
            "Fire"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Boiling Blood also impacts [Holy] and [Dark] spells",
          "id": "twilight_fury",
          "name": "Twilight Fury",
          "tags": [
            "Nature",
            "Enchantment",
            "Blood",
            "Fire",
            "Holy",
            "Dark"
          ],
          "unlocksItems": 8
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Boiling Blood becomes permanent, but causes units to take 1 [Fire] damage per turn",
          "id": "endless_fury",
          "name": "Endless Fury",
          "tags": [
            "Nature",
            "Enchantment",
            "Blood",
            "Fire"
          ]
        }
      ]
    },
    "spell_bone_barrage": {
      "asset": "UI/spell skill icons/bone_barrage.png",
      "attributes": {
        "can_target_empty": false,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 4,
        "max_charges": 7,
        "melee": false,
        "quick_cast": false,
        "range": 14,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "boots": 1,
          "helmet": 3,
          "trinket": 2,
          "weapon": 8
        },
        "count": 16
      },
      "baseId": "bone_barrage",
      "className": "BoneBarrageSpell",
      "damageType": [
        "Physical"
      ],
      "description": "Your allies in line of sight of the target take [Physical] damage equal to half their health\nEach affected ally deals that much [Physical] damage to the target",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_bone_barrage.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/bone_barrage.png",
      "id": "spell_bone_barrage",
      "kind": "spell",
      "name": "Bone Barrage",
      "stats": [
        "range",
        "max_charges",
        "hp_cost",
        "dark",
        "pistons",
        "conduction",
        "beam"
      ],
      "tags": [
        "Dark",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [
            "Lightning"
          ],
          "description": "Bones pulled from [Lightning] allies also deal [Lightning] damage",
          "id": "marrow_conduction",
          "name": "Marrow Conduction",
          "tags": [
            "Dark",
            "Sorcery",
            "Lightning"
          ],
          "unlocksItems": 4
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Bone Barrage damages units in a beam from each of your affected allies to the target",
          "id": "bone_spears",
          "name": "Bone Spears",
          "tags": [
            "Dark",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Damage dealt by [Metallic] allies' bones is multiplied by 4",
          "id": "piston_spears",
          "name": "Piston Spears",
          "tags": [
            "Dark",
            "Sorcery",
            "Metallic"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [
            "Dark"
          ],
          "description": "Bone Barrage also deals [Dark] damage",
          "id": "cursed_bones",
          "name": "Cursed Bones",
          "tags": [
            "Dark",
            "Sorcery"
          ]
        }
      ]
    },
    "spell_bone_spear": {
      "asset": "UI/spell skill icons/bone_spear.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 16,
        "hp_cost": 3,
        "level": 2,
        "max_charges": 0,
        "melee": false,
        "quick_cast": false,
        "range": 6,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "helmet": 2,
          "trinket": 1,
          "weapon": 9
        },
        "count": 12
      },
      "baseId": "bone_spear",
      "className": "Bonespear",
      "damageType": [
        "Physical"
      ],
      "description": "Deal [16:damage] [Physical] damage in a line\nThis spell can target and destroy a wall tile",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 1,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_bone_spear.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/bone_spear.png",
      "id": "spell_bone_spear",
      "kind": "spell",
      "name": "Bone Spear",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "hp_cost",
        "stun",
        "duration",
        "toxic",
        "radius",
        "fire"
      ],
      "tags": [
        "Sorcery",
        "Blood"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "",
          "id": "bone_ballista",
          "name": "Bone Ballista",
          "tags": [
            "Sorcery",
            "Blood"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Bone Spear applies [stun] for [{duration}:duration] turns",
          "id": "stun_spear",
          "name": "Stun Spear",
          "tags": [
            "Sorcery",
            "Blood"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "damage": 16
          },
          "cost": 3,
          "damageType": [
            "Poison"
          ],
          "description": "When Bone Spear kills a unit, enemies within [{radius}:radius] tiles of the slain unit take [{damage}:damage] [Poison] damage",
          "id": "toxic_spear",
          "name": "Toxic Spear",
          "tags": [
            "Sorcery",
            "Blood",
            "Dark"
          ],
          "unlocksItems": 11
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [
            "Fire"
          ],
          "description": "Bone Spear also deals [Fire] damage",
          "id": "blazing_spear",
          "name": "Blazing Spear",
          "tags": [
            "Sorcery",
            "Blood",
            "Fire"
          ],
          "unlocksItems": 6
        }
      ]
    },
    "spell_bouncing_slimeball": {
      "asset": "UI/spell skill icons/bouncing_slimeball.png",
      "attributes": {
        "can_target_empty": false,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 2,
        "max_charges": 12,
        "melee": false,
        "minion_damage": 3,
        "minion_health": 10,
        "minion_range": 3,
        "num_targets": 6,
        "quick_cast": false,
        "range": 6,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "helmet": 3,
          "trinket": 3,
          "weapon": 13
        },
        "count": 21
      },
      "baseId": "bouncing_slimeball",
      "className": "BouncingSlimeball",
      "damageType": [
        "Physical"
      ],
      "description": "Fling a slime ball that bounces up to [6:num_targets] times to random enemies in line of sight of the last hit\nEach bounce deals [Physical] damage equal to the number of remaining bounces\nThe final impact summons a random slime nearby",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_bouncing_slimeball.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/bouncing_slimeball.png",
      "id": "spell_bouncing_slimeball",
      "kind": "spell",
      "name": "Bouncing Slimeball",
      "stats": [
        "range",
        "max_charges",
        "minion_damage",
        "minion_health",
        "minion_range",
        "num_targets",
        "hp_cost",
        "conserve",
        "slimepacolypse",
        "pouch",
        "duration",
        "knockback"
      ],
      "tags": [
        "Sorcery",
        "Chaos",
        "Slime",
        "Conjuration"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "When Bouncing Slimeball hits a unit, it deals twice as much damage and pushes them back 2 tiles",
          "id": "impact_kickback",
          "name": "Impact Kickback",
          "tags": [
            "Sorcery",
            "Chaos",
            "Slime",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Bouncing Slimeball can now bounce to friendly [Slime] units\nIf it impacts a friendly [Slime], instead of any other effects, it grants them max health equal to its remaining bounces and heals them to full life",
          "id": "slimepacolypse",
          "name": "Slimepacolypse",
          "tags": [
            "Sorcery",
            "Chaos",
            "Slime",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Bouncing Slimeball also deals damage and inflicts [{duration}:duration] turns of a status matching the type of slime that will be spawned\nYou can now see what kind of slime, the matching damage type, and the inflicted status type in this spell's description each turn",
          "id": "slime_ammo_pouch",
          "name": "Slime Ammo Pouch",
          "tags": [
            "Sorcery",
            "Chaos",
            "Slime",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "When Bouncing Slimeball kills a creature that it bounces to, its number of remaining bounces does not decrease",
          "id": "kinetic_conservation",
          "name": "Kinetic Conservation",
          "tags": [
            "Sorcery",
            "Chaos",
            "Slime",
            "Conjuration"
          ]
        }
      ]
    },
    "spell_burning_idol": {
      "asset": "UI/spell skill icons/burning_idol.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 4,
        "max_charges": 2,
        "melee": false,
        "minion_damage": 20,
        "minion_health": 100,
        "quick_cast": false,
        "radius": 3,
        "range": 5,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 5,
          "boots": 1,
          "helmet": 4,
          "trinket": 7,
          "weapon": 11
        },
        "count": 28
      },
      "baseId": "burning_idol",
      "className": "BurningIdolSpell",
      "damageType": [],
      "description": "Summon an Idol of Burning Sacrifice\nEach turn, the idol consumes its lowest HP ally, dealing [20:minion_damage] [Fire] damage to enemies and healing allies in a [3:radius] tile burst around the sacrificed unit\nThe idol and the Wizard are both legal sacrifices",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_burning_idol.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/burning_idol.png",
      "id": "spell_burning_idol",
      "kind": "spell",
      "name": "Burning Idol",
      "stats": [
        "range",
        "max_charges",
        "radius",
        "minion_damage",
        "minion_health",
        "hp_cost",
        "tyrant",
        "minion_duration",
        "hunger",
        "glutton",
        "num_targets",
        "bone_explosion"
      ],
      "tags": [
        "Fire",
        "Conjuration",
        "Metallic",
        "Dark"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Consumes the [{num_targets}:num_targets] lowest HP allies instead of just one",
          "id": "gluttonous_sacrifice",
          "name": "Gluttonous Sacrifice",
          "tags": [
            "Fire",
            "Conjuration",
            "Metallic",
            "Dark"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "The idol's explosion also deals [Physical] damage equal to half of the sacrificed unit's max HP",
          "id": "bone_explosion",
          "name": "Bone Explosion",
          "tags": [
            "Fire",
            "Conjuration",
            "Metallic",
            "Dark"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "The Idol of Burning Sacrifice will instead consume the lowest HP unit each turn, regardless of their alignment",
          "id": "indiscriminate_hunger",
          "name": "Indiscriminate Hunger",
          "tags": [
            "Fire",
            "Conjuration",
            "Metallic",
            "Dark"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "After sacrificing 500 HP worth of units, summon a temporary Gilded Tyrant near the sacrificed unit",
          "id": "sufficient_sacrifice",
          "name": "Sufficient Sacrifice",
          "tags": [
            "Fire",
            "Conjuration",
            "Metallic",
            "Dark",
            "Holy"
          ],
          "unlocksItems": 2
        }
      ]
    },
    "spell_call_archon": {
      "asset": "UI/spell skill icons/call_archon.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 5,
        "max_charges": 3,
        "melee": false,
        "minion_damage": 14,
        "minion_duration": 14,
        "minion_health": 77,
        "minion_range": 7,
        "quick_cast": false,
        "range": 5,
        "requires_los": true,
        "shields": 3
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "boots": 1,
          "helmet": 4,
          "trinket": 4,
          "weapon": 9
        },
        "count": 20
      },
      "baseId": "call_archon",
      "className": "SummonArchon",
      "damageType": [],
      "description": "Summon a temporary Archon",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_call_archon.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/call_archon.png",
      "id": "spell_call_archon",
      "kind": "spell",
      "name": "Call Archon",
      "stats": [
        "range",
        "max_charges",
        "minion_duration",
        "minion_damage",
        "minion_health",
        "minion_range",
        "shields",
        "hp_cost",
        "storm_archon",
        "cascade",
        "healing",
        "flood"
      ],
      "tags": [
        "Lightning",
        "Holy",
        "Conjuration"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "The Archon's beam summons [Rain Clouds:nature] on affected tiles",
          "id": "flood_heralds",
          "name": "Flood Heralds",
          "tags": [
            "Lightning",
            "Holy",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "The Archon's beam also heals allies it passes through",
          "id": "healing_beam",
          "name": "Healing Beam",
          "tags": [
            "Lightning",
            "Holy",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "The Archon's beam arcs once to an enemy in line of sight of its target",
          "id": "beam_arc",
          "name": "Beam Arc",
          "tags": [
            "Lightning",
            "Holy",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Archons gain the [Ice] tag, [50% Ice:ice] resist, and their beam also deals [Ice] damage",
          "id": "storm_archon",
          "name": "Storm Archon",
          "tags": [
            "Lightning",
            "Holy",
            "Conjuration",
            "Ice"
          ],
          "unlocksItems": 3
        }
      ]
    },
    "spell_call_seraph": {
      "asset": "UI/spell skill icons/call_seraph.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 4,
        "max_charges": 1,
        "melee": false,
        "minion_damage": 14,
        "minion_duration": 25,
        "minion_health": 96,
        "quick_cast": false,
        "range": 4,
        "requires_los": true,
        "shields": 8
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 4,
          "boots": 1,
          "helmet": 4,
          "trinket": 4,
          "weapon": 9
        },
        "count": 22
      },
      "baseId": "call_seraph",
      "className": "SummonSeraphim",
      "damageType": [],
      "description": "Summon a temporary Seraph",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 2,
        "outgoingCount": 0,
        "pathCount": 1
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_call_seraph.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/call_seraph.png",
      "id": "spell_call_seraph",
      "kind": "spell",
      "name": "Call Seraph",
      "stats": [
        "range",
        "max_charges",
        "minion_duration",
        "minion_damage",
        "minion_health",
        "shields",
        "hp_cost",
        "holy_fire",
        "radius",
        "heal",
        "moonblade",
        "quick"
      ],
      "tags": [
        "Holy",
        "Fire",
        "Conjuration"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "The Seraphs gain [quickstep:translocation]",
          "id": "quickened_seraphs",
          "name": "Quickened Seraphs",
          "tags": [
            "Holy",
            "Fire",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "The Seraphs' cleave attack also deals [Arcane] damage",
          "id": "moonblade",
          "name": "Moonblade",
          "tags": [
            "Holy",
            "Fire",
            "Conjuration",
            "Arcane"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "The Seraphs heal allies within [{radius}:radius] tiles for 4 HP each turn",
          "id": "healing_aura",
          "name": "Healing Aura",
          "tags": [
            "Holy",
            "Fire",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "minion_damage": 2
          },
          "cost": 7,
          "damageType": [],
          "description": "The Seraphs gain a damage aura, dealing [{minion_damage}:minion_damage] [Fire] or [Holy] damage to enemies within [{radius}:radius] tiles each turn",
          "id": "holy_fire_aura",
          "name": "Holy Fire Aura",
          "tags": [
            "Holy",
            "Fire",
            "Conjuration"
          ]
        }
      ]
    },
    "spell_cantrip_cascade": {
      "asset": "UI/spell skill icons/cantrip_cascade.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 5,
        "max_charges": 3,
        "melee": false,
        "quick_cast": false,
        "range": 5,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "helmet": 2,
          "weapon": 6
        },
        "count": 9
      },
      "baseId": "cantrip_cascade",
      "className": "CantripCascade",
      "damageType": [],
      "description": "Cast each of your level 1 ranged [Sorcery] spells on each enemy in a cone",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_cantrip_cascade.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/cantrip_cascade.png",
      "id": "spell_cantrip_cascade",
      "kind": "spell",
      "name": "Cantrip Cascade",
      "stats": [
        "range",
        "max_charges",
        "hp_cost",
        "cast_twos",
        "multi",
        "cantrip_burst",
        "radius"
      ],
      "tags": [
        "Arcane",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Instead of a cone, Cantrip Cascade affects tiles in a [{radius}:radius] tile burst",
          "id": "cantrip_burst",
          "name": "Cantrip Burst",
          "tags": [
            "Arcane",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "",
          "id": "relentless_cascade",
          "name": "Relentless Cascade",
          "tags": [
            "Arcane",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "One of your cantrips is selected to be cast 3 times instead of only once per enemy",
          "id": "triple_tap",
          "name": "Triple Tap",
          "tags": [
            "Arcane",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "Cantrip Cascade also casts a random level 2 [Sorcery] spell you know on each affected unit",
          "id": "evocation_amalgamation",
          "name": "Evocation Amalgamation",
          "tags": [
            "Arcane",
            "Sorcery"
          ]
        }
      ]
    },
    "spell_carnival_of_pain": {
      "asset": "UI/spell skill icons/carnival_of_pain.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "duration": 5,
        "hp_cost": 0,
        "level": 4,
        "max_charges": 1,
        "melee": false,
        "num_targets": 3,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "boots": 1,
          "helmet": 3,
          "trinket": 4,
          "weapon": 8
        },
        "count": 18
      },
      "baseId": "carnival_of_pain",
      "className": "CarnivalOfPain",
      "damageType": [],
      "description": "When an enemy takes [Physical], [Fire], or [Lightning] damage, their [3:num_targets] nearest allies in line of sight take half that much [Dark] damage\nLasts [5:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 2,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_carnival_of_pain.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/carnival_of_pain.png",
      "id": "spell_carnival_of_pain",
      "kind": "spell",
      "name": "Carnival of Pain",
      "stats": [
        "range",
        "max_charges",
        "duration",
        "num_targets",
        "hp_cost",
        "allied",
        "summon_tormentor",
        "death_power",
        "lifesteal"
      ],
      "tags": [
        "Dark",
        "Chaos",
        "Enchantment"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "If the triggering damage killed the enemy, the bolt coming out of that enemy deals double damage",
          "id": "death_power",
          "name": "Death Power",
          "tags": [
            "Dark",
            "Chaos",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Carnival of Pain heals you for 50% the damage it deals",
          "id": "lifesteal",
          "name": "Lifesteal",
          "tags": [
            "Dark",
            "Chaos",
            "Enchantment",
            "Blood"
          ],
          "unlocksItems": 2
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 7,
          "damageType": [],
          "description": "Carnival of Pain triggers when any unit takes damage, not only enemies",
          "id": "crowd_participation",
          "name": "Crowd Participation",
          "tags": [
            "Dark",
            "Chaos",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 7,
          "damageType": [],
          "description": "Every 3rd kill by Carnival of Pain casts your Fiery Tormentor spell at the slain unit's location",
          "id": "torment",
          "name": "Torment",
          "tags": [
            "Dark",
            "Chaos",
            "Enchantment",
            "Conjuration"
          ]
        }
      ]
    },
    "spell_chain_lightning": {
      "asset": "UI/spell skill icons/chain_lightning.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 24,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 3,
        "melee": false,
        "quick_cast": false,
        "range": 5,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "helmet": 2,
          "trinket": 1,
          "weapon": 11
        },
        "count": 14
      },
      "baseId": "chain_lightning",
      "className": "ChainLightningSpell",
      "damageType": [
        "Lightning"
      ],
      "description": "Unleash an arcing bolt of electricity dealing [24:damage] [Lightning] damage\nThe bolt repeatedly arcs to new targets within range of the previous target\nEach arc deals damage to units in a beam\nThe bolt terminates when it cannot arc to any new targets",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 3,
        "outgoingCount": 2,
        "pathCount": 4
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_chain_lightning.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/chain_lightning.png",
      "id": "spell_chain_lightning",
      "kind": "spell",
      "name": "Chain Lightning",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "hp_cost",
        "jolting",
        "shield",
        "weathercraft",
        "chain_fireball"
      ],
      "tags": [
        "Lightning",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "Affected units are [stunned:stun] for 1 turn",
          "id": "jolting_chain",
          "name": "Jolting Chain",
          "tags": [
            "Lightning",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Chain Lightning can arc to [Blizzards:ice], [Rain Clouds:nature], and [Storm Clouds:lightning]",
          "id": "cloud_conductance",
          "name": "Cloud Conductance",
          "tags": [
            "Lightning",
            "Sorcery",
            "Nature"
          ],
          "unlocksItems": 4
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Chain Lightning can arc to friendly targets\nFriendly units hit by Chain Lightning gain [1 SH:shields] instead of being damaged",
          "id": "lightning_shield",
          "name": "Lightning Shield",
          "tags": [
            "Lightning",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 7,
          "damageType": [
            "Fire"
          ],
          "description": "Cast Fireball on each tile Chain Lightning arcs to",
          "id": "chain_fireball",
          "name": "Chain Fireball",
          "tags": [
            "Lightning",
            "Sorcery",
            "Fire"
          ],
          "unlocksItems": 6
        }
      ]
    },
    "spell_chaos_barrage": {
      "asset": "UI/spell skill icons/chaos_barrage.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 6,
        "hp_cost": 0,
        "level": 2,
        "max_charges": 6,
        "melee": false,
        "num_targets": 9,
        "quick_cast": false,
        "range": 6,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "helmet": 3,
          "trinket": 2,
          "weapon": 11
        },
        "count": 16
      },
      "baseId": "chaos_barrage",
      "className": "ChaosBarrage",
      "damageType": [
        "Fire",
        "Lightning",
        "Physical"
      ],
      "description": "Shoot up to [9:num_targets] bolts of chaotic energy at units in a cone\nEach bolt deals [6:damage] [Fire], [Lightning], or [Physical] damage",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_chaos_barrage.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/chaos_barrage.png",
      "id": "spell_chaos_barrage",
      "kind": "spell",
      "name": "Chaos Barrage",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "num_targets",
        "hp_cost",
        "endless",
        "max_channel",
        "smart_targeting",
        "shockwaves"
      ],
      "tags": [
        "Chaos",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "You may channel Chaos Barrage for [{max_channel}:max_channel] turns",
          "id": "endless_barrage",
          "name": "Endless Barrage",
          "tags": [
            "Chaos",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Chaos Barrage will not harm allies\nEach bolt will use the damage type its target resists the least",
          "id": "smart_bolts",
          "name": "Smart Bolts",
          "tags": [
            "Chaos",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Each bolt also deals damage to adjacent tiles",
          "id": "shockwaves",
          "name": "Shockwaves",
          "tags": [
            "Chaos",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "",
          "id": "mega_barrage",
          "name": "Mega Barrage",
          "tags": [
            "Chaos",
            "Sorcery"
          ]
        }
      ]
    },
    "spell_chill_wind": {
      "asset": "UI/spell skill icons/chill_wind.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 21,
        "duration": 6,
        "hp_cost": 0,
        "level": 5,
        "max_charges": 1,
        "melee": false,
        "quick_cast": false,
        "range": 36,
        "requires_los": false
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "helmet": 2,
          "trinket": 1,
          "weapon": 11
        },
        "count": 16
      },
      "baseId": "chill_wind",
      "className": "IceWind",
      "damageType": [],
      "description": "Inflict [21:damage] [Ice] damage and [6:duration] turns of [frozen] on units in a 3 tile wide line perpendicular to the caster",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 2,
        "outgoingCount": 2,
        "pathCount": 1
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_chill_wind.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/chill_wind.png",
      "id": "spell_chill_wind",
      "kind": "spell",
      "name": "Chill Wind",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "duration",
        "hp_cost",
        "blaze",
        "mirror",
        "storm"
      ],
      "tags": [
        "Ice",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Chill Wind also affects a symmetric area behind the caster",
          "id": "dual_wind",
          "name": "Dual Wind",
          "tags": [
            "Ice",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "",
          "id": "harsh_winds",
          "name": "Harsh Winds",
          "tags": [
            "Ice",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "damage": 5,
            "duration": 5
          },
          "cost": 4,
          "damageType": [],
          "description": "Chill Wind creates [Blizzards:ice] on affected tiles\nThe clouds deal [{damage}:damage] [Ice] damage and last for [{duration}:duration] turns",
          "id": "storm_front",
          "name": "Storm Front",
          "tags": [
            "Ice",
            "Sorcery",
            "Nature"
          ],
          "unlocksItems": 5
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "When Chill Wind kills a unit, cast Blazerip at their location",
          "id": "arcane_storm",
          "name": "Arcane Storm",
          "tags": [
            "Ice",
            "Sorcery",
            "Arcane"
          ],
          "unlocksItems": 3
        }
      ]
    },
    "spell_choir_of_angels": {
      "asset": "UI/spell skill icons/choir_of_angels.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 4,
        "max_charges": 2,
        "melee": false,
        "minion_damage": 2,
        "minion_duration": 12,
        "minion_health": 12,
        "num_summons": 3,
        "quick_cast": false,
        "range": 0,
        "requires_los": true,
        "shields": 2
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "boots": 1,
          "helmet": 3,
          "trinket": 3,
          "weapon": 5
        },
        "count": 14
      },
      "baseId": "choir_of_angels",
      "className": "ChoirOfAngels",
      "damageType": [],
      "description": "Summon [3:num_summons] temporary Angelic Singers",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 2,
        "outgoingCount": 1,
        "pathCount": 3
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_choir_of_angels.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/choir_of_angels.png",
      "id": "spell_choir_of_angels",
      "kind": "spell",
      "name": "Choir of Angels",
      "stats": [
        "range",
        "max_charges",
        "minion_duration",
        "minion_damage",
        "minion_health",
        "shields",
        "num_summons",
        "hp_cost",
        "cast_deathbolt",
        "unending_song",
        "salvation"
      ],
      "tags": [
        "Holy",
        "Conjuration"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Angelic Singers reincarnate once on death",
          "id": "unending_song",
          "name": "Unending Song",
          "tags": [
            "Holy",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "When an Angelic Singer would heal an ally, it removes a debuff first",
          "id": "song_of_salvation",
          "name": "Song of Salvation",
          "tags": [
            "Holy",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "",
          "id": "massive_chorus",
          "name": "Massive Chorus",
          "tags": [
            "Holy",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "Angelic Singers gain the [Dark] tag and can cast your Death Bolt on a 4 turn cooldown\nTheir song now only damages enemies",
          "id": "dual_angels",
          "name": "Dual Angels",
          "tags": [
            "Holy",
            "Conjuration",
            "Dark"
          ],
          "unlocksItems": 3
        }
      ]
    },
    "spell_combust_poison": {
      "asset": "UI/spell skill icons/combust_poison.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 4,
        "max_charges": 3,
        "melee": false,
        "quick_cast": false,
        "radius": 1,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "helmet": 1,
          "trinket": 1,
          "weapon": 11
        },
        "count": 14
      },
      "baseId": "combust_poison",
      "className": "IgnitePoison",
      "damageType": [],
      "description": "Consume all [poison] on enemies\nDeal [Fire] damage in a [1:radius] tile burst around each affected enemy equal to the remaining duration of the [poison] consumed",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 2,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_combust_poison.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/combust_poison.png",
      "id": "spell_combust_poison",
      "kind": "spell",
      "name": "Combust Poison",
      "stats": [
        "range",
        "max_charges",
        "radius",
        "hp_cost",
        "stun",
        "duration",
        "deal_poison",
        "healing",
        "ignition",
        "damage"
      ],
      "tags": [
        "Sorcery",
        "Fire",
        "Nature"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "The [Fire] damage cannot be less than [{damage}:damage], regardless of the remaining [poison] duration",
          "id": "ignition_principle",
          "name": "Ignition Principle",
          "tags": [
            "Sorcery",
            "Fire",
            "Nature"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "The flames heal allies instead of harming them",
          "id": "flame_rave",
          "name": "Flame Rave",
          "tags": [
            "Sorcery",
            "Fire",
            "Nature"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "The explosion applies [poison] to damaged targets for half of the [Fire] damage taken",
          "id": "toxic_embers",
          "name": "Toxic Embers",
          "tags": [
            "Sorcery",
            "Fire",
            "Nature"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "[Stuns] the [poisoned] targets for [{duration}:duration] turns",
          "id": "paralyzing_combustion",
          "name": "Paralyzing Combustion",
          "tags": [
            "Sorcery",
            "Fire",
            "Nature"
          ]
        }
      ]
    },
    "spell_darkness": {
      "asset": "UI/spell skill icons/darkness.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "duration": 5,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 1,
        "melee": false,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "boots": 1,
          "helmet": 3,
          "trinket": 3,
          "weapon": 5
        },
        "count": 14
      },
      "baseId": "darkness",
      "className": "Darkness",
      "damageType": [],
      "description": "Each turn, [blind] all units for 1 turn\nLasts [5:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 2,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_darkness.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/darkness.png",
      "id": "spell_darkness",
      "kind": "spell",
      "name": "Darkness",
      "stats": [
        "range",
        "max_charges",
        "duration",
        "hp_cost",
        "vamp",
        "curse",
        "num_targets",
        "darkvision"
      ],
      "tags": [
        "Dark",
        "Enchantment"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "When you cast this spell, summon either a Wild Man or a Vampire Bat near each enemy",
          "id": "nightstalkers",
          "name": "Nightstalkers",
          "tags": [
            "Dark",
            "Enchantment",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Casting Darkness also casts Shadow Hex on up to [{num_targets}:num_targets] enemies in your line of sight",
          "id": "eyes_of_cursed_dark",
          "name": "Eyes Of Cursed Dark",
          "tags": [
            "Dark",
            "Enchantment",
            "Eye"
          ],
          "unlocksItems": 2
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "",
          "id": "long_night",
          "name": "Long Night",
          "tags": [
            "Dark",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "Only [blinds] enemies",
          "id": "darkvision",
          "name": "Darkvision",
          "tags": [
            "Dark",
            "Enchantment"
          ]
        }
      ]
    },
    "spell_death_bolt": {
      "asset": "UI/spell skill icons/death_bolt.png",
      "attributes": {
        "can_target_empty": false,
        "cool_down": 0,
        "damage": 10,
        "hp_cost": 0,
        "level": 1,
        "max_charges": 20,
        "melee": false,
        "minion_damage": 5,
        "quick_cast": false,
        "range": 6,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "boots": 1,
          "helmet": 5,
          "trinket": 4,
          "weapon": 11
        },
        "count": 23
      },
      "baseId": "death_bolt",
      "className": "DeathBolt",
      "damageType": [
        "Dark"
      ],
      "description": "Deals [10:damage] [Dark] damage to a target\nSlain [Living] units are raised as Skeletons\nRaised skeletons inherit the max HP of the slain unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 1,
        "outgoingCount": 0,
        "pathCount": 3
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_death_bolt.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/death_bolt.png",
      "id": "spell_death_bolt",
      "kind": "spell",
      "name": "Death Bolt",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "minion_damage",
        "hp_cost",
        "explosion",
        "radius",
        "battery",
        "winter",
        "blood"
      ],
      "tags": [
        "Dark",
        "Sorcery",
        "Conjuration"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Death Bolt heals the caster for any damage it deals",
          "id": "blood_bolt",
          "name": "Blood Bolt",
          "tags": [
            "Dark",
            "Sorcery",
            "Conjuration",
            "Blood"
          ],
          "unlocksItems": 4
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [
            "Ice"
          ],
          "description": "Deathbolt also deals [Ice] damage",
          "id": "winter_bolt",
          "name": "Winter Bolt",
          "tags": [
            "Dark",
            "Sorcery",
            "Conjuration",
            "Ice"
          ],
          "unlocksItems": 6
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "The Wizard gains [Soulcharge:dark] when Death Bolt kills a target\n[Soulcharge:dark] grants 1 [damage] to [Dark] spells and equipment until the level ends",
          "id": "soul_battery",
          "name": "Soul Battery",
          "tags": [
            "Dark",
            "Sorcery",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "damage": 3
          },
          "cost": 5,
          "damageType": [],
          "description": "Killing a unit with Death Bolt deals [{damage}:damage] [Dark] and [Physical] damage to enemies in a [{radius}:radius] tile radius around them",
          "id": "corpse_explosion",
          "name": "Corpse Explosion",
          "tags": [
            "Dark",
            "Sorcery",
            "Conjuration"
          ]
        }
      ]
    },
    "spell_death_chill": {
      "asset": "UI/spell skill icons/death_chill.png",
      "attributes": {
        "can_target_empty": false,
        "cool_down": 0,
        "damage": 11,
        "duration": 5,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 7,
        "melee": false,
        "quick_cast": false,
        "radius": 3,
        "range": 6,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 4,
          "boots": 1,
          "helmet": 5,
          "trinket": 3,
          "weapon": 14
        },
        "count": 27
      },
      "baseId": "death_chill",
      "className": "DeathChill",
      "damageType": [
        "Dark"
      ],
      "description": "Deal [11:damage] [Dark] damage to the target each turn for [5:duration] turns\nWhen a unit dies while afflicted with Death Chill, they explode in a flurry of ice\nThe explosion inflicts [11:damage] [Ice] damage and [5:duration] turns of [frozen] on enemies within [3:radius] tiles",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 1,
        "outgoingCount": 0,
        "pathCount": 1
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_death_chill.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/death_chill.png",
      "id": "spell_death_chill",
      "kind": "spell",
      "name": "Death Chill",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "radius",
        "duration",
        "hp_cost",
        "lockjaw",
        "intensity",
        "mass_deathchill",
        "deal_poison"
      ],
      "tags": [
        "Enchantment",
        "Dark",
        "Ice"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Death Chill will stack instead of refreshing the duration on subsequent applications",
          "id": "compounding_chill",
          "name": "Compounding Chill",
          "tags": [
            "Enchantment",
            "Dark",
            "Ice"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [
            "Poison"
          ],
          "description": "Death Chill also deals [Poison] damage each turn",
          "id": "slaughter_chill",
          "name": "Slaughter Chill",
          "tags": [
            "Enchantment",
            "Dark",
            "Ice"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Applying Death Chill applies [silence] for the same duration",
          "id": "lockjaw",
          "name": "Lockjaw",
          "tags": [
            "Enchantment",
            "Dark",
            "Ice"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 7,
          "damageType": [],
          "description": "Applies Death Chill to a connected group of enemies",
          "id": "mass_death_chill",
          "name": "Mass Death Chill",
          "tags": [
            "Enchantment",
            "Dark",
            "Ice"
          ]
        }
      ]
    },
    "spell_death_cleave": {
      "asset": "UI/spell skill icons/death_cleave.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "duration": 4,
        "hp_cost": 0,
        "level": 4,
        "max_charges": 3,
        "melee": false,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 3,
          "boots": 1,
          "helmet": 3,
          "trinket": 4,
          "weapon": 6
        },
        "count": 17
      },
      "baseId": "death_cleave",
      "className": "DeathCleaveSpell",
      "damageType": [],
      "description": "When a spell you cast kills its target, that spell is recast on a random valid enemy target\nLasts [4:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_death_cleave.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/death_cleave.png",
      "id": "spell_death_cleave",
      "kind": "spell",
      "name": "Death Cleave",
      "stats": [
        "range",
        "max_charges",
        "duration",
        "hp_cost",
        "marked_for_death",
        "minion_health",
        "minion_damage",
        "execution_ledger",
        "cleaving_whirlwind",
        "lightning_cleave"
      ],
      "tags": [
        "Enchantment",
        "Arcane",
        "Dark"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "When your spell kills its primary target, attempt to teleport to that location",
          "id": "cleaving_whirlwind",
          "name": "Cleaving Whirlwind",
          "tags": [
            "Enchantment",
            "Arcane",
            "Dark",
            "Translocation"
          ],
          "unlocksItems": 1
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Your [Lightning] spells and equipment gain the following bonuses:\n+100% [num targets:num_targets]\n+100% [radius:radius]",
          "id": "lightning_cleave",
          "name": "Lightning Cleave",
          "tags": [
            "Enchantment",
            "Arcane",
            "Dark",
            "Lightning"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "When you cast this spell, a random enemy gains the [Death Bounty:dark] debuff\nWhen they die, cast Death Cleave again for free",
          "id": "execution_ledger",
          "name": "Execution Ledger",
          "tags": [
            "Enchantment",
            "Arcane",
            "Dark"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "If a spell you manually cast on an enemy fails to kill its target, summon a Reaper near their location\nThe Reaper will disappear if the marked target dies",
          "id": "marked_for_death",
          "name": "Marked for Death",
          "tags": [
            "Enchantment",
            "Arcane",
            "Dark",
            "Conjuration"
          ]
        }
      ]
    },
    "spell_death_clock": {
      "asset": "UI/spell skill icons/death_clock.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 12,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 12,
        "melee": false,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "boots": 1,
          "helmet": 3,
          "trinket": 6,
          "weapon": 10
        },
        "count": 22
      },
      "baseId": "death_clock",
      "className": "DeathClock",
      "damageType": [
        "Physical",
        "Dark"
      ],
      "description": "Deal [12:damage] [Dark] and [Physical] damage in the shape of a clock\nThe direction of the hour hand is determined by the current turn number\nAffected units are [stunned:stun] for 1 turn\nWill not affect the caster",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_death_clock.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/death_clock.png",
      "id": "spell_death_clock",
      "kind": "spell",
      "name": "Death Clock",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "hp_cost",
        "ritual",
        "max_channel",
        "sundial",
        "stopwatch",
        "duration",
        "echo"
      ],
      "tags": [
        "Dark",
        "Metallic",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "Casts again in 24 turns",
          "id": "daily_death",
          "name": "Daily Death",
          "tags": [
            "Dark",
            "Metallic",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "[Stun] duration now scales with [duration:duration]",
          "id": "stopwatch",
          "name": "Stopwatch",
          "tags": [
            "Dark",
            "Metallic",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [
            "Fire"
          ],
          "description": "Death Clock also deals [Fire] damage",
          "id": "sundial",
          "name": "Sundial",
          "tags": [
            "Dark",
            "Metallic",
            "Sorcery",
            "Fire"
          ],
          "unlocksItems": 4
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 8,
          "damageType": [],
          "description": "Death Clock may be channeled for up to [{max_channel}:max_channel] turns\nIf you complete the ritual, units hit by the final cast have their max HP halved",
          "id": "ritual_of_mortality",
          "name": "Ritual of Mortality",
          "tags": [
            "Dark",
            "Metallic",
            "Sorcery",
            "Ritual"
          ],
          "unlocksItems": 1
        }
      ]
    },
    "spell_death_shock": {
      "asset": "UI/spell skill icons/death_shock.png",
      "attributes": {
        "can_target_empty": false,
        "cool_down": 0,
        "damage": 17,
        "hp_cost": 0,
        "level": 5,
        "max_charges": 6,
        "melee": false,
        "quick_cast": false,
        "range": 6,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "boots": 1,
          "helmet": 4,
          "trinket": 4,
          "weapon": 15
        },
        "count": 26
      },
      "baseId": "death_shock",
      "className": "DeathShock",
      "damageType": [
        "Dark",
        "Lightning"
      ],
      "description": "Deal [17:damage] [Lightning] and [Dark] damage to the target\nIf the target is slain, this effect bounces to another enemy within range of the slain unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_death_shock.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/death_shock.png",
      "id": "spell_death_shock",
      "kind": "spell",
      "name": "Death Shock",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "hp_cost",
        "corpse",
        "minion_damage",
        "minion_range",
        "momentum",
        "shield_burn",
        "fire"
      ],
      "tags": [
        "Sorcery",
        "Dark",
        "Lightning"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Before dealing damage, removes all [SH:shields]",
          "id": "shield_burn",
          "name": "Shield Burn",
          "tags": [
            "Sorcery",
            "Dark",
            "Lightning"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "If Death Shock kills one or more units, summon a Corpse Construct that inherits the combined HP of the slain units",
          "id": "corpse_construct",
          "name": "Corpse Construct",
          "tags": [
            "Sorcery",
            "Dark",
            "Lightning",
            "Conjuration"
          ],
          "unlocksItems": 1
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [
            "Fire"
          ],
          "description": "Death Shock also deals [Fire] damage",
          "id": "fire_shock",
          "name": "Fire Shock",
          "tags": [
            "Sorcery",
            "Dark",
            "Lightning",
            "Fire"
          ],
          "unlocksItems": 5
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "When Death Shock kills its target, its damage increases by 25% before moving to its next target",
          "id": "shocking_momentum",
          "name": "Shocking Momentum",
          "tags": [
            "Sorcery",
            "Dark",
            "Lightning"
          ]
        }
      ]
    },
    "spell_demon_form": {
      "asset": "UI/spell skill icons/demon_form.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "duration": 12,
        "hp_cost": 0,
        "level": 7,
        "max_charges": 1,
        "melee": false,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "helmet": 2,
          "weapon": 5
        },
        "count": 7
      },
      "baseId": "demon_form",
      "className": "DemonFormSpell",
      "damageType": [],
      "description": "Transform into a flying [Demon]\nEach turn, your other [Chaos] spells regain 1 charge\nGain [100 Dark:dark], [50 Physical:physical], [50 Fire:fire], and [50 Lightning:lightning] resistance\nLasts [12:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_demon_form.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/demon_form.png",
      "id": "spell_demon_form",
      "kind": "spell",
      "name": "Demon Form",
      "stats": [
        "range",
        "max_charges",
        "duration",
        "hp_cost",
        "royal",
        "ultimate",
        "siphon",
        "imps",
        "minion_health",
        "minion_damage",
        "minion_range",
        "minion_duration"
      ],
      "tags": [
        "Chaos",
        "Enchantment"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "When an enemy is slain by [Fire], [Lightning], or [Physical] damage, summon a Chaos Imp at their location",
          "id": "chaos_summoner",
          "name": "Chaos Summoner",
          "tags": [
            "Chaos",
            "Enchantment",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "While in Demon Form, when another unit takes [Dark] damage they lose 1 max HP and you heal 1 HP\nIf your health is already full, gain 1 [SH:shields] instead",
          "id": "soul_hunger",
          "name": "Soul Hunger",
          "tags": [
            "Chaos",
            "Enchantment",
            "Dark"
          ],
          "unlocksItems": 8
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 8,
          "damageType": [],
          "description": "Casting Demon Form first casts your other self-targeted [Enchantment] spells",
          "id": "ultimate_form",
          "name": "Ultimate Form",
          "tags": [
            "Chaos",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 9,
          "damageType": [],
          "description": "When you cast this spell, [Demons:demon] in your line of sight with less HP than you join your team",
          "id": "demonic_royalty",
          "name": "Demonic Royalty",
          "tags": [
            "Chaos",
            "Enchantment"
          ]
        }
      ]
    },
    "spell_demonic_ritual": {
      "asset": "UI/spell skill icons/demonic_ritual.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 66,
        "level": 6,
        "max_channel": 6,
        "max_charges": 6,
        "melee": false,
        "minion_damage": 8,
        "minion_health": 166,
        "minion_range": 6,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "boots": 1,
          "helmet": 3,
          "trinket": 1,
          "weapon": 6
        },
        "count": 12
      },
      "baseId": "demonic_ritual",
      "className": "DemonicRitual",
      "damageType": [],
      "description": "Summon a powerful [fiend:demon] with the [Ritual Bound:ritual] buff\nIf the ritual is interrupted or [Ritual Bound:ritual] is removed before the ritual is complete, the [fiend:demon] joins the enemy team before disappearing [6:max_channel] turns later",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_demonic_ritual.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/demonic_ritual.png",
      "id": "spell_demonic_ritual",
      "kind": "spell",
      "name": "Demonic Ritual",
      "stats": [
        "range",
        "max_charges",
        "minion_damage",
        "minion_health",
        "minion_range",
        "max_channel",
        "hp_cost",
        "grand",
        "gate",
        "circle",
        "stun",
        "duration"
      ],
      "tags": [
        "Blood",
        "Chaos",
        "Conjuration",
        "Ritual"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Enemy [Demons:demon] are [stunned] for [{duration}:duration] turns each turn you channel this spell",
          "id": "solomon_s_binding",
          "name": "Solomon's Binding",
          "tags": [
            "Blood",
            "Chaos",
            "Conjuration",
            "Ritual",
            "Word"
          ],
          "unlocksItems": 1
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Gain 100% resistance to all damage types while channeling Demonic Ritual",
          "id": "inviolate_ritual",
          "name": "Inviolate Ritual",
          "tags": [
            "Blood",
            "Chaos",
            "Conjuration",
            "Ritual"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "Once per Rift, if you complete the ritual while standing atop it, an allied [fiend:demon] will come forth from that location every 6 turns until the realm is complete",
          "id": "the_gate_and_the_key",
          "name": "The Gate and the Key",
          "tags": [
            "Blood",
            "Chaos",
            "Conjuration",
            "Ritual",
            "Translocation"
          ],
          "unlocksItems": 1
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 9,
          "damageType": [],
          "description": "Rather than a single [fiend:demon], summon one of each",
          "id": "grand_ritual",
          "name": "Grand Ritual",
          "tags": [
            "Blood",
            "Chaos",
            "Conjuration",
            "Ritual"
          ]
        }
      ]
    },
    "spell_devour_flesh": {
      "asset": "UI/spell skill icons/devour_flesh.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 0,
        "melee": true,
        "quick_cast": false,
        "range": 1,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "helmet": 1,
          "weapon": 3
        },
        "count": 4
      },
      "baseId": "devour_flesh",
      "className": "DevourFlesh",
      "damageType": [],
      "description": "Devour an allied [Living] unit to heal yourself for its current HP",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_devour_flesh.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/devour_flesh.png",
      "id": "spell_devour_flesh",
      "kind": "spell",
      "name": "Devour Flesh",
      "stats": [
        "range",
        "max_charges",
        "hp_cost",
        "absorption",
        "demon",
        "heal_allies",
        "radius",
        "control"
      ],
      "tags": [
        "Blood"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "Instead of killing the target, only steal as much HP as you are missing, leaving the target with at least 1 HP",
          "id": "controlled_appetite",
          "name": "Controlled Appetite",
          "tags": [
            "Blood"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Devour Flesh can target [Demon:demon] allies",
          "id": "demonic_appetite",
          "name": "Demonic Appetite",
          "tags": [
            "Blood",
            "Chaos"
          ],
          "unlocksItems": 1
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Also heals your other allies within [{radius}:radius] tiles of the target",
          "id": "mass_feeding",
          "name": "Mass Feeding",
          "tags": [
            "Blood"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Gain resistance to the target's most resisted damage type equal to their resistance\nLasts until the end of the level",
          "id": "resistance_absorption",
          "name": "Resistance Absorption",
          "tags": [
            "Blood"
          ]
        }
      ]
    },
    "spell_devour_mind": {
      "asset": "UI/spell skill icons/devour_mind.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 24,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 7,
        "melee": false,
        "minion_damage": 5,
        "quick_cast": false,
        "range": 3,
        "requires_los": false
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 3,
          "boots": 1,
          "helmet": 5,
          "trinket": 4,
          "weapon": 13
        },
        "count": 26
      },
      "baseId": "devour_mind",
      "className": "DevourMind",
      "damageType": [
        "Arcane",
        "Dark"
      ],
      "description": "Deal [24:damage] [Arcane] and [Dark] damage to an enemy\nThen, if the target is below 50% HP, deal that damage again\nIf this kills the target, they are raised as a Zombie\nCan only target [Living], [Demon], and [Arcane] enemies",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 1,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_devour_mind.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/devour_mind.png",
      "id": "spell_devour_mind",
      "kind": "spell",
      "name": "Devour Mind",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "minion_damage",
        "hp_cost",
        "brain_freeze",
        "duration",
        "gluttony",
        "drain",
        "horde_mode"
      ],
      "tags": [
        "Arcane",
        "Conjuration",
        "Dark",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "If Devour Mind kills the target, regain a charge of a random [Arcane] spell",
          "id": "arcane_drain",
          "name": "Arcane Drain",
          "tags": [
            "Arcane",
            "Conjuration",
            "Dark",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "If Devour Mind kills the target, heal for half the target's max HP",
          "id": "gluttony",
          "name": "Gluttony",
          "tags": [
            "Arcane",
            "Conjuration",
            "Dark",
            "Sorcery",
            "Blood"
          ],
          "unlocksItems": 4
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [
            "Ice"
          ],
          "description": "Devour Mind also deals [Ice] damage\nIf the target lives, they are [frozen] for [{duration}:duration] turns\nAdditionally, each of their spells gains +[{duration}:duration] cooldown",
          "id": "brain_freeze",
          "name": "Brain Freeze",
          "tags": [
            "Arcane",
            "Conjuration",
            "Dark",
            "Sorcery",
            "Ice"
          ],
          "unlocksItems": 5
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 7,
          "damageType": [],
          "description": "Zombies raised by this spell can cast it on a 9 turn cooldown",
          "id": "horde_mode",
          "name": "Horde Mode",
          "tags": [
            "Arcane",
            "Conjuration",
            "Dark",
            "Sorcery"
          ]
        }
      ]
    },
    "spell_disperse": {
      "asset": "UI/spell skill icons/disperse.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 2,
        "max_charges": 15,
        "melee": false,
        "quick_cast": false,
        "radius": 3,
        "range": 6,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "helmet": 3,
          "trinket": 1,
          "weapon": 7
        },
        "count": 13
      },
      "baseId": "disperse",
      "className": "Disperse",
      "damageType": [],
      "description": "Teleport all units in a [3:radius] tile radius to random locations\nThe caster is unaffected",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 2,
        "outgoingCount": 2,
        "pathCount": 3
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_disperse.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/disperse.png",
      "id": "spell_disperse",
      "kind": "spell",
      "name": "Disperse",
      "stats": [
        "range",
        "max_charges",
        "radius",
        "hp_cost",
        "far_sending",
        "void_sickness",
        "duration",
        "shields",
        "violent"
      ],
      "tags": [
        "Arcane",
        "Sorcery",
        "Translocation"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Teleported allies gain [{shields} SH:shields]",
          "id": "protective_warp",
          "name": "Protective Warp",
          "tags": [
            "Arcane",
            "Sorcery",
            "Translocation"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Teleported enemies receive [{duration}:duration] turns of [silence] and [poison]",
          "id": "void_sickness",
          "name": "Void Sickness",
          "tags": [
            "Arcane",
            "Sorcery",
            "Translocation",
            "Dark"
          ],
          "unlocksItems": 8
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Instead of being randomly teleported, targets are sent as far away from the caster as possible",
          "id": "far_sending",
          "name": "Far Sending",
          "tags": [
            "Arcane",
            "Sorcery",
            "Translocation"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [
            "Arcane"
          ],
          "description": "Cast Magic Missile on teleported enemies",
          "id": "violent_warp",
          "name": "Violent Warp",
          "tags": [
            "Arcane",
            "Sorcery",
            "Translocation"
          ]
        }
      ]
    },
    "spell_dispersion_field": {
      "asset": "UI/spell skill icons/dispersion_field.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "duration": 10,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 3,
        "melee": false,
        "num_targets": 3,
        "quick_cast": false,
        "radius": 4,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "helmet": 2,
          "trinket": 3,
          "weapon": 6
        },
        "count": 13
      },
      "baseId": "dispersion_field",
      "className": "DispersionFieldSpell",
      "damageType": [],
      "description": "Each turn, teleport [3:num_targets] enemies in a [4:radius] tile radius to random locations on the map\nLasts [10:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_dispersion_field.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/dispersion_field.png",
      "id": "spell_dispersion_field",
      "kind": "spell",
      "name": "Dispersion Field",
      "stats": [
        "range",
        "max_charges",
        "radius",
        "duration",
        "num_targets",
        "hp_cost",
        "bombs_away",
        "damage",
        "planar_travel",
        "fear"
      ],
      "tags": [
        "Enchantment",
        "Arcane",
        "Translocation"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "Teleported enemies take damage of a random type equal to the distance traveled",
          "id": "planar_travel",
          "name": "Planar Travel",
          "tags": [
            "Enchantment",
            "Arcane",
            "Translocation",
            "Chaos"
          ],
          "unlocksItems": 2
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "",
          "id": "num_targets",
          "name": "Num Targets",
          "tags": [
            "Enchantment",
            "Arcane",
            "Translocation"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "radius": 2
          },
          "cost": 4,
          "damageType": [],
          "description": "Teleported enemies receive the Time Bomb debuff\nTime Bomb deals a fixed [1 Arcane:arcane] damage per turn\nIf the debuff is removed or the unit dies, the bomb explodes, destroying walls and dealing [{damage}:damage] [Arcane] damage in a [{radius}:radius] tile burst",
          "id": "bombs_away",
          "name": "Bombs Away",
          "tags": [
            "Enchantment",
            "Arcane",
            "Translocation"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "duration": 2
          },
          "cost": 4,
          "damageType": [],
          "description": "Enemies are [feared] for [{duration}:duration] turns after being dispersed",
          "id": "hodophobia",
          "name": "Hodophobia",
          "tags": [
            "Enchantment",
            "Arcane",
            "Translocation"
          ]
        }
      ]
    },
    "spell_dominate": {
      "asset": "UI/spell skill icons/dominate.png",
      "attributes": {
        "can_target_empty": true,
        "check_cur_hp": 0,
        "cool_down": 0,
        "damage": 40,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 4,
        "melee": false,
        "quick_cast": false,
        "range": 4,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "helmet": 3,
          "weapon": 7
        },
        "count": 11
      },
      "baseId": "dominate",
      "className": "Dominate",
      "damageType": [],
      "description": "Target enemy with no more than [40:damage] max HP becomes your minion",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 5,
        "outgoingCount": 1,
        "pathCount": 8
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_dominate.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/dominate.png",
      "id": "spell_dominate",
      "kind": "spell",
      "name": "Dominate",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "hp_cost",
        "death_lord",
        "cult_leader",
        "check_cur_hp"
      ],
      "tags": [
        "Arcane",
        "Enchantment"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Dominate units based on their current HP instead of max HP",
          "id": "brute_force",
          "name": "Brute Force",
          "tags": [
            "Arcane",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Increase the maximum HP threshold of units which can be Dominated",
          "id": "conqueror",
          "name": "Conqueror",
          "tags": [
            "Arcane",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 7,
          "damageType": [],
          "description": "Dominated units can cast your Dominate on a 30 turn cooldown",
          "id": "cult_leader",
          "name": "Cult Leader",
          "tags": [
            "Arcane",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 8,
          "damageType": [],
          "description": "You may Dominate [Undead] units regardless of their HP",
          "id": "death_lord",
          "name": "Death Lord",
          "tags": [
            "Arcane",
            "Enchantment",
            "Dark"
          ],
          "unlocksItems": 11
        }
      ]
    },
    "spell_dragon_breath": {
      "asset": "UI/spell skill icons/dragon_breath.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 7,
        "hp_cost": 0,
        "level": 2,
        "max_charges": 16,
        "melee": false,
        "quick_cast": false,
        "range": 5,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "helmet": 2,
          "trinket": 2,
          "weapon": 6
        },
        "count": 11
      },
      "baseId": "dragon_breath",
      "className": "DragonBreath",
      "damageType": [],
      "description": "Deal [7:damage] damage of a random type in a cone\nIf you target a unit with this spell, the damage type will instead be the one they are most vulnerable to",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 2,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_dragon_breath.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/dragon_breath.png",
      "id": "spell_dragon_breath",
      "kind": "spell",
      "name": "Dragon Breath",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "hp_cost",
        "speaker",
        "lungs",
        "morph",
        "duration"
      ],
      "tags": [
        "Dragon",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Dragon Breath grants you 100% resistance to its damage type(s) for [{duration}:duration] turns",
          "id": "chromatic_aspect",
          "name": "Chromatic Aspect",
          "tags": [
            "Dragon",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 3,
          "damageType": null,
          "description": "If you do not manually cast a spell on your turn, regain a charge of Dragon Breath",
          "id": "measured_breathing",
          "name": "Measured Breathing",
          "tags": [
            "Dragon",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Dragon Breath deals additional damage equal to its remaining charges",
          "id": "dragon_lungs",
          "name": "Dragon Lungs",
          "tags": [
            "Dragon",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 9,
          "damageType": [],
          "description": "Dragon Breath deals an additional random damage type for each other [Dragon] spell you know",
          "id": "dragon_speaker",
          "name": "Dragon Speaker",
          "tags": [
            "Dragon",
            "Sorcery",
            "Word"
          ],
          "unlocksItems": 1
        }
      ]
    },
    "spell_dragon_claw": {
      "asset": "UI/spell skill icons/dragon_claw.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 20,
        "hp_cost": 0,
        "level": 1,
        "max_charges": 0,
        "melee": true,
        "quick_cast": false,
        "range": 1.5,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "helmet": 1,
          "trinket": 2,
          "weapon": 5
        },
        "count": 9
      },
      "baseId": "dragon_claw",
      "className": "DragonClaw",
      "damageType": [
        "Physical"
      ],
      "description": "Deal [20:damage] [Physical] damage in an arc\nWill not damage allies unless directly targeted",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 2,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_dragon_claw.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/dragon_claw.png",
      "id": "spell_dragon_claw",
      "kind": "spell",
      "name": "Dragon Claw",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "hp_cost",
        "chaos",
        "frenzy",
        "num_targets",
        "bleed",
        "duration"
      ],
      "tags": [
        "Dragon",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "Dragon Claw also inflicts [{duration}:duration] turns of [bleed]",
          "id": "serrated_steel_claws",
          "name": "Serrated Steel Claws",
          "tags": [
            "Dragon",
            "Sorcery",
            "Metallic"
          ],
          "unlocksItems": 4
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 2,
          "damageType": null,
          "description": "When an allied [Dragon] is summoned, replace their normal melee attack with your Dragon Claw spell",
          "id": "dragon_tutor",
          "name": "Dragon Tutor",
          "tags": [
            "Dragon",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Dragon Claw hits [{num_targets}:num_targets] times",
          "id": "frenzied_swipes",
          "name": "Frenzied Swipes",
          "tags": [
            "Dragon",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [
            "Fire",
            "Lightning"
          ],
          "description": "Dragon Claw also deals [Fire] and [Lightning] damage",
          "id": "chaos_claws",
          "name": "Chaos Claws",
          "tags": [
            "Dragon",
            "Sorcery",
            "Chaos"
          ],
          "unlocksItems": 5
        }
      ]
    },
    "spell_dragon_roar": {
      "asset": "UI/spell skill icons/dragon_roar.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 9,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 7,
        "melee": false,
        "push_distance": 3,
        "quick_cast": false,
        "radius": 4,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "helmet": 1,
          "trinket": 2,
          "weapon": 7
        },
        "count": 11
      },
      "baseId": "dragon_roar",
      "className": "DragonRoar",
      "damageType": [
        "Physical"
      ],
      "description": "Deal [9:damage] [Physical] damage to enemies in a [4:radius] tile burst around the caster\nPush affected enemies up to 3 tiles away",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_dragon_roar.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/dragon_roar.png",
      "id": "spell_dragon_roar",
      "kind": "spell",
      "name": "Dragon Roar",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "radius",
        "hp_cost",
        "push_distance",
        "rally",
        "frighten",
        "duration"
      ],
      "tags": [
        "Dragon",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "",
          "id": "forceful_roar",
          "name": "Forceful Roar",
          "tags": [
            "Dragon",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Affected enemies with less health than you are [feared] for [{duration}:duration] turns",
          "id": "frightening_presence",
          "name": "Frightening Presence",
          "tags": [
            "Dragon",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Allies in the radius gain +1 damage to their spells\n[Dragon] allies gain +4 instead",
          "id": "rallying_roar",
          "name": "Rallying Roar",
          "tags": [
            "Dragon",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 4,
          "damageType": null,
          "description": "",
          "id": "roar_of_anguish",
          "name": "Roar of Anguish",
          "tags": [
            "Dragon",
            "Sorcery"
          ]
        }
      ]
    },
    "spell_drain_pulse": {
      "asset": "UI/spell skill icons/drain_pulse.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 16,
        "hp_cost": 8,
        "level": 4,
        "max_charges": 3,
        "melee": false,
        "quick_cast": false,
        "radius": 5,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "boots": 1,
          "helmet": 3,
          "trinket": 5,
          "weapon": 13
        },
        "count": 24
      },
      "baseId": "drain_pulse",
      "className": "DrainPulse",
      "damageType": [],
      "description": "Deal [16:damage] [Dark] and [Poison] damage in a [5 tile:radius] burst\nHeal for half the damage dealt",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 1,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_drain_pulse.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/drain_pulse.png",
      "id": "spell_drain_pulse",
      "kind": "spell",
      "name": "Drain Pulse",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "radius",
        "hp_cost",
        "felomancy",
        "minion_health",
        "minion_damage",
        "desperation",
        "sickening",
        "duration"
      ],
      "tags": [
        "Dark",
        "Blood",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Drain Pulse also inflicts [{duration}:duration] turns of [bleed], [necrosis], and [poison]",
          "id": "sickening_pulse",
          "name": "Sickening Pulse",
          "tags": [
            "Dark",
            "Blood",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Slain units are raised as Breathstealers",
          "id": "felomancy",
          "name": "Felomancy",
          "tags": [
            "Dark",
            "Blood",
            "Sorcery",
            "Conjuration"
          ],
          "unlocksItems": 1
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "",
          "id": "radius",
          "name": "Radius",
          "tags": [
            "Dark",
            "Blood",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Damage is increased by 1 for every 10 HP you are missing",
          "id": "desperation",
          "name": "Desperation",
          "tags": [
            "Dark",
            "Blood",
            "Sorcery"
          ]
        }
      ]
    },
    "spell_dread_lash": {
      "asset": "UI/spell skill icons/dread_lash.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 18,
        "duration": 3,
        "hp_cost": 0,
        "level": 2,
        "max_charges": 13,
        "melee": false,
        "quick_cast": false,
        "range": 6,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "boots": 1,
          "helmet": 4,
          "trinket": 4,
          "weapon": 11
        },
        "count": 22
      },
      "baseId": "dread_lash",
      "className": "DreadLash",
      "damageType": [
        "Dark"
      ],
      "description": "Inflict [18:damage] [Dark] damage and [3:duration] turns of [fear] on the target unit\nThen, pull the target unit up to [6:range] tiles along a path toward you",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 2,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_dread_lash.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/dread_lash.png",
      "id": "spell_dread_lash",
      "kind": "spell",
      "name": "Dread Lash",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "duration",
        "hp_cost",
        "secret",
        "razor",
        "web",
        "quick_cast",
        "requires_los"
      ],
      "tags": [
        "Dark",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Dread Lash gains quickcast, and can be cast on targets outside your line of sight",
          "id": "dread_lord",
          "name": "Dread Lord",
          "tags": [
            "Dark",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "duration": 3
          },
          "cost": 3,
          "damageType": [
            "Physical"
          ],
          "description": "Dread Lash also deals [Physical] damage and inflicts [{duration}:duration] turns of [bleed]",
          "id": "razor_lash",
          "name": "Razor Lash",
          "tags": [
            "Dark",
            "Sorcery",
            "Metallic"
          ],
          "unlocksItems": 5
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "If the target is adjacent to you after being pulled, cast Seal Fate on them",
          "id": "dreadful_secret",
          "name": "Dreadful Secret",
          "tags": [
            "Dark",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Casting Dread Lash on yourself will instead cause it to hit every [feared] enemy in the level",
          "id": "web_of_fear",
          "name": "Web of Fear",
          "tags": [
            "Dark",
            "Sorcery"
          ]
        }
      ]
    },
    "spell_dream_the_starwhale": {
      "asset": "UI/spell skill icons/dream_the_starwhale.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 8,
        "max_channel": 12,
        "max_charges": 1,
        "melee": false,
        "minion_damage": 65,
        "minion_health": 2600,
        "minion_range": 5,
        "quick_cast": false,
        "radius": 4,
        "range": 5,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 4,
          "boots": 1,
          "helmet": 3,
          "trinket": 4,
          "weapon": 9
        },
        "count": 21
      },
      "baseId": "dream_the_starwhale",
      "className": "StarwhaleDream",
      "damageType": [],
      "description": "Summon a Starwhale\nGain 100% [Ice] and [Arcane] resistance while channeling\nThe Starwhale is unsummoned and you are [frozen] for 3 turns when you stop channeling\nCan be channeled for up to [12 turns:max_channel]",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_dream_the_starwhale.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/dream_the_starwhale.png",
      "id": "spell_dream_the_starwhale",
      "kind": "spell",
      "name": "Dream the Starwhale",
      "stats": [
        "range",
        "max_charges",
        "radius",
        "minion_damage",
        "minion_health",
        "minion_range",
        "max_channel",
        "hp_cost",
        "requires_los",
        "breaker",
        "ritual",
        "starbask",
        "icedream",
        "duration"
      ],
      "tags": [
        "Nature",
        "Ice",
        "Arcane",
        "Conjuration"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "While channeling, you and the Starwhale heal for half of any [Arcane] damage dealt",
          "id": "starbask",
          "name": "Starbask",
          "tags": [
            "Nature",
            "Ice",
            "Arcane",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Starwhale's aura [freezes] affected enemies for [{duration}:duration] turns",
          "id": "ice_dream",
          "name": "Ice Dream",
          "tags": [
            "Nature",
            "Ice",
            "Arcane",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "The Starwhale gains burrowing",
          "id": "shatterstar",
          "name": "Shatterstar",
          "tags": [
            "Nature",
            "Ice",
            "Arcane",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 7,
          "damageType": [],
          "description": "If you complete the ritual, the Starwhale is not unsummoned, and you are not [frozen]",
          "id": "ritual_of_stars",
          "name": "Ritual of Stars",
          "tags": [
            "Nature",
            "Ice",
            "Arcane",
            "Conjuration",
            "Ritual"
          ]
        }
      ]
    },
    "spell_earthen_passage": {
      "asset": "UI/spell skill icons/earthen_passage.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 2,
        "max_charges": 8,
        "melee": false,
        "quick_cast": false,
        "range": 99,
        "requires_los": false
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "helmet": 3,
          "trinket": 1,
          "weapon": 6
        },
        "count": 11
      },
      "baseId": "earthen_passage",
      "className": "EarthenPassage",
      "damageType": [],
      "description": "Teleport through a connected group of walls, teleporting to any tile adjacent to the group\nCan only be cast while adjacent to a wall",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 2
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_earthen_passage.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/earthen_passage.png",
      "id": "spell_earthen_passage",
      "kind": "spell",
      "name": "Earthen Passage",
      "stats": [
        "range",
        "max_charges",
        "hp_cost",
        "fish",
        "num_summons",
        "minion_health",
        "minion_damage",
        "minion_range",
        "mover",
        "guard",
        "stone",
        "shields"
      ],
      "tags": [
        "Nature",
        "Sorcery",
        "Translocation"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "Casting Earthen Passage grants [{shields} SH:shields]",
          "id": "mineral_shielding",
          "name": "Mineral Shielding",
          "tags": [
            "Nature",
            "Sorcery",
            "Translocation",
            "Metallic"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Casts your Earthen Sentinel spell on your original location",
          "id": "guarded_entrance",
          "name": "Guarded Entrance",
          "tags": [
            "Nature",
            "Sorcery",
            "Translocation"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "Enemies adjacent to your destination are entombed in stone\n\nUnoccupied tiles adjacent to the connected group of enemies become walls",
          "id": "earthen_prison",
          "name": "Earthen Prison",
          "tags": [
            "Nature",
            "Sorcery",
            "Translocation"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 7,
          "damageType": [],
          "description": "Summon [{num_summons}:num_summons] Stonefish near the target",
          "id": "stonefisher",
          "name": "Stonefisher",
          "tags": [
            "Nature",
            "Sorcery",
            "Translocation",
            "Conjuration"
          ],
          "unlocksItems": 1
        }
      ]
    },
    "spell_earthen_sentinel": {
      "asset": "UI/spell skill icons/earthen_sentinel.png",
      "attributes": {
        "can_target_empty": true,
        "cast_on_walls": false,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 3,
        "melee": false,
        "minion_damage": 20,
        "minion_health": 120,
        "quick_cast": false,
        "range": 5,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "helmet": 3,
          "trinket": 2,
          "weapon": 4
        },
        "count": 11
      },
      "baseId": "earthen_sentinel",
      "className": "SummonEarthElemental",
      "damageType": [],
      "description": "Summon an Earth Elemental",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 1,
        "outgoingCount": 2,
        "pathCount": 3
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_earthen_sentinel.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/earthen_sentinel.png",
      "id": "spell_earthen_sentinel",
      "kind": "spell",
      "name": "Earthen Sentinel",
      "stats": [
        "range",
        "max_charges",
        "minion_damage",
        "minion_health",
        "hp_cost",
        "earth_shaper",
        "num_summons",
        "cast_on_walls",
        "holy_totem",
        "stinging_totem",
        "mobile",
        "radius"
      ],
      "tags": [
        "Nature",
        "Conjuration"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "Earth Elementals have a 33% chance to randomly teleport to a location within [{radius}:radius] tiles that they can see each turn",
          "id": "mobile_menhir",
          "name": "Mobile Menhir",
          "tags": [
            "Nature",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Earth Elementals can cast your Poison Sting with no cooldown",
          "id": "stinging_totem",
          "name": "Stinging Totem",
          "tags": [
            "Nature",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "Earth Elementals can cast your Heavenly Blast on a 3 turn cooldown",
          "id": "holy_totem",
          "name": "Holy Totem",
          "tags": [
            "Nature",
            "Conjuration",
            "Holy"
          ],
          "unlocksItems": 6
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 8,
          "damageType": [],
          "description": "You can cast this spell targeting a wall\nIf you do, that wall and up to [{num_summons}:num_summons] adjacent walls are transformed into Earth Elementals",
          "id": "earth_shaper",
          "name": "Earth Shaper",
          "tags": [
            "Nature",
            "Conjuration"
          ]
        }
      ]
    },
    "spell_earthquake": {
      "asset": "UI/spell skill icons/earthquake.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 21,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 3,
        "melee": false,
        "quick_cast": false,
        "radius": 5,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "helmet": 1,
          "weapon": 11
        },
        "count": 13
      },
      "baseId": "earthquake",
      "className": "EarthquakeSpell",
      "damageType": [
        "Physical"
      ],
      "description": "Invoke an earthquake with a [5:radius] tile radius\nEach tile in the area has a 50% chance to be affected\nEnemies on affected tiles take [21:damage] [Physical] damage\nWalls on affected tiles are destroyed",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 1,
        "outgoingCount": 1,
        "pathCount": 1
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_earthquake.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/earthquake.png",
      "id": "spell_earthquake",
      "kind": "spell",
      "name": "Earthquake",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "radius",
        "hp_cost",
        "shrapnel_quake",
        "stun",
        "duration",
        "radius_buff",
        "breach"
      ],
      "tags": [
        "Sorcery",
        "Nature"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "When you cast Earthquake, it gains +2 radius for [{duration}:duration] turns",
          "id": "aftershocks",
          "name": "Aftershocks",
          "tags": [
            "Sorcery",
            "Nature"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Cast Shrapnel Blast on affected wall tiles",
          "id": "shrapnel_quake",
          "name": "Shrapnel Quake",
          "tags": [
            "Sorcery",
            "Nature",
            "Metallic",
            "Fire"
          ],
          "unlocksItems": 10
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "damage": 7
          },
          "cost": 4,
          "damageType": [
            "Arcane"
          ],
          "description": "Eldritch tendrils reach forth from affected chasm tiles, each dealing [{damage}:damage] [Arcane] damage to the nearest enemy",
          "id": "chthonic_breach",
          "name": "Chthonic Breach",
          "tags": [
            "Sorcery",
            "Nature",
            "Arcane"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Earthquake is guaranteed to affect all tiles in the area, and [stuns] affected units for [{duration}:duration] turns",
          "id": "magnitude_8_0",
          "name": "Magnitude 8.0",
          "tags": [
            "Sorcery",
            "Nature"
          ]
        }
      ]
    },
    "spell_essence_flux": {
      "asset": "UI/spell skill icons/essence_flux.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 4,
        "max_charges": 5,
        "melee": false,
        "quick_cast": false,
        "radius": 4,
        "range": 6,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "helmet": 3,
          "weapon": 6
        },
        "count": 10
      },
      "baseId": "essence_flux",
      "className": "EssenceFlux",
      "damageType": [],
      "description": "Swap the resistances of units in a [4:radius] tile burst\n[Fire] swaps with [Ice]\n[Lightning] swaps with [Physical]\n[Dark] swaps with [Holy]\n[Poison] swaps with [Arcane]\nDoes not affect the Wizard",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_essence_flux.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/essence_flux.png",
      "id": "spell_essence_flux",
      "kind": "spell",
      "name": "Essence Flux",
      "stats": [
        "range",
        "max_charges",
        "radius",
        "hp_cost",
        "flummox",
        "duration",
        "banish",
        "degrade",
        "stabilize"
      ],
      "tags": [
        "Arcane",
        "Chaos",
        "Enchantment"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "Temporary units in the affected area are killed",
          "id": "banishment",
          "name": "Banishment",
          "tags": [
            "Arcane",
            "Chaos",
            "Enchantment",
            "Sorcery"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Enemies' resistances match the lower of each pair, rather than being swapped",
          "id": "essence_degradation",
          "name": "Essence Degradation",
          "tags": [
            "Arcane",
            "Chaos",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Allies' resistances match the higher of each pair, rather than being swapped",
          "id": "essence_stabilizer",
          "name": "Essence Stabilizer",
          "tags": [
            "Arcane",
            "Chaos",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Affected enemies are [silenced] for [{duration}:duration] turns",
          "id": "flummoxed",
          "name": "Flummoxed",
          "tags": [
            "Arcane",
            "Chaos",
            "Enchantment"
          ]
        }
      ]
    },
    "spell_eye_of_blood": {
      "asset": "UI/spell skill icons/eye_of_blood.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 10,
        "duration": 20,
        "hp_cost": 10,
        "level": 2,
        "max_charges": 2,
        "melee": false,
        "quick_cast": false,
        "range": 0,
        "requires_los": true,
        "shot_cooldown": 3
      },
      "augmentSummary": {
        "bySlot": {
          "helmet": 2,
          "trinket": 4,
          "weapon": 8
        },
        "count": 14
      },
      "baseId": "eye_of_blood",
      "className": "EyeOfBloodSpell",
      "damageType": [
        "Dark"
      ],
      "description": "Every [3:shot_cooldown] turns, deal [10:damage] [Dark] damage to a random enemy in line of sight\nHeal for damage dealt\nLasts [20:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_eye_of_blood.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/eye_of_blood.png",
      "id": "spell_eye_of_blood",
      "kind": "spell",
      "name": "Eye of Blood",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "duration",
        "hp_cost",
        "shot_cooldown",
        "plasmoid",
        "hags_eye",
        "bonus_cast"
      ],
      "tags": [
        "Blood",
        "Enchantment",
        "Eye"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 3,
          "damageType": null,
          "description": "Reduce the active shot cooldown of your Eye of Blood buff by 1 each time you cast a [Blood] spell",
          "id": "blood_accelerant",
          "name": "Blood Accelerant",
          "tags": [
            "Blood",
            "Enchantment",
            "Eye"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "When it deals damage, the target's max HP is reduced by the damage dealt and a Blood Slime is summoned nearby",
          "id": "eye_of_plasmoid",
          "name": "Eye of Plasmoid",
          "tags": [
            "Blood",
            "Enchantment",
            "Eye",
            "Slime"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Eye of Blood also casts Lifedrain on units it shoots",
          "id": "eye_of_lifedrain",
          "name": "Eye of Lifedrain",
          "tags": [
            "Blood",
            "Enchantment",
            "Eye"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 7,
          "damageType": [],
          "description": "Shoots at all targets in line of sight",
          "id": "hag_s_eye",
          "name": "Hag's Eye",
          "tags": [
            "Blood",
            "Enchantment",
            "Eye"
          ]
        }
      ]
    },
    "spell_eye_of_fire": {
      "asset": "UI/spell skill icons/eye_of_fire.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 15,
        "duration": 30,
        "hp_cost": 0,
        "level": 2,
        "max_charges": 4,
        "melee": false,
        "quick_cast": false,
        "range": 0,
        "requires_los": true,
        "shot_cooldown": 3
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "helmet": 2,
          "trinket": 3,
          "weapon": 8
        },
        "count": 15
      },
      "baseId": "eye_of_fire",
      "className": "EyeOfFireSpell",
      "damageType": [
        "Fire"
      ],
      "description": "Every [3:shot_cooldown] turns, deal [15:damage] [Fire] damage to a random enemy in line of sight\nLasts [30:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 1,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_eye_of_fire.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/eye_of_fire.png",
      "id": "spell_eye_of_fire",
      "kind": "spell",
      "name": "Eye of Fire",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "duration",
        "hp_cost",
        "shot_cooldown",
        "promethean",
        "cascade",
        "summon_eyeball",
        "bonus_cast"
      ],
      "tags": [
        "Fire",
        "Enchantment",
        "Eye"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "When Eye of Fire kills an enemy, it shoots again",
          "id": "eye_of_conflagration",
          "name": "Eye of Conflagration",
          "tags": [
            "Fire",
            "Enchantment",
            "Eye"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Summon a Flaming Eyeball when Eye of Fire is removed",
          "id": "fiery_onlooker",
          "name": "Fiery Onlooker",
          "tags": [
            "Fire",
            "Enchantment",
            "Eye",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "If Eye of Fire targets a [Fire] unit, it removes the [Fire] tag and their [Fire] resistance\nThe [Fire] tag and resistance are then granted to an ally without the [Fire] tag",
          "id": "promethean_eye",
          "name": "Promethean Eye",
          "tags": [
            "Fire",
            "Enchantment",
            "Eye"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Eye of Fire also casts Immolate on units it shoots",
          "id": "eye_of_immolation",
          "name": "Eye of Immolation",
          "tags": [
            "Fire",
            "Enchantment",
            "Eye"
          ]
        }
      ]
    },
    "spell_eye_of_ice": {
      "asset": "UI/spell skill icons/eye_of_ice.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 15,
        "duration": 30,
        "hp_cost": 0,
        "level": 2,
        "max_charges": 4,
        "melee": false,
        "quick_cast": false,
        "range": 0,
        "requires_los": true,
        "shot_cooldown": 3
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "helmet": 2,
          "trinket": 3,
          "weapon": 9
        },
        "count": 16
      },
      "baseId": "eye_of_ice",
      "className": "EyeOfIceSpell",
      "damageType": [
        "Ice"
      ],
      "description": "Every [3:shot_cooldown] turns, deal [15:damage] [Ice] damage to a random enemy in line of sight\nLasts [30:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_eye_of_ice.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/eye_of_ice.png",
      "id": "spell_eye_of_ice",
      "kind": "spell",
      "name": "Eye of Ice",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "duration",
        "hp_cost",
        "shot_cooldown",
        "bonus_cast",
        "array",
        "summon_eyeball",
        "freezing"
      ],
      "tags": [
        "Ice",
        "Enchantment",
        "Eye"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "duration": 2
          },
          "cost": 1,
          "damageType": [],
          "description": "Eye of Ice [freezes] the target for [{duration}:duration] turns",
          "id": "freezing",
          "name": "Freezing",
          "tags": [
            "Ice",
            "Enchantment",
            "Eye"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Summon a Frosty Eyeball when Eye of Ice is removed",
          "id": "frosty_onlooker",
          "name": "Frosty Onlooker",
          "tags": [
            "Ice",
            "Enchantment",
            "Eye",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "You can have multiple instances of Eye of Ice active simultaneously",
          "id": "icy_array",
          "name": "Icy Array",
          "tags": [
            "Ice",
            "Enchantment",
            "Eye"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "Eye of Ice also casts Icicle on units it shoots",
          "id": "eye_of_icicles",
          "name": "Eye of Icicles",
          "tags": [
            "Ice",
            "Enchantment",
            "Eye"
          ]
        }
      ]
    },
    "spell_eye_of_lightning": {
      "asset": "UI/spell skill icons/eye_of_lightning.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 15,
        "duration": 30,
        "hp_cost": 0,
        "level": 2,
        "max_charges": 4,
        "melee": false,
        "quick_cast": false,
        "range": 0,
        "requires_los": true,
        "shot_cooldown": 3
      },
      "augmentSummary": {
        "bySlot": {
          "helmet": 2,
          "trinket": 4,
          "weapon": 9
        },
        "count": 15
      },
      "baseId": "eye_of_lightning",
      "className": "EyeOfLightningSpell",
      "damageType": [
        "Lightning"
      ],
      "description": "Every [3:shot_cooldown] turns, deal [15:damage] [Lightning] damage to a random enemy in line of sight\nLasts [30:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_eye_of_lightning.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/eye_of_lightning.png",
      "id": "spell_eye_of_lightning",
      "kind": "spell",
      "name": "Eye of Lightning",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "duration",
        "hp_cost",
        "shot_cooldown",
        "ionized",
        "applies_buff",
        "bonus_cast",
        "beam"
      ],
      "tags": [
        "Lightning",
        "Enchantment",
        "Eye"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "Eye of Lightning will prefer to shoot targets with the lower [Lightning] resistance",
          "id": "ionized_sight",
          "name": "Ionized Sight",
          "tags": [
            "Lightning",
            "Enchantment",
            "Eye"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Eye of Lightning shots reduce the target's [Lightning] resistance by 50%",
          "id": "penetrating_gaze",
          "name": "Penetrating Gaze",
          "tags": [
            "Lightning",
            "Enchantment",
            "Eye"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "damage": 15
          },
          "cost": 3,
          "damageType": [],
          "description": "Eye of Lightning deals damage to enemies in a beam instead of only at the target\nAllies along the beam are healed for [{damage}:damage] and gain [1 Shield:shields]",
          "id": "archon_eye",
          "name": "Archon Eye",
          "tags": [
            "Lightning",
            "Enchantment",
            "Eye",
            "Holy"
          ],
          "unlocksItems": 7
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Eye of Lightning also casts Thunder Strike on units it shoots",
          "id": "eye_of_thunder",
          "name": "Eye of Thunder",
          "tags": [
            "Lightning",
            "Enchantment",
            "Eye"
          ]
        }
      ]
    },
    "spell_eye_of_rage": {
      "asset": "UI/spell skill icons/eye_of_rage.png",
      "attributes": {
        "berserk_duration": 2,
        "can_target_empty": true,
        "cool_down": 0,
        "duration": 20,
        "hp_cost": 0,
        "level": 2,
        "max_charges": 4,
        "melee": false,
        "quick_cast": false,
        "range": 0,
        "requires_los": true,
        "shot_cooldown": 3
      },
      "augmentSummary": {
        "bySlot": {
          "helmet": 2,
          "trinket": 3,
          "weapon": 5
        },
        "count": 10
      },
      "baseId": "eye_of_rage",
      "className": "EyeOfRageSpell",
      "damageType": [],
      "description": "Every [3:shot_cooldown] turns, inflict [berserk] on a random enemy in line of sight for [2:duration] turns\nLasts [20:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_eye_of_rage.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/eye_of_rage.png",
      "id": "spell_eye_of_rage",
      "kind": "spell",
      "name": "Eye of Rage",
      "stats": [
        "range",
        "max_charges",
        "duration",
        "hp_cost",
        "shot_cooldown",
        "berserk_duration",
        "fiery_aura",
        "damage",
        "radius",
        "connected_group",
        "lycanthrophy",
        "minion_damage",
        "minion_range"
      ],
      "tags": [
        "Nature",
        "Enchantment",
        "Eye"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Targeted units gain a fiery aura that deals [{damage}:damage] [Fire] damage to units within [{radius}:radius] tiles",
          "id": "burning_rage",
          "name": "Burning Rage",
          "tags": [
            "Nature",
            "Enchantment",
            "Eye",
            "Fire"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "When Eye of Rage shoots a [Living] unit with 25% or less HP, that unit is killed and raised as a friendly Werewolf\nThe Werewolf inherits the max HP of the slain unit and is [berserked] for 4 turns",
          "id": "lycanthropy",
          "name": "Lycanthropy",
          "tags": [
            "Nature",
            "Enchantment",
            "Eye"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "",
          "id": "enduring_rage",
          "name": "Enduring Rage",
          "tags": [
            "Nature",
            "Enchantment",
            "Eye"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Eye of Rage shots affect enemies in a connected group",
          "id": "infectious_rage",
          "name": "Infectious Rage",
          "tags": [
            "Nature",
            "Enchantment",
            "Eye"
          ]
        }
      ]
    },
    "spell_fae_court": {
      "asset": "UI/spell skill icons/fae_court.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "heal": 5,
        "hp_cost": 0,
        "level": 5,
        "max_charges": 2,
        "melee": false,
        "minion_damage": 4,
        "minion_duration": 25,
        "minion_health": 9,
        "minion_range": 4,
        "num_summons": 4,
        "quick_cast": false,
        "range": 0,
        "requires_los": true,
        "shields": 1
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 3,
          "helmet": 3,
          "trinket": 3,
          "weapon": 6
        },
        "count": 15
      },
      "baseId": "fae_court",
      "className": "FaeCourt",
      "damageType": [],
      "description": "Summon [4:num_summons] temporary Faeries near the caster",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 8,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_fae_court.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/fae_court.png",
      "id": "spell_fae_court",
      "kind": "spell",
      "name": "Fae Court",
      "stats": [
        "range",
        "max_charges",
        "minion_duration",
        "minion_damage",
        "minion_health",
        "minion_range",
        "heal",
        "shields",
        "num_summons",
        "hp_cost",
        "summon_queen",
        "gardeners",
        "winter_fae",
        "ward"
      ],
      "tags": [
        "Nature",
        "Arcane",
        "Conjuration"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "When you cast this spell, the summoned Faeries cast your Arcane Warding on themselves",
          "id": "fae_protection",
          "name": "Fae Protection",
          "tags": [
            "Nature",
            "Arcane",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Summon Winter Faeries instead\nWinter Faeries can cast your Freeze spell on a 5 turn cooldown",
          "id": "winter_faery",
          "name": "Winter Faery",
          "tags": [
            "Nature",
            "Arcane",
            "Conjuration",
            "Ice"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "Faeries can cast your Psychic Seedling spell on a 10 turn cool down",
          "id": "gardeners",
          "name": "Gardeners",
          "tags": [
            "Nature",
            "Arcane",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 8,
          "damageType": [],
          "description": "Summon a Fae Queen in addition to the Faeries\nIf you have the Winter Faery upgrade as well, summons a Winter Fae Queen instead, which can cast your Blizzard spell on a 15 turn cooldown",
          "id": "summon_queen",
          "name": "Summon Queen",
          "tags": [
            "Nature",
            "Arcane",
            "Conjuration"
          ]
        }
      ]
    },
    "spell_faehaunt_garden": {
      "asset": "UI/spell skill icons/faehaunt_garden.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "duration": 9,
        "hp_cost": 0,
        "level": 6,
        "max_charges": 2,
        "melee": false,
        "minion_damage": 9,
        "minion_duration": 6,
        "minion_health": 50,
        "minion_range": 6,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 3,
          "helmet": 4,
          "trinket": 4,
          "weapon": 10
        },
        "count": 21
      },
      "baseId": "faehaunt_garden",
      "className": "FaehauntGardenSpell",
      "damageType": [],
      "description": "For every [50:minion_health] [Lightning] or [Arcane] damage you deal, summon a Butterfly Demon\nLasts [9:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_faehaunt_garden.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/faehaunt_garden.png",
      "id": "spell_faehaunt_garden",
      "kind": "spell",
      "name": "Faehaunt Garden",
      "stats": [
        "range",
        "max_charges",
        "duration",
        "minion_duration",
        "minion_damage",
        "minion_health",
        "minion_range",
        "hp_cost",
        "pupil",
        "glass",
        "gnomes",
        "num_summons",
        "prune"
      ],
      "tags": [
        "Enchantment",
        "Arcane",
        "Nature",
        "Lightning",
        "Conjuration"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Damage dealt to allies counts double towards summoning Butterflies",
          "id": "garden_pruning",
          "name": "Garden Pruning",
          "tags": [
            "Enchantment",
            "Arcane",
            "Nature",
            "Lightning",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Summon [{num_summons}:num_summons] Gnomes on casting Faehaunt Garden",
          "id": "guardian_gnomes",
          "name": "Guardian Gnomes",
          "tags": [
            "Enchantment",
            "Arcane",
            "Nature",
            "Lightning",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Summon Glass Butterflies instead of Butterfly Demons",
          "id": "glass_garden",
          "name": "Glass Garden",
          "tags": [
            "Enchantment",
            "Arcane",
            "Nature",
            "Lightning",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 7,
          "damageType": [],
          "description": "Every 3rd Butterfly summoned has its Arcane Beam replaced with your Void Beam and its Lightning Beam replaced with your Lightning Bolt",
          "id": "fae_pupils",
          "name": "Fae Pupils",
          "tags": [
            "Enchantment",
            "Arcane",
            "Nature",
            "Lightning",
            "Conjuration"
          ]
        }
      ]
    },
    "spell_fan_of_flames": {
      "asset": "UI/spell skill icons/fan_of_flames.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 9,
        "hp_cost": 0,
        "level": 2,
        "max_channel": 10,
        "max_charges": 8,
        "melee": false,
        "quick_cast": false,
        "range": 5,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "boots": 1,
          "helmet": 2,
          "trinket": 2,
          "weapon": 10
        },
        "count": 17
      },
      "baseId": "fan_of_flames",
      "className": "FanOfFlames",
      "damageType": [
        "Fire"
      ],
      "description": "Deal [9:damage] [Fire] damage in a cone each turn\nThis spell can be channeled for up to [10:max_channel] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_fan_of_flames.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/fan_of_flames.png",
      "id": "spell_fan_of_flames",
      "kind": "spell",
      "name": "Fan of Flames",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "max_channel",
        "hp_cost",
        "wildfire",
        "frostfire",
        "heal"
      ],
      "tags": [
        "Sorcery",
        "Fire"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "Fan of Flames heals allies instead of damaging them",
          "id": "healing_hearthfire",
          "name": "Healing Hearthfire",
          "tags": [
            "Sorcery",
            "Fire"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "",
          "id": "roaring_flames",
          "name": "Roaring Flames",
          "tags": [
            "Sorcery",
            "Fire"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [
            "Ice"
          ],
          "description": "Fan of Flames also deals [Ice] damage",
          "id": "fan_of_frostfire",
          "name": "Fan of Frostfire",
          "tags": [
            "Sorcery",
            "Fire",
            "Ice"
          ],
          "unlocksItems": 5
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "max_channel": 10
          },
          "cost": 5,
          "damageType": [],
          "description": "Fan of Flames gains 1 [range] for each enemy it kills until you stop channeling it",
          "id": "wildfire",
          "name": "Wildfire",
          "tags": [
            "Sorcery",
            "Fire"
          ]
        }
      ]
    },
    "spell_fiery_tormentor": {
      "asset": "UI/spell skill icons/fiery_tormentor.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 4,
        "max_charges": 4,
        "melee": false,
        "minion_damage": 7,
        "minion_duration": 40,
        "minion_health": 34,
        "minion_range": 2,
        "quick_cast": false,
        "radius": 4,
        "range": 8,
        "requires_los": false
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 4,
          "boots": 1,
          "helmet": 4,
          "trinket": 5,
          "weapon": 11
        },
        "count": 25
      },
      "baseId": "fiery_tormentor",
      "className": "SummonFieryTormentor",
      "damageType": [],
      "description": "Summon a Fiery Tormentor",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 2,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_fiery_tormentor.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/fiery_tormentor.png",
      "id": "spell_fiery_tormentor",
      "kind": "spell",
      "name": "Fiery Tormentor",
      "stats": [
        "range",
        "max_charges",
        "radius",
        "minion_duration",
        "minion_damage",
        "minion_health",
        "minion_range",
        "hp_cost",
        "mass",
        "brand",
        "frostfire"
      ],
      "tags": [
        "Dark",
        "Fire",
        "Conjuration"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Summon a Frostfire Tormentor instead",
          "id": "frostfire_tormentor",
          "name": "Frostfire Tormentor",
          "tags": [
            "Dark",
            "Fire",
            "Conjuration",
            "Ice"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Summon a Fiery Tormenting Mass instead\nIf you also have the Frostfire Tormentor upgrade, summon a Frostfire Tormenting Mass instead",
          "id": "tormenting_mass",
          "name": "Tormenting Mass",
          "tags": [
            "Dark",
            "Fire",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "When the tormentor damages enemies it inflicts the Tormentor's Brand debuff\nTormentor's Brand deals 1 [Dark] damage each turn",
          "id": "torturer_s_brand",
          "name": "Torturer's Brand",
          "tags": [
            "Dark",
            "Fire",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 8,
          "damageType": null,
          "description": "Heal 1 HP when your [Demon] allies deal damage\nAlways Active",
          "id": "tithes_of_torment",
          "name": "Tithes of Torment",
          "tags": []
        }
      ]
    },
    "spell_fire_drake": {
      "asset": "UI/spell skill icons/fire_drake.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 4,
        "max_charges": 3,
        "melee": false,
        "minion_damage": 9,
        "minion_health": 48,
        "minion_range": 5,
        "quick_cast": false,
        "range": 4,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 4,
          "helmet": 3,
          "trinket": 5,
          "weapon": 8
        },
        "count": 20
      },
      "baseId": "fire_drake",
      "className": "SummonFireDrakeSpell",
      "damageType": [],
      "description": "Summon a Fire Drake",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 2,
        "outgoingCount": 1,
        "pathCount": 2
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_fire_drake.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/fire_drake.png",
      "id": "spell_fire_drake",
      "kind": "spell",
      "name": "Fire Drake",
      "stats": [
        "range",
        "max_charges",
        "minion_damage",
        "minion_health",
        "minion_range",
        "hp_cost",
        "cindervein",
        "lava",
        "superheated",
        "dragon_mage"
      ],
      "tags": [
        "Fire",
        "Conjuration",
        "Dragon"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "If you cast this spell targeting a lava chasm, the summoned drake's HP, Breath Damage, and Breath Range are tripled",
          "id": "lava_born",
          "name": "Lava Born",
          "tags": [
            "Fire",
            "Conjuration",
            "Dragon"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Fire Drakes' breath attack melts walls",
          "id": "superheated_flames",
          "name": "Superheated Flames",
          "tags": [
            "Fire",
            "Conjuration",
            "Dragon"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Fire Drakes gain the [Arcane] tag and can cast your Blazerip on a 4 turn cooldown",
          "id": "dragon_mage",
          "name": "Dragon Mage",
          "tags": [
            "Fire",
            "Conjuration",
            "Dragon",
            "Arcane"
          ],
          "unlocksItems": 2
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 9,
          "damageType": [],
          "description": "When you cast this spell, if there is room, summon Cindervein instead of a Fire Drake\nCan only activate once each level",
          "id": "cindervein",
          "name": "Cindervein",
          "tags": [
            "Fire",
            "Conjuration",
            "Dragon"
          ]
        }
      ]
    },
    "spell_fireball": {
      "asset": "UI/spell skill icons/fireball.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 9,
        "hp_cost": 0,
        "level": 1,
        "max_charges": 12,
        "melee": false,
        "quick_cast": false,
        "radius": 2,
        "range": 6,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "helmet": 2,
          "trinket": 1,
          "weapon": 12
        },
        "count": 17
      },
      "baseId": "fireball",
      "className": "FireballSpell",
      "damageType": [
        "Fire"
      ],
      "description": "Deal [9:damage] [Fire] damage in a [2:radius] tile burst",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 6,
        "outgoingCount": 0,
        "pathCount": 6
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_fireball.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/fireball.png",
      "id": "spell_fireball",
      "kind": "spell",
      "name": "Fireball",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "radius",
        "hp_cost",
        "ash",
        "duration",
        "meteor",
        "shaped_blast",
        "chaos"
      ],
      "tags": [
        "Fire",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Fireball [blinds] and [poisons] units for [{duration}:duration] turns",
          "id": "ash_ball",
          "name": "Ash Ball",
          "tags": [
            "Fire",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [
            "Physical"
          ],
          "description": "Units in the center tile take extra [Physical] damage and are [stunned] for [{duration}:duration] turns",
          "id": "meteor",
          "name": "Meteor",
          "tags": [
            "Fire",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Fireball gains 1 [radius] for every 4 tiles away that you cast it, and never damages the wizard or their allies",
          "id": "shaped_blast",
          "name": "Shaped Blast",
          "tags": [
            "Fire",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [
            "Physical",
            "Lightning"
          ],
          "description": "Fireball randomly deals [Physical], [Lightning], or [Fire] damage\nIf a unit is resistant to one or more of these damage types, Fireball deals the damage type that unit is least resistant to",
          "id": "chaos_ball",
          "name": "Chaos Ball",
          "tags": [
            "Fire",
            "Sorcery",
            "Chaos"
          ],
          "unlocksItems": 4
        }
      ]
    },
    "spell_flame_burst": {
      "asset": "UI/spell skill icons/flame_burst.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 40,
        "hp_cost": 0,
        "level": 4,
        "max_charges": 3,
        "melee": false,
        "quick_cast": false,
        "radius": 5,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "helmet": 1,
          "trinket": 1,
          "weapon": 11
        },
        "count": 15
      },
      "baseId": "flame_burst",
      "className": "FlameBurstSpell",
      "damageType": [],
      "description": "Deal [40:damage] [Fire] damage in a [5:radius] tile burst around the caster",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 4,
        "outgoingCount": 0,
        "pathCount": 1
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_flame_burst.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/flame_burst.png",
      "id": "spell_flame_burst",
      "kind": "spell",
      "name": "Flame Burst",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "radius",
        "hp_cost",
        "spreadflame",
        "dawnflame",
        "echo",
        "meltflame"
      ],
      "tags": [
        "Fire",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Melt walls adjacent to the blast",
          "id": "melting_flame",
          "name": "Melting Flame",
          "tags": [
            "Fire",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Deal [Holy] damage instead of [Fire]\nGrants allies [1 SH:shields] instead of damaging them",
          "id": "bright_flame",
          "name": "Bright Flame",
          "tags": [
            "Fire",
            "Sorcery",
            "Holy"
          ],
          "unlocksItems": 7
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Auto recasts at the end of your next turn",
          "id": "dual_burst",
          "name": "Dual Burst",
          "tags": [
            "Fire",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "Casting Flame Burst consumes all remaining charges\nFor each charge consumed, it gets +1 [radius]\nSlain units create additional explosions with half radius and damage\nWill not harm the caster",
          "id": "spreading_flame",
          "name": "Spreading Flame",
          "tags": [
            "Fire",
            "Sorcery"
          ]
        }
      ]
    },
    "spell_flame_gate": {
      "asset": "UI/spell skill icons/flame_gate.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 3,
        "melee": false,
        "minion_damage": 7,
        "minion_duration": 12,
        "minion_health": 22,
        "minion_range": 4,
        "quick_cast": false,
        "radius": 0,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 3,
          "helmet": 4,
          "trinket": 2,
          "weapon": 8
        },
        "count": 17
      },
      "baseId": "flame_gate",
      "className": "FlameGateSpell",
      "damageType": [],
      "description": "When you cast a [Fire] spell, summon a temporary Fire Elemental near the target\nThis effect ends if you move or manually cast a spell without the [Fire] tag",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_flame_gate.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/flame_gate.png",
      "id": "spell_flame_gate",
      "kind": "spell",
      "name": "Flame Gate",
      "stats": [
        "range",
        "max_charges",
        "radius",
        "minion_duration",
        "minion_damage",
        "minion_health",
        "minion_range",
        "hp_cost",
        "searing_gate",
        "damage",
        "starfire_summon",
        "cast_eye",
        "gatewatch",
        "num_summons"
      ],
      "tags": [
        "Fire",
        "Enchantment",
        "Conjuration"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Immediately summon [{num_summons}:num_summons] Fire Elementals when you cast this spell",
          "id": "gatewatch",
          "name": "Gatewatch",
          "tags": [
            "Fire",
            "Enchantment",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Flame Gate deals [{damage}:damage] [Fire] damage to enemies within [{radius}:radius] tiles of you each turn\nThis radius increases by 1 each time you cast a [Fire] spell",
          "id": "searing_gate",
          "name": "Searing Gate",
          "tags": [
            "Fire",
            "Enchantment",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Instead applies Starfire Gate\nStarfire Gate can be sustained with both [Fire] and [Arcane] spells\nStarfire Gate summons Starfire Elementals instead of Fire Elementals",
          "id": "starfire_gate",
          "name": "Starfire Gate",
          "tags": [
            "Fire",
            "Enchantment",
            "Conjuration",
            "Arcane"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Fire Elementals can cast your Eye of Fire on a 10 turn cool down",
          "id": "eye_gate",
          "name": "Eye Gate",
          "tags": [
            "Fire",
            "Enchantment",
            "Conjuration"
          ]
        }
      ]
    },
    "spell_flesh_fiend": {
      "asset": "UI/spell skill icons/flesh_fiend.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 80,
        "level": 5,
        "max_charges": 4,
        "melee": false,
        "minion_damage": 19,
        "minion_health": 431,
        "quick_cast": false,
        "range": 5,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "helmet": 3,
          "trinket": 2,
          "weapon": 5
        },
        "count": 11
      },
      "baseId": "flesh_fiend",
      "className": "FleshFiendSpell",
      "damageType": [],
      "description": "Summon a Flesh Fiend",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_flesh_fiend.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/flesh_fiend.png",
      "id": "spell_flesh_fiend",
      "kind": "spell",
      "name": "Flesh Fiend",
      "stats": [
        "range",
        "max_charges",
        "minion_damage",
        "minion_health",
        "hp_cost",
        "flaming",
        "cursed",
        "duration",
        "worm_lord",
        "belly_flop",
        "minion_range"
      ],
      "tags": [
        "Blood",
        "Conjuration"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "minion_damage": 25
          },
          "cost": 3,
          "damageType": [],
          "description": "Flesh Fiend gains a [{minion_range}:minion_range] range [{minion_damage}:minion_damage] damage leap attack on a 7 turn cooldown",
          "id": "belly_flop",
          "name": "Belly Flop",
          "tags": [
            "Blood",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Flesh Fiends gain the [Dark] tag\nEnemies who attack them with melee attacks receive [{duration}:duration] turns of [necrosis]",
          "id": "cursed_flesh",
          "name": "Cursed Flesh",
          "tags": [
            "Blood",
            "Conjuration",
            "Dark"
          ],
          "unlocksItems": 8
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Summon a Flaming Flesh Fiend instead",
          "id": "flaming_fiend",
          "name": "Flaming Fiend",
          "tags": [
            "Blood",
            "Conjuration",
            "Fire"
          ],
          "unlocksItems": 5
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 8,
          "damageType": [],
          "description": "Flesh Fiends can cast your Lumbriogenesis on a 13 turn cooldown",
          "id": "worm_lord",
          "name": "Worm Lord",
          "tags": [
            "Blood",
            "Conjuration"
          ]
        }
      ]
    },
    "spell_floating_eye": {
      "asset": "UI/spell skill icons/floating_eye.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 2,
        "max_charges": 12,
        "melee": false,
        "minion_damage": 2,
        "minion_duration": 20,
        "minion_health": 1,
        "quick_cast": false,
        "range": 5,
        "requires_los": true,
        "shields": 4
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "helmet": 3,
          "trinket": 3,
          "weapon": 5
        },
        "count": 13
      },
      "baseId": "floating_eye",
      "className": "SummonFloatingEye",
      "damageType": [],
      "description": "Summon a temporary Floating Eyeball",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 6,
        "outgoingCount": 1,
        "pathCount": 3
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_floating_eye.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/floating_eye.png",
      "id": "spell_floating_eye",
      "kind": "spell",
      "name": "Floating Eye",
      "stats": [
        "range",
        "max_charges",
        "minion_duration",
        "minion_damage",
        "minion_health",
        "shields",
        "hp_cost",
        "regen_shields",
        "eyemage",
        "stone_gaze"
      ],
      "tags": [
        "Eye",
        "Arcane",
        "Conjuration"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Floating Eyeball gains [2 SH:shields] per turn",
          "id": "regenerating_shields",
          "name": "Regenerating Shields",
          "tags": [
            "Eye",
            "Arcane",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 3,
          "damageType": null,
          "description": "When an enemy damages you for the first time, summon your Floating Eye nearby\n(Once per enemy)",
          "id": "eye_for_an_eye",
          "name": "Eye for an Eye",
          "tags": [
            "Eye",
            "Arcane",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Floating Eyeball can cast your Petrify on a 3 turn cooldown",
          "id": "stone_gaze",
          "name": "Stone Gaze",
          "tags": [
            "Eye",
            "Arcane",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Floating Eyeball can cast your other level 2 [Eye] spells on 15 turn cooldowns",
          "id": "eyemage",
          "name": "Eyemage",
          "tags": [
            "Eye",
            "Arcane",
            "Conjuration"
          ]
        }
      ]
    },
    "spell_flock_of_eagles": {
      "asset": "UI/spell skill icons/flock_of_eagles.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 5,
        "max_charges": 3,
        "melee": false,
        "minion_damage": 5,
        "minion_health": 22,
        "minion_range": 5,
        "num_summons": 4,
        "quick_cast": false,
        "range": 0,
        "requires_los": true,
        "shields": 0
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 3,
          "boots": 1,
          "helmet": 4,
          "trinket": 4,
          "weapon": 6
        },
        "count": 18
      },
      "baseId": "flock_of_eagles",
      "className": "FlockOfEaglesSpell",
      "damageType": [],
      "description": "Summon [4:num_summons] Eagles nearby",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_flock_of_eagles.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/flock_of_eagles.png",
      "id": "spell_flock_of_eagles",
      "kind": "spell",
      "name": "Flock of Eagles",
      "stats": [
        "range",
        "max_charges",
        "minion_damage",
        "minion_health",
        "minion_range",
        "shields",
        "num_summons",
        "hp_cost",
        "thunderbirds",
        "awe"
      ],
      "tags": [
        "Conjuration",
        "Nature",
        "Holy"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "",
          "id": "shielded_eagles",
          "name": "Shielded Eagles",
          "tags": [
            "Conjuration",
            "Nature",
            "Holy"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Eagles deal 10 [Holy] damage to enemies that damage them",
          "id": "untouchable_majesty",
          "name": "Untouchable Majesty",
          "tags": [
            "Conjuration",
            "Nature",
            "Holy"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Summon a Flock of Thunder Birds instead, which can cast your Thunder Strike on a 15 turn cool down",
          "id": "thunder_claw",
          "name": "Thunder Claw",
          "tags": [
            "Conjuration",
            "Nature",
            "Holy",
            "Lightning"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "",
          "id": "army_of_eagles",
          "name": "Army of Eagles",
          "tags": [
            "Conjuration",
            "Nature",
            "Holy"
          ]
        }
      ]
    },
    "spell_freeze": {
      "asset": "UI/spell skill icons/freeze.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "duration": 5,
        "hp_cost": 0,
        "level": 2,
        "max_charges": 20,
        "melee": false,
        "quick_cast": false,
        "range": 8,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "helmet": 3,
          "weapon": 6
        },
        "count": 11
      },
      "baseId": "freeze",
      "className": "Freeze",
      "damageType": [],
      "description": "Target is [frozen] for [5:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 2,
        "outgoingCount": 0,
        "pathCount": 1
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_freeze.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/freeze.png",
      "id": "spell_freeze",
      "kind": "spell",
      "name": "Freeze",
      "stats": [
        "range",
        "max_charges",
        "duration",
        "hp_cost",
        "quick_cast",
        "freeze_group",
        "refreezing"
      ],
      "tags": [
        "Enchantment",
        "Ice"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Freeze gains quickcast",
          "id": "quickcast",
          "name": "Quickcast",
          "tags": [
            "Enchantment",
            "Ice"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "The target is refrozen every turn for the duration",
          "id": "refreezing",
          "name": "Refreezing",
          "tags": [
            "Enchantment",
            "Ice"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 4,
          "damageType": null,
          "description": "",
          "id": "frostbite",
          "name": "Frostbite",
          "tags": [
            "Ice",
            "Dark",
            "Enchantment"
          ],
          "unlocksItems": 9
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Freeze affects a connected group of enemies",
          "id": "mass_freeze",
          "name": "Mass Freeze",
          "tags": [
            "Enchantment",
            "Ice"
          ]
        }
      ]
    },
    "spell_frostfire_hydra": {
      "asset": "UI/spell skill icons/frostfire_hydra.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 4,
        "melee": false,
        "minion_damage": 7,
        "minion_duration": 15,
        "minion_health": 16,
        "minion_range": 6,
        "quick_cast": false,
        "range": 5,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 5,
          "helmet": 3,
          "trinket": 5,
          "weapon": 10
        },
        "count": 23
      },
      "baseId": "frostfire_hydra",
      "className": "SummonFrostfireHydra",
      "damageType": [],
      "description": "Summon a temporary Frostfire Hydra",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_frostfire_hydra.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/frostfire_hydra.png",
      "id": "spell_frostfire_hydra",
      "kind": "spell",
      "name": "Frostfire Hydra",
      "stats": [
        "range",
        "max_charges",
        "minion_duration",
        "minion_damage",
        "minion_health",
        "minion_range",
        "hp_cost",
        "regen",
        "freezing",
        "duration",
        "crystal_eyes"
      ],
      "tags": [
        "Ice",
        "Fire",
        "Dragon",
        "Conjuration"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 2,
          "damageType": null,
          "description": "When a Frostfire Hydra expires, regain a charge of your Frostfire Hydra spell",
          "id": "hydra_reclamation",
          "name": "Hydra Reclamation",
          "tags": [
            "Ice",
            "Fire",
            "Dragon",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Half the damage dealt by Frostfire Hydra is redealt as [Arcane] damage",
          "id": "crystal_eyes_hydra",
          "name": "Crystal Eyes Hydra",
          "tags": [
            "Ice",
            "Fire",
            "Dragon",
            "Conjuration",
            "Arcane"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Frostfire Hydra's Ice Beam inflicts [{duration}:duration] turns of [frozen]",
          "id": "freezing_ice",
          "name": "Freezing Ice",
          "tags": [
            "Ice",
            "Fire",
            "Dragon",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "minion_health": 16
          },
          "cost": 5,
          "damageType": [],
          "description": "Frostfire Hydras heal [{minion_health}:minion_health] HP each turn",
          "id": "hydra_regrowth",
          "name": "Hydra Regrowth",
          "tags": [
            "Ice",
            "Fire",
            "Dragon",
            "Conjuration"
          ]
        }
      ]
    },
    "spell_furnace_of_sorcery": {
      "asset": "UI/spell skill icons/furnace_of_sorcery.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 6,
        "max_charges": 1,
        "melee": false,
        "minion_damage": 6,
        "minion_health": 26,
        "minion_range": 4,
        "quick_cast": false,
        "radius": 4,
        "range": 5,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 4,
          "helmet": 3,
          "trinket": 5,
          "weapon": 13
        },
        "count": 25
      },
      "baseId": "furnace_of_sorcery",
      "className": "FurnaceOfSorcerySpell",
      "damageType": [],
      "description": "Summon a Furnace of Sorcery which summons Furnace Hounds for every 100 damage dealt by [Sorcery] spells and equipment",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 3,
        "pathCount": 1
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_furnace_of_sorcery.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/furnace_of_sorcery.png",
      "id": "spell_furnace_of_sorcery",
      "kind": "spell",
      "name": "Furnace of Sorcery",
      "stats": [
        "range",
        "max_charges",
        "radius",
        "minion_damage",
        "minion_health",
        "minion_range",
        "hp_cost",
        "lasers",
        "smithy",
        "flames",
        "purity"
      ],
      "tags": [
        "Sorcery",
        "Metallic",
        "Fire",
        "Conjuration"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "The furnace can cast your Flame Burst on a 5 turn cooldown",
          "id": "flames_of_sorcery",
          "name": "Flames of Sorcery",
          "tags": [
            "Sorcery",
            "Metallic",
            "Fire",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "[Holy] and [Fire] damage count double",
          "id": "furnace_of_purity",
          "name": "Furnace of Purity",
          "tags": [
            "Sorcery",
            "Metallic",
            "Fire",
            "Conjuration",
            "Holy"
          ],
          "unlocksItems": 6
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "The furnace also summons a Furnace Imp for every 50 damage dealt",
          "id": "imp_smithy",
          "name": "Imp Smithy",
          "tags": [
            "Sorcery",
            "Metallic",
            "Fire",
            "Conjuration",
            "Dark"
          ],
          "unlocksItems": 7
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 7,
          "damageType": [],
          "description": "Furnace Hounds can cast your Magic Missile on a 4 turn cooldown",
          "id": "arcane_eyebolts",
          "name": "Arcane Eyebolts",
          "tags": [
            "Sorcery",
            "Metallic",
            "Fire",
            "Conjuration",
            "Arcane"
          ],
          "unlocksItems": 2
        }
      ]
    },
    "spell_ghostball": {
      "asset": "UI/spell skill icons/ghostball.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 10,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 6,
        "melee": false,
        "minion_damage": 1,
        "minion_duration": 10,
        "minion_health": 4,
        "quick_cast": false,
        "radius": 1,
        "range": 5,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 3,
          "boots": 1,
          "helmet": 5,
          "trinket": 5,
          "weapon": 13
        },
        "count": 27
      },
      "baseId": "ghostball",
      "className": "Ghostball",
      "damageType": [
        "Dark"
      ],
      "description": "Deal [10:damage] [Dark] damage to enemies in a [1:radius] tile burst\nSummon temporary Ghosts in affected empty tiles",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_ghostball.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/ghostball.png",
      "id": "spell_ghostball",
      "kind": "spell",
      "name": "Ghostball",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "radius",
        "minion_duration",
        "minion_damage",
        "minion_health",
        "hp_cost",
        "mass",
        "ignis",
        "duration",
        "memorial",
        "haunted",
        "num_summons"
      ],
      "tags": [
        "Dark",
        "Conjuration",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Curse affected enemies with [haunted:dark], which summons [{num_summons}:num_summons] Ghosts near them each turn\nLasts for [{duration}:duration] turns",
          "id": "haunting",
          "name": "Haunting",
          "tags": [
            "Dark",
            "Conjuration",
            "Sorcery",
            "Enchantment"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "If Ghostball targets an enemy and kills it, raise a Tombstone at their location",
          "id": "memorialize",
          "name": "Memorialize",
          "tags": [
            "Dark",
            "Conjuration",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [
            "Fire"
          ],
          "description": "Ghostball also inflicts [Fire] damage and [{duration}:duration] turns of [berserk]",
          "id": "ignis_fatuus",
          "name": "Ignis Fatuus",
          "tags": [
            "Dark",
            "Conjuration",
            "Sorcery",
            "Fire"
          ],
          "unlocksItems": 7
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 9,
          "damageType": [],
          "description": "Summon Ghostly Masses instead of Ghosts",
          "id": "ghost_mass",
          "name": "Ghost Mass",
          "tags": [
            "Dark",
            "Conjuration",
            "Sorcery"
          ]
        }
      ]
    },
    "spell_giant_bear": {
      "asset": "UI/spell skill icons/giant_bear.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 3,
        "melee": false,
        "minion_damage": 10,
        "minion_health": 75,
        "quick_cast": false,
        "range": 5,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "helmet": 3,
          "trinket": 2,
          "weapon": 4
        },
        "count": 11
      },
      "baseId": "giant_bear",
      "className": "SummonGiantBear",
      "damageType": [],
      "description": "Summon a Giant Bear\nIf you have multiple upgrades that would replace your bear, you attempt to expend multiple charges to summon multiple bears instead of one\nIf not enough charges remain, a random valid bear is chosen",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_giant_bear.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/giant_bear.png",
      "id": "spell_giant_bear",
      "kind": "spell",
      "name": "Giant Bear",
      "stats": [
        "range",
        "max_charges",
        "minion_damage",
        "minion_health",
        "hp_cost",
        "mauler",
        "num_targets",
        "blood",
        "venom",
        "armored"
      ],
      "tags": [
        "Nature",
        "Conjuration"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "The bear's melee attack hits [{num_targets}:num_targets] times, instead of twice",
          "id": "mauler",
          "name": "Mauler",
          "tags": [
            "Nature",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Summon an Armored Polar Bear instead",
          "id": "armored_polar_bear",
          "name": "Armored Polar Bear",
          "tags": [
            "Nature",
            "Conjuration",
            "Ice",
            "Metallic"
          ],
          "unlocksItems": 6
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Summons a Blood Bear instead",
          "id": "blood_bear",
          "name": "Blood Bear",
          "tags": [
            "Nature",
            "Conjuration",
            "Blood"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Summons a Venom Bear instead",
          "id": "venom_bear",
          "name": "Venom Bear",
          "tags": [
            "Nature",
            "Conjuration"
          ]
        }
      ]
    },
    "spell_goatia_offering": {
      "asset": "UI/spell skill icons/goatia_offering.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 3,
        "level": 2,
        "max_charges": 0,
        "melee": false,
        "minion_damage": 5,
        "minion_health": 17,
        "minion_range": 3,
        "quick_cast": false,
        "range": 5,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 4,
          "boots": 1,
          "helmet": 4,
          "trinket": 5,
          "weapon": 10
        },
        "count": 24
      },
      "baseId": "goatia_offering",
      "className": "GoatOffering",
      "damageType": [],
      "description": "Summon a Goatia",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 1,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_goatia_offering.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/goatia_offering.png",
      "id": "spell_goatia_offering",
      "kind": "spell",
      "name": "Goatia Offering",
      "stats": [
        "range",
        "max_charges",
        "minion_damage",
        "minion_health",
        "minion_range",
        "hp_cost",
        "maggot_host",
        "num_summons",
        "pain",
        "reincarnation"
      ],
      "tags": [
        "Blood",
        "Dark",
        "Nature",
        "Conjuration"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "On death, the Goatia summons [{num_summons}:num_summons] Mind Maggots",
          "id": "maggot_host",
          "name": "Maggot Host",
          "tags": [
            "Blood",
            "Dark",
            "Nature",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "minion_damage": 5
          },
          "cost": 3,
          "damageType": [],
          "description": "The Goatia deals [{minion_damage}:minion_damage] [Dark] damage to enemies that damage it",
          "id": "pain_aura",
          "name": "Pain Aura",
          "tags": [
            "Blood",
            "Dark",
            "Nature",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "The Goatia reincarnates once upon death",
          "id": "reincarnation",
          "name": "Reincarnation",
          "tags": [
            "Blood",
            "Dark",
            "Nature",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 9,
          "damageType": null,
          "description": "Damage that would be dealt to you is redirected toward your [Demon] allies",
          "id": "scape_goats",
          "name": "Scape Goats",
          "tags": [
            "Blood",
            "Dark",
            "Nature",
            "Conjuration"
          ]
        }
      ]
    },
    "spell_gold_drake": {
      "asset": "UI/spell skill icons/gold_drake.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 6,
        "max_charges": 2,
        "melee": false,
        "minion_damage": 9,
        "minion_health": 48,
        "minion_range": 5,
        "quick_cast": false,
        "range": 4,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 3,
          "boots": 1,
          "helmet": 4,
          "trinket": 6,
          "weapon": 7
        },
        "count": 21
      },
      "baseId": "gold_drake",
      "className": "SummonGoldDrakeSpell",
      "damageType": [],
      "description": "Summon a Gold Drake",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_gold_drake.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/gold_drake.png",
      "id": "spell_gold_drake",
      "kind": "spell",
      "name": "Gold Drake",
      "stats": [
        "range",
        "max_charges",
        "minion_damage",
        "minion_health",
        "minion_range",
        "hp_cost",
        "treasure_seekers",
        "dragon_mage",
        "dragon_saint",
        "immortal_dragon"
      ],
      "tags": [
        "Holy",
        "Conjuration",
        "Dragon"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "If you cast this spell targeting a Component or a Memory Orb, it is added to your inventory as though you had picked it up\nIf it was a Component with an On Pickup effect, that effect is also applied to the drake",
          "id": "treasure_seekers",
          "name": "Treasure Seekers",
          "tags": [
            "Holy",
            "Conjuration",
            "Dragon"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Gold Drake will reincarnate 3 times",
          "id": "immortal_dragon",
          "name": "Immortal Dragon",
          "tags": [
            "Holy",
            "Conjuration",
            "Dragon"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Gold Drakes can cast your Healing Light on an 8 turn cooldown",
          "id": "dragon_mage",
          "name": "Dragon Mage",
          "tags": [
            "Holy",
            "Conjuration",
            "Dragon"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "minion_damage": 14
          },
          "cost": 4,
          "damageType": [],
          "description": "Gold Drake deals [{minion_damage}:minion_damage] [Holy] damage to enemies that damage it",
          "id": "dragon_saint",
          "name": "Dragon Saint",
          "tags": [
            "Holy",
            "Conjuration",
            "Dragon"
          ]
        }
      ]
    },
    "spell_golden_skull": {
      "asset": "UI/spell skill icons/golden_skull.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 5,
        "max_charges": 2,
        "melee": false,
        "minion_damage": 13,
        "minion_health": 78,
        "minion_range": 7,
        "quick_cast": false,
        "range": 5,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 3,
          "boots": 1,
          "helmet": 4,
          "trinket": 7,
          "weapon": 10
        },
        "count": 25
      },
      "baseId": "golden_skull",
      "className": "GoldSkullSummonSpell",
      "damageType": [],
      "description": "Summon a Golden Skull",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 4,
        "pathCount": 1
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_golden_skull.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/golden_skull.png",
      "id": "spell_golden_skull",
      "kind": "spell",
      "name": "Golden Skull",
      "stats": [
        "range",
        "max_charges",
        "minion_damage",
        "minion_health",
        "minion_range",
        "hp_cost",
        "sentry",
        "wheel",
        "helmet",
        "bloodshift"
      ],
      "tags": [
        "Dark",
        "Holy",
        "Metallic",
        "Conjuration"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "The Golden Skull can cast your Bloodshift on a 3 turn cooldown",
          "id": "blood_skull",
          "name": "Blood Skull",
          "tags": [
            "Dark",
            "Holy",
            "Metallic",
            "Conjuration",
            "Blood"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "The Golden Skull is equipped with a copy of your headwear if you own any",
          "id": "armored_skulls",
          "name": "Armored Skulls",
          "tags": [
            "Dark",
            "Holy",
            "Metallic",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "When you cast this spell, if there is room, summon a Skull Sentry instead of a Golden Skull",
          "id": "skull_sentry",
          "name": "Skull Sentry",
          "tags": [
            "Dark",
            "Holy",
            "Metallic",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "The Golden Skull can cast your Wheel of Death on a 12 turn cooldown",
          "id": "bone_wheel",
          "name": "Bone Wheel",
          "tags": [
            "Dark",
            "Holy",
            "Metallic",
            "Conjuration"
          ]
        }
      ]
    },
    "spell_healing_light": {
      "asset": "UI/spell skill icons/healing_light.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "heal": 50,
        "hp_cost": 0,
        "level": 2,
        "max_charges": 25,
        "melee": false,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "boots": 1,
          "helmet": 2,
          "trinket": 2,
          "weapon": 5
        },
        "count": 11
      },
      "baseId": "healing_light",
      "className": "HealingLight",
      "damageType": [],
      "description": "Heal allies in line of sight for [50 HP:heal]",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 3,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_healing_light.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/healing_light.png",
      "id": "spell_healing_light",
      "kind": "spell",
      "name": "Healing Light",
      "stats": [
        "range",
        "max_charges",
        "heal",
        "hp_cost",
        "ritual",
        "max_channel",
        "heart_flame",
        "remove_debuffs",
        "shields"
      ],
      "tags": [
        "Holy",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Allies in line of sight lose all debuffs before being healed",
          "id": "purifying_light",
          "name": "Purifying Light",
          "tags": [
            "Holy",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Allies in line of sight gain [{shields} SH:shields]",
          "id": "shielding_light",
          "name": "Shielding Light",
          "tags": [
            "Holy",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [
            "Fire",
            "Holy"
          ],
          "description": "When Healing Light heals an ally, the nearest enemy in their line of sight takes that much [Fire] and [Holy] damage",
          "id": "heartflame",
          "name": "Heartflame",
          "tags": [
            "Holy",
            "Sorcery",
            "Fire"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "You may channel Healing Light for [{max_channel}:max_channel] turns\nIf you complete the ritual, apply a buff that regenerates [5 HP:heal] per turn for the remainder of the level to allies in line of sight",
          "id": "ritual_of_rejuvenation",
          "name": "Ritual of Rejuvenation",
          "tags": [
            "Holy",
            "Sorcery",
            "Ritual"
          ]
        }
      ]
    },
    "spell_heaven_s_wrath": {
      "asset": "UI/spell skill icons/heaven's_wrath.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 22,
        "hp_cost": 0,
        "level": 6,
        "max_charges": 4,
        "melee": false,
        "num_targets": 3,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "boots": 1,
          "helmet": 2,
          "trinket": 4,
          "weapon": 15
        },
        "count": 23
      },
      "baseId": "heaven_s_wrath",
      "className": "HeavensWrath",
      "damageType": [
        "Holy",
        "Lightning"
      ],
      "description": "Deal [22:damage] [Lightning] and [Holy] damage to the [3:num_targets] enemies with the highest current HP",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_heaven_s_wrath.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/heaven's_wrath.png",
      "id": "spell_heaven_s_wrath",
      "kind": "spell",
      "name": "Heaven's Wrath",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "num_targets",
        "hp_cost",
        "promise",
        "deal_fire",
        "stun",
        "duration",
        "culling"
      ],
      "tags": [
        "Holy",
        "Lightning",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Heaven's Wrath also [stuns] affected units for [{duration}:duration] turns",
          "id": "halt_heretics",
          "name": "Halt Heretics",
          "tags": [
            "Holy",
            "Lightning",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [
            "Fire"
          ],
          "description": "Heaven's Wrath also deals [Fire] damage",
          "id": "fiery_wrath",
          "name": "Fiery Wrath",
          "tags": [
            "Holy",
            "Lightning",
            "Sorcery",
            "Fire"
          ],
          "unlocksItems": 4
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Heaven's Wrath also damages the units with the lowest current HP",
          "id": "culling",
          "name": "Culling",
          "tags": [
            "Holy",
            "Lightning",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "Cast Seal Fate on units which survive the damage from Heaven's Wrath",
          "id": "heaven_s_promise",
          "name": "Heaven's Promise",
          "tags": [
            "Holy",
            "Lightning",
            "Sorcery",
            "Dark"
          ],
          "unlocksItems": 6
        }
      ]
    },
    "spell_heavenly_blast": {
      "asset": "UI/spell skill icons/heavenly_blast.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 14,
        "hp_cost": 0,
        "level": 2,
        "max_charges": 10,
        "melee": false,
        "quick_cast": false,
        "radius": 1,
        "range": 6,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "boots": 1,
          "helmet": 3,
          "trinket": 2,
          "weapon": 10
        },
        "count": 17
      },
      "baseId": "heavenly_blast",
      "className": "HolyBlast",
      "damageType": [
        "Holy"
      ],
      "description": "Deal [14:damage] [Holy] damage in a beam and in a [1:radius] tile burst around the target\nAllies are healed instead of damaged",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 3,
        "outgoingCount": 1,
        "pathCount": 3
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_heavenly_blast.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/heavenly_blast.png",
      "id": "spell_heavenly_blast",
      "kind": "spell",
      "name": "Heavenly Blast",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "radius",
        "hp_cost",
        "immolate",
        "judgement",
        "shield",
        "spiritbind",
        "minion_health",
        "minion_damage",
        "minion_range",
        "minion_duration"
      ],
      "tags": [
        "Holy",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Affected allies gain [2 SH:shields]",
          "id": "shield",
          "name": "Shield",
          "tags": [
            "Holy",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Slain enemies are raised as temporary Holy Ghosts",
          "id": "spirit_bind",
          "name": "Spirit Bind",
          "tags": [
            "Holy",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Holy Blast deals double damage to enemies at full health",
          "id": "judgement",
          "name": "Judgement",
          "tags": [
            "Holy",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 7,
          "damageType": [],
          "description": "Casting Heavenly Blast on an enemy also casts Immolate on them",
          "id": "immolating_blast",
          "name": "Immolating Blast",
          "tags": [
            "Holy",
            "Sorcery",
            "Fire"
          ],
          "unlocksItems": 8
        }
      ]
    },
    "spell_heavenly_idol": {
      "asset": "UI/spell skill icons/heavenly_idol.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 5,
        "max_charges": 4,
        "melee": false,
        "minion_duration": 15,
        "minion_health": 35,
        "quick_cast": false,
        "range": 5,
        "requires_los": true,
        "shields": 2
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "boots": 1,
          "helmet": 3,
          "trinket": 3,
          "weapon": 6
        },
        "count": 15
      },
      "baseId": "heavenly_idol",
      "className": "HeavenlyIdol",
      "damageType": [],
      "description": "Summon a Heavenly Idol",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_heavenly_idol.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/heavenly_idol.png",
      "id": "spell_heavenly_idol",
      "kind": "spell",
      "name": "Heavenly Idol",
      "stats": [
        "range",
        "max_charges",
        "minion_duration",
        "minion_health",
        "shields",
        "hp_cost",
        "immortality",
        "shield_gaze",
        "fire_gaze",
        "minion_damage",
        "minion_range",
        "move"
      ],
      "tags": [
        "Holy",
        "Conjuration"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "If there are no units in the idol's line of sight at the end of its turn, it will teleport to a random location",
          "id": "lonely_idol",
          "name": "Lonely Idol",
          "tags": [
            "Holy",
            "Conjuration",
            "Translocation"
          ],
          "unlocksItems": 2
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Heavenly Idol gains Shield Gaze, which sets the [SH:shields] of an ally with less than [4 SH:shields] to [4 SH:shields]",
          "id": "shield_gaze",
          "name": "Shield Gaze",
          "tags": [
            "Holy",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Heavenly Idol gains a [{minion_damage}:minion_damage] damage, [{minion_range}:minion_range] range, [Fire] attack",
          "id": "fire_gaze",
          "name": "Fire Gaze",
          "tags": [
            "Holy",
            "Conjuration",
            "Fire"
          ],
          "unlocksItems": 5
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Heavenly Idol can cast your Suspend Mortality on a 5 turn cooldown\nCannot target the Wizard",
          "id": "bastion_of_immortality",
          "name": "Bastion of Immortality",
          "tags": [
            "Holy",
            "Conjuration"
          ]
        }
      ]
    },
    "spell_holy_fire": {
      "asset": "UI/spell skill icons/holy_fire.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 22,
        "duration": 3,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 7,
        "melee": false,
        "quick_cast": false,
        "radius": 2,
        "range": 6,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 3,
          "boots": 1,
          "helmet": 3,
          "trinket": 4,
          "weapon": 16
        },
        "count": 27
      },
      "baseId": "holy_fire",
      "className": "HolyFlame",
      "damageType": [
        "Fire",
        "Holy"
      ],
      "description": "Deal [22:damage] [Fire] damage in a vertical line\nDeal [22:damage] [Holy] damage in a horizontal line\n[Stun] affected [Demon] and [Undead] units for [3:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 2,
        "outgoingCount": 5,
        "pathCount": 2
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_holy_fire.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/holy_fire.png",
      "id": "spell_holy_fire",
      "kind": "spell",
      "name": "Holy Fire",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "radius",
        "duration",
        "hp_cost",
        "heaven_call",
        "divine_blaze",
        "holy_smite"
      ],
      "tags": [
        "Fire",
        "Holy",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [
            "Lightning"
          ],
          "description": "Holy Fire also deals [Lightning] damage to its target",
          "id": "holy_smite",
          "name": "Holy Smite",
          "tags": [
            "Fire",
            "Holy",
            "Sorcery",
            "Lightning"
          ],
          "unlocksItems": 6
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 3,
          "damageType": null,
          "description": "When a [Holy] ally dies, regain a charge of Holy Fire",
          "id": "tithe_of_the_fallen",
          "name": "Tithe Of The Fallen",
          "tags": [
            "Fire",
            "Holy",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Casting Holy Fire also casts Blazerip on the target",
          "id": "divine_blaze",
          "name": "Divine Blaze",
          "tags": [
            "Fire",
            "Holy",
            "Sorcery",
            "Arcane"
          ],
          "unlocksItems": 4
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "When Holy Fire kills its target, cast Call Seraph where it died",
          "id": "heaven_call",
          "name": "Heaven Call",
          "tags": [
            "Fire",
            "Holy",
            "Sorcery"
          ]
        }
      ]
    },
    "spell_horde_of_halfmen": {
      "asset": "UI/spell skill icons/horde_of_halfmen.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 99,
        "level": 8,
        "max_charges": 0,
        "melee": false,
        "minion_damage": 12,
        "minion_health": 45,
        "minion_range": 6,
        "num_summons": 3,
        "quick_cast": false,
        "range": 5,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "helmet": 3,
          "trinket": 4,
          "weapon": 8
        },
        "count": 17
      },
      "baseId": "horde_of_halfmen",
      "className": "HordeOfHalfmen",
      "damageType": [],
      "description": "Summon [3:num_summons] Satyrs and [3:num_summons] Minotaurs",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_horde_of_halfmen.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/horde_of_halfmen.png",
      "id": "spell_horde_of_halfmen",
      "kind": "spell",
      "name": "Horde of Halfmen",
      "stats": [
        "range",
        "max_charges",
        "minion_damage",
        "minion_health",
        "minion_range",
        "num_summons",
        "hp_cost",
        "goat",
        "horses",
        "bull",
        "party"
      ],
      "tags": [
        "Nature",
        "Blood",
        "Conjuration"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "num_summons": 3
          },
          "cost": 3,
          "damageType": [],
          "description": "Also cast your Goatia Offering spell [{num_summons}:num_summons] times nearby",
          "id": "baphomet_s_horde",
          "name": "Baphomet's Horde",
          "tags": [
            "Nature",
            "Blood",
            "Conjuration",
            "Dark"
          ],
          "unlocksItems": 8
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "num_summons": 3
          },
          "cost": 4,
          "damageType": [],
          "description": "Also summon [{num_summons}:num_summons] Centaurs",
          "id": "all_the_king_s_horses",
          "name": "All the King's Horses",
          "tags": [
            "Nature",
            "Blood",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Also summon Pan",
          "id": "pandemonium_party",
          "name": "Pandemonium Party",
          "tags": [
            "Nature",
            "Blood",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "Also summon Minos",
          "id": "golden_bull",
          "name": "Golden Bull",
          "tags": [
            "Nature",
            "Blood",
            "Conjuration"
          ]
        }
      ]
    },
    "spell_hungry_maw": {
      "asset": "UI/spell skill icons/hungry_maw.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 2,
        "max_charges": 12,
        "melee": false,
        "minion_damage": 9,
        "minion_duration": 12,
        "minion_health": 8,
        "minion_range": 7,
        "quick_cast": false,
        "range": 4,
        "requires_los": true,
        "shields": 2
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "helmet": 3,
          "trinket": 2,
          "weapon": 5
        },
        "count": 12
      },
      "baseId": "hungry_maw",
      "className": "SummonHungryMaw",
      "damageType": [],
      "description": "Summon a temporary Hungry Maw",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_hungry_maw.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/hungry_maw.png",
      "id": "spell_hungry_maw",
      "kind": "spell",
      "name": "Hungry Maw",
      "stats": [
        "range",
        "max_charges",
        "minion_duration",
        "minion_damage",
        "minion_health",
        "minion_range",
        "shields",
        "hp_cost",
        "chasm_dweller",
        "void",
        "devour",
        "num_targets"
      ],
      "tags": [
        "Arcane",
        "Conjuration"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "Hungry Maws summoned over chasms are permanent, rather than temporary",
          "id": "chasm_dweller",
          "name": "Chasm Dweller",
          "tags": [
            "Arcane",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Hungry Maw gains a [Physical] melee attack which hits [{num_targets}:num_targets] times",
          "id": "gnashing_teeth",
          "name": "Gnashing Teeth",
          "tags": [
            "Arcane",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "",
          "id": "invincible_maw",
          "name": "Invincible Maw",
          "tags": [
            "Arcane",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Hungry Maws gain a wall melting, [Arcane] beam attack on a 3 turn cooldown",
          "id": "void_maw",
          "name": "Void Maw",
          "tags": [
            "Arcane",
            "Conjuration"
          ]
        }
      ]
    },
    "spell_ice_drake": {
      "asset": "UI/spell skill icons/ice_drake.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 4,
        "max_charges": 3,
        "melee": false,
        "minion_damage": 8,
        "minion_health": 48,
        "minion_range": 5,
        "quick_cast": false,
        "range": 4,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 3,
          "helmet": 3,
          "trinket": 4,
          "weapon": 7
        },
        "count": 17
      },
      "baseId": "ice_drake",
      "className": "SummonIceDrakeSpell",
      "damageType": [],
      "description": "Summon an Ice Drake",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 2,
        "outgoingCount": 1,
        "pathCount": 1
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_ice_drake.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/ice_drake.png",
      "id": "spell_ice_drake",
      "kind": "spell",
      "name": "Ice Drake",
      "stats": [
        "range",
        "max_charges",
        "minion_damage",
        "minion_health",
        "minion_range",
        "hp_cost",
        "winterbringer",
        "embrace",
        "dragon_mage"
      ],
      "tags": [
        "Ice",
        "Conjuration",
        "Dragon"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Ice Drakes gain the [Dark] tag and can cast your Death Chill on a 6 turn cooldown",
          "id": "dragon_mage",
          "name": "Dragon Mage",
          "tags": [
            "Ice",
            "Conjuration",
            "Dragon",
            "Dark"
          ],
          "unlocksItems": 8
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Instead of harming allies, the Ice Drake's breath grants them 5% [Ice] resist and 1 [SH:shields]",
          "id": "cold_embrace",
          "name": "Cold Embrace",
          "tags": [
            "Ice",
            "Conjuration",
            "Dragon"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "",
          "id": "elite_drakes",
          "name": "Elite Drakes",
          "tags": [
            "Ice",
            "Conjuration",
            "Dragon"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 9,
          "damageType": [],
          "description": "When you cast this spell, if there is room, summon Winterbringer instead of an Ice Drake\nCan only activate once each level",
          "id": "winterbringer",
          "name": "Winterbringer",
          "tags": [
            "Ice",
            "Conjuration",
            "Dragon"
          ]
        }
      ]
    },
    "spell_ice_phoenix": {
      "asset": "UI/spell skill icons/ice_phoenix.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 5,
        "lives": 2,
        "max_charges": 2,
        "melee": false,
        "minion_damage": 9,
        "minion_health": 125,
        "minion_range": 4,
        "quick_cast": false,
        "radius": 4,
        "range": 5,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 3,
          "boots": 1,
          "helmet": 4,
          "trinket": 4,
          "weapon": 8
        },
        "count": 20
      },
      "baseId": "ice_phoenix",
      "className": "SummonIcePhoenix",
      "damageType": [],
      "description": "Summon an Ice Phoenix",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_ice_phoenix.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/ice_phoenix.png",
      "id": "spell_ice_phoenix",
      "kind": "spell",
      "name": "Ice Phoenix",
      "stats": [
        "range",
        "max_charges",
        "radius",
        "minion_damage",
        "minion_health",
        "minion_range",
        "hp_cost",
        "freezing",
        "ice_aura",
        "lives",
        "regen"
      ],
      "tags": [
        "Conjuration",
        "Ice",
        "Holy"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "The Ice Phoenix's ranged attack [freezes] its target for 3 turns",
          "id": "freezing_attack",
          "name": "Freezing Attack",
          "tags": [
            "Conjuration",
            "Ice",
            "Holy"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "The Ice Phoenix will reincarnate 3 additional times",
          "id": "reincarnations",
          "name": "Reincarnations",
          "tags": [
            "Conjuration",
            "Ice",
            "Holy"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "The Ice Phoenix can cast your Regeneration Aura on a 12 turn cooldown",
          "id": "restorative_phoenix",
          "name": "Restorative Phoenix",
          "tags": [
            "Conjuration",
            "Ice",
            "Holy"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "radius": 4
          },
          "cost": 5,
          "damageType": [],
          "description": "The Ice Phoenix deals 2 [Ice] damage to enemies within [{radius}:radius] tiles each turn",
          "id": "polar_aura",
          "name": "Polar Aura",
          "tags": [
            "Conjuration",
            "Ice",
            "Holy"
          ]
        }
      ]
    },
    "spell_ice_vortex": {
      "asset": "UI/spell skill icons/ice_vortex.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 11,
        "duration": 3,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 6,
        "melee": false,
        "quick_cast": false,
        "radius": 3,
        "range": 8,
        "requires_los": false
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 3,
          "helmet": 2,
          "trinket": 2,
          "weapon": 13
        },
        "count": 20
      },
      "baseId": "ice_vortex",
      "className": "IceVortex",
      "damageType": [
        "Arcane",
        "Ice"
      ],
      "description": "Enemies within [3:radius] tiles of the target are pulled toward it, [frozen] for [3:duration] turns, and dealt [11:damage] [Arcane] and [Ice] damage\nMust target a [frozen] unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 2,
        "pathCount": 1
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_ice_vortex.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/ice_vortex.png",
      "id": "spell_ice_vortex",
      "kind": "spell",
      "name": "Ice Vortex",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "radius",
        "duration",
        "hp_cost",
        "drake_call",
        "storm",
        "ritual",
        "max_channel",
        "embodied"
      ],
      "tags": [
        "Ice",
        "Arcane",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "You may cast Ice Vortex on yourself, if you do, it gains +2 radius",
          "id": "embodied_vortex",
          "name": "Embodied Vortex",
          "tags": [
            "Ice",
            "Arcane",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Ice Vortex can be channeled for up to [{max_channel}:max_channel] turns\nIf the ritual is completed, it regains a charge",
          "id": "ritual_of_winter",
          "name": "Ritual of Winter",
          "tags": [
            "Ice",
            "Arcane",
            "Sorcery",
            "Ritual"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "duration": 12
          },
          "cost": 3,
          "damageType": [],
          "description": "Casting Ice Vortex targeting a unit with a cloud over it improves the spell\n[Blizzard:ice] : +2 [radius]\n[Storm Cloud:lightning] : Deal [Lightning] damage in addition to [Ice] and [Arcane]\n[Rain Cloud:nature] : Inflict [{duration}:duration] turns of Soaked before dealing damage",
          "id": "storm_vortex",
          "name": "Storm Vortex",
          "tags": [
            "Ice",
            "Arcane",
            "Sorcery",
            "Nature"
          ],
          "unlocksItems": 5
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 8,
          "damageType": [],
          "description": "If a unit is killed by this spell, cast your Ice Drake spell at their location",
          "id": "drake_calling",
          "name": "Drake Calling",
          "tags": [
            "Ice",
            "Arcane",
            "Sorcery",
            "Dragon"
          ],
          "unlocksItems": 2
        }
      ]
    },
    "spell_iceball": {
      "asset": "UI/spell skill icons/iceball.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 14,
        "duration": 3,
        "hp_cost": 0,
        "level": 2,
        "max_charges": 8,
        "melee": false,
        "quick_cast": false,
        "radius": 2,
        "range": 7,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "helmet": 2,
          "trinket": 1,
          "weapon": 12
        },
        "count": 17
      },
      "baseId": "iceball",
      "className": "Iceball",
      "damageType": [
        "Ice"
      ],
      "description": "Inflicts [14:damage] [Ice] damage and [3:duration] turns of [frozen] in a [2:radius] tile burst",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 2,
        "outgoingCount": 1,
        "pathCount": 1
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_iceball.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/iceball.png",
      "id": "spell_iceball",
      "kind": "spell",
      "name": "Iceball",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "radius",
        "duration",
        "hp_cost",
        "subzero",
        "summon_faery",
        "minion_health",
        "minion_damage",
        "minion_range",
        "icecrush",
        "cloud_combustion"
      ],
      "tags": [
        "Sorcery",
        "Ice"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [
            "Physical"
          ],
          "description": "Units inside of the area of effect which are already [frozen] take [Physical] damage before being [frozen] again",
          "id": "ice_crush",
          "name": "Ice Crush",
          "tags": [
            "Sorcery",
            "Ice"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Gain +2 radius and x2 damage if cast on a [Blizzard:ice]\nConsumes the [Blizzard:ice]",
          "id": "cloud_combustion",
          "name": "Cloud Combustion",
          "tags": [
            "Sorcery",
            "Ice"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "When you cast Iceball, summon an Ice Faery for every 4 enemies it damages",
          "id": "fae_ball",
          "name": "Fae Ball",
          "tags": [
            "Sorcery",
            "Ice",
            "Conjuration"
          ],
          "unlocksItems": 1
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Instead of inflicting [frozen], cast your Freeze spell on affected units",
          "id": "subzero_ice",
          "name": "Subzero Ice",
          "tags": [
            "Sorcery",
            "Ice"
          ]
        }
      ]
    },
    "spell_icicle": {
      "asset": "UI/spell skill icons/icicle.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 6,
        "hp_cost": 0,
        "level": 1,
        "max_charges": 14,
        "melee": false,
        "quick_cast": false,
        "radius": 1,
        "range": 6,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "helmet": 2,
          "weapon": 11
        },
        "count": 15
      },
      "baseId": "icicle",
      "className": "Icicle",
      "damageType": [
        "Ice",
        "Physical"
      ],
      "description": "Deal [6:damage] [Physical] damage to the target\nThen, deal [6:damage] [Ice] damage to the target and a [1:radius] tile burst around it\nTurns chasms into floors",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 1,
        "outgoingCount": 0,
        "pathCount": 1
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_icicle.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/icicle.png",
      "id": "spell_icicle",
      "kind": "spell",
      "name": "Icicle",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "radius",
        "hp_cost",
        "corrosive_shard",
        "storm_spike",
        "ice_spear",
        "freezing",
        "duration"
      ],
      "tags": [
        "Ice",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "[Freeze] the target for [{duration}:duration] turns",
          "id": "freezing",
          "name": "Freezing",
          "tags": [
            "Ice",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Deals [Physical] damage in a beam to the target",
          "id": "ice_spear",
          "name": "Ice Spear",
          "tags": [
            "Ice",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [
            "Poison",
            "Dark"
          ],
          "description": "Icicle also deals [Poison] and [Dark] damage to the target\nReduces a random resistance by 10%",
          "id": "corrosive_shard",
          "name": "Corrosive Shard",
          "tags": [
            "Ice",
            "Sorcery",
            "Dark"
          ],
          "unlocksItems": 11
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [
            "Lightning"
          ],
          "description": "Icicle also deals [Lightning] damage to affected tiles\nIcicle can be cast on any tile containing a cloud",
          "id": "storm_spike",
          "name": "Storm Spike",
          "tags": [
            "Ice",
            "Sorcery",
            "Lightning"
          ],
          "unlocksItems": 6
        }
      ]
    },
    "spell_immolate": {
      "asset": "UI/spell skill icons/immolate.png",
      "attributes": {
        "can_target_empty": false,
        "cool_down": 0,
        "damage": 3,
        "duration": 8,
        "hp_cost": 0,
        "level": 2,
        "max_charges": 6,
        "melee": false,
        "quick_cast": false,
        "range": 4,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "helmet": 3,
          "trinket": 1,
          "weapon": 10
        },
        "count": 16
      },
      "baseId": "immolate",
      "className": "ImmolateSpell",
      "damageType": [
        "Fire"
      ],
      "description": "Target enemy takes [3:damage] [Fire] damage each turn for [8:duration] turns\nThis damage increases by [3:damage] each turn",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 1,
        "outgoingCount": 0,
        "pathCount": 3
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_immolate.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/immolate.png",
      "id": "spell_immolate",
      "kind": "spell",
      "name": "Immolate",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "duration",
        "hp_cost",
        "curse_immolation",
        "unquenchable",
        "dragon_soul",
        "radiant_heat",
        "radius",
        "mass_immolate"
      ],
      "tags": [
        "Fire",
        "Enchantment"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "When an immolated enemy dies, regain a charge of another [Dragon] spell you know",
          "id": "dragon_soul",
          "name": "Dragon Soul",
          "tags": [
            "Fire",
            "Enchantment",
            "Dragon"
          ],
          "unlocksItems": 2
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "duration": 3
          },
          "cost": 3,
          "damageType": [],
          "description": "Immolate inflicts [{duration}:duration] turns of [blind] and deals half damage to enemies within [{radius}:radius] tiles each turn",
          "id": "radiant_heat",
          "name": "Radiant Heat",
          "tags": [
            "Fire",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Immolate gains permanent duration",
          "id": "unquenchable_flames",
          "name": "Unquenchable Flames",
          "tags": [
            "Fire",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [
            "Dark"
          ],
          "description": "Immolate will also deal [Dark] damage\nManually casting Immolate will remove all debuffs from the caster, and be cast again for free for each debuff removed",
          "id": "cursed_flames",
          "name": "Cursed Flames",
          "tags": [
            "Fire",
            "Enchantment",
            "Dark"
          ],
          "unlocksItems": 10
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 7,
          "damageType": [],
          "description": "Immolate affects a connected group of enemies",
          "id": "conflagration",
          "name": "Conflagration",
          "tags": [
            "Fire",
            "Enchantment"
          ]
        }
      ]
    },
    "spell_imp_swarm": {
      "asset": "UI/spell skill icons/imp_swarm.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "duration": 4,
        "hp_cost": 0,
        "level": 4,
        "max_charges": 2,
        "melee": false,
        "minion_damage": 3,
        "minion_duration": 8,
        "minion_health": 5,
        "minion_range": 3,
        "num_summons": 2,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "helmet": 4,
          "trinket": 2,
          "weapon": 8
        },
        "count": 15
      },
      "baseId": "imp_swarm",
      "className": "ImpGateSpell",
      "damageType": [],
      "description": "Each turn, summon [2:num_summons] temporary imps near the caster\nEach imp is either a [Fire], [Spark:lightning], or [Iron:physical] imp\nLasts [4:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 1,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_imp_swarm.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/imp_swarm.png",
      "id": "spell_imp_swarm",
      "kind": "spell",
      "name": "Imp Swarm",
      "stats": [
        "range",
        "max_charges",
        "duration",
        "minion_duration",
        "minion_damage",
        "minion_health",
        "minion_range",
        "num_summons",
        "hp_cost",
        "darkswarm",
        "metalswarm"
      ],
      "tags": [
        "Enchantment",
        "Conjuration",
        "Chaos"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Imp Swarm can also summon Rot, Void, and Insanity Imps",
          "id": "dark_swarm",
          "name": "Dark Swarm",
          "tags": [
            "Enchantment",
            "Conjuration",
            "Chaos",
            "Dark"
          ],
          "unlocksItems": 8
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Imp Swarm can also summon Copper, Tungsten, and Furnace Imps",
          "id": "metal_swarm",
          "name": "Metal Swarm",
          "tags": [
            "Enchantment",
            "Conjuration",
            "Chaos",
            "Metallic"
          ],
          "unlocksItems": 4
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 4,
          "damageType": null,
          "description": "",
          "id": "endless_swarm",
          "name": "Endless Swarm",
          "tags": [
            "Enchantment",
            "Conjuration",
            "Chaos"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "",
          "id": "elite_swarm",
          "name": "Elite Swarm",
          "tags": [
            "Enchantment",
            "Conjuration",
            "Chaos"
          ]
        }
      ]
    },
    "spell_invoke_savagery": {
      "asset": "UI/spell skill icons/invoke_savagery.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 18,
        "duration": 2,
        "hp_cost": 0,
        "level": 2,
        "max_charges": 6,
        "melee": false,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "helmet": 1,
          "trinket": 1,
          "weapon": 11
        },
        "count": 14
      },
      "baseId": "invoke_savagery",
      "className": "InvokeSavagerySpell",
      "damageType": [],
      "description": "Your [Living] allies attack a random enemy in melee range\nThe attack inflicts [18:damage] [Physical] damage and [2:duration] turns of [stun]",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 2,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_invoke_savagery.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/invoke_savagery.png",
      "id": "spell_invoke_savagery",
      "kind": "spell",
      "name": "Invoke Savagery",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "duration",
        "hp_cost",
        "leap_attack",
        "radius",
        "nature",
        "poison"
      ],
      "tags": [
        "Nature",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "The attack also permanently [poisons] the target",
          "id": "venomous_bite",
          "name": "Venomous Bite",
          "tags": [
            "Nature",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Invoke Savagery also affects your [Nature] allies",
          "id": "nature_s_wrath",
          "name": "Nature's Wrath",
          "tags": [
            "Nature",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "Instead of a melee attack, allies do a leap attack with a range of [{radius}:radius]",
          "id": "savage_leap",
          "name": "Savage Leap",
          "tags": [
            "Nature",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 9,
          "damageType": null,
          "description": "When your allies kill a unit, cast Invoke Savagery\nAlways Active",
          "id": "savage_spree",
          "name": "Savage Spree",
          "tags": [
            "Nature",
            "Sorcery"
          ]
        }
      ]
    },
    "spell_ion_tentacles": {
      "asset": "UI/spell skill icons/ion_tentacles.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 7,
        "duration": 14,
        "hp_cost": 0,
        "level": 8,
        "max_charges": 1,
        "melee": false,
        "num_targets": 1,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "helmet": 2,
          "trinket": 3,
          "weapon": 13
        },
        "count": 19
      },
      "baseId": "ion_tentacles",
      "className": "IonTentaclesSpell",
      "damageType": [],
      "description": "Deal [7:damage] [Arcane] or [Lightning] damage to the nearest [1:num_targets] enemies each turn\nFor the first half of the duration the number of tentacles increases by 1 each turn, then decreases by 1 each turn for the second half\nLasts [14:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_ion_tentacles.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/ion_tentacles.png",
      "id": "spell_ion_tentacles",
      "kind": "spell",
      "name": "Ion Tentacles",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "duration",
        "num_targets",
        "hp_cost",
        "cthulhu",
        "smart",
        "bloody_tendrils",
        "growing_power"
      ],
      "tags": [
        "Lightning",
        "Arcane",
        "Enchantment"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Tentacles deal the damage type their target is least resistant to between [Arcane] and [Lightning]",
          "id": "coordination",
          "name": "Coordination",
          "tags": [
            "Lightning",
            "Arcane",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Increase the starting number of targets by 2 for each [Eye] spell you know",
          "id": "cthulhu_form",
          "name": "Cthulhu Form",
          "tags": [
            "Lightning",
            "Arcane",
            "Enchantment",
            "Eye"
          ],
          "unlocksItems": 2
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Ion Tentacles heals you for 50% of the damage it deals",
          "id": "bloody_tendrils",
          "name": "Bloody Tendrils",
          "tags": [
            "Lightning",
            "Arcane",
            "Enchantment",
            "Blood"
          ],
          "unlocksItems": 4
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "damage": 1
          },
          "cost": 8,
          "damageType": [],
          "description": "Ion Tentacles' damage increases by [{damage}:damage] each turn for the first half of the duration, then decreases by [{damage}:damage] each turn for the second half",
          "id": "growing_power",
          "name": "Growing Power",
          "tags": [
            "Lightning",
            "Arcane",
            "Enchantment"
          ]
        }
      ]
    },
    "spell_ironize": {
      "asset": "UI/spell skill icons/ironize.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "duration": 10,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 4,
        "melee": false,
        "quick_cast": false,
        "range": 0,
        "requires_los": true,
        "resist": 50,
        "resist_arcane": 0
      },
      "augmentSummary": {
        "bySlot": {
          "helmet": 2,
          "trinket": 3,
          "weapon": 4
        },
        "count": 9
      },
      "baseId": "ironize",
      "className": "Ironize",
      "damageType": [],
      "description": "Allies gain [50 Physical:physical] resist, [50 Fire:fire] resist, and [50 Lightning:lightning] resist and become [Metallic]\nLasts [10:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_ironize.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/ironize.png",
      "id": "spell_ironize",
      "kind": "spell",
      "name": "Ironize",
      "stats": [
        "range",
        "max_charges",
        "duration",
        "hp_cost",
        "resist",
        "thorns",
        "resist_arcane",
        "permanence",
        "armor_plating"
      ],
      "tags": [
        "Enchantment",
        "Conjuration",
        "Metallic"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "Ironize also grants [50 Arcane:arcane] resist",
          "id": "arcane_insulation",
          "name": "Arcane Insulation",
          "tags": [
            "Enchantment",
            "Conjuration",
            "Metallic",
            "Arcane"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Ironize also grants allies [2 SH:shields]",
          "id": "armor_plating",
          "name": "Armor Plating",
          "tags": [
            "Enchantment",
            "Conjuration",
            "Metallic"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "duration": 3
          },
          "cost": 3,
          "damageType": [],
          "description": "Ironized allies also gain the Jagged Armor buff, which inflicts [{duration}:duration] turns of [bleed] on melee attackers",
          "id": "jagged_armor",
          "name": "Jagged Armor",
          "tags": [
            "Enchantment",
            "Conjuration",
            "Metallic"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Ironize gains a permanent duration",
          "id": "permanent_transmutation",
          "name": "Permanent Transmutation",
          "tags": [
            "Enchantment",
            "Conjuration",
            "Metallic"
          ]
        }
      ]
    },
    "spell_knightly_oath": {
      "asset": "UI/spell skill icons/knightly_oath.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 6,
        "max_charges": 3,
        "melee": false,
        "minion_damage": 8,
        "minion_health": 200,
        "minion_range": 3,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "boots": 1,
          "helmet": 4,
          "trinket": 2,
          "weapon": 4
        },
        "count": 13
      },
      "baseId": "knightly_oath",
      "className": "SummonKnights",
      "damageType": [],
      "description": "Summon a either a void knight, a storm knight, a chaos knight, or a blood knight\nThe summoned knight will match the spell school you have spent the most SP on\nVoid Knight: [Arcane]\nStorm Knight: [Lightning] or [Ice]\nChaos Knight: [Chaos]\nBlood Knight: [Blood]\nThe caster takes [40 Holy:holy] damage when a knight dies",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_knightly_oath.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/knightly_oath.png",
      "id": "spell_knightly_oath",
      "kind": "spell",
      "name": "Knightly Oath",
      "stats": [
        "range",
        "max_charges",
        "minion_damage",
        "minion_health",
        "minion_range",
        "hp_cost",
        "slime",
        "call",
        "armageddon",
        "ouranic"
      ],
      "tags": [
        "Conjuration",
        "Holy"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Knights gain flying and [quickstep:translocation]",
          "id": "ouranic_knights",
          "name": "Ouranic Knights",
          "tags": [
            "Conjuration",
            "Holy"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "When you cast Knightly Oath, consume remaining charges to summon that many additional knights",
          "id": "call_to_arms",
          "name": "Call to Arms",
          "tags": [
            "Conjuration",
            "Holy"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "When you cast Knightly Oath, cast Armageddon Blade on the summoned Knight",
          "id": "armageddon_court",
          "name": "Armageddon Court",
          "tags": [
            "Conjuration",
            "Holy",
            "Chaos"
          ],
          "unlocksItems": 1
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 9,
          "damageType": [],
          "description": "Knights gain the [Slime] tag and the Slime buff, healing over time, gaining max HP until it is double the original before splitting in two",
          "id": "slime_knights",
          "name": "Slime Knights",
          "tags": [
            "Conjuration",
            "Holy",
            "Slime"
          ],
          "unlocksItems": 4
        }
      ]
    },
    "spell_leghead": {
      "asset": "UI/spell skill icons/leghead.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 4,
        "max_charges": 3,
        "melee": false,
        "minion_damage": 12,
        "minion_health": 45,
        "quick_cast": false,
        "range": 3,
        "requires_los": true,
        "shields": 3
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 5,
          "boots": 1,
          "helmet": 5,
          "trinket": 4,
          "weapon": 7
        },
        "count": 22
      },
      "baseId": "leghead",
      "className": "SummonLeghead",
      "damageType": [],
      "description": "Summon a Leghead\nIt is equipped with a copy of your footwear if you own any",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_leghead.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/leghead.png",
      "id": "spell_leghead",
      "kind": "spell",
      "name": "Leghead",
      "stats": [
        "range",
        "max_charges",
        "minion_damage",
        "minion_health",
        "shields",
        "hp_cost",
        "juggernaut",
        "mismatch",
        "running_start",
        "rabid",
        "duration"
      ],
      "tags": [
        "Arcane",
        "Dark",
        "Conjuration",
        "Translocation"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Leghead's bite attack also inflicts [{duration}:duration] turns of [berserk]",
          "id": "rabid_bite",
          "name": "Rabid Bite",
          "tags": [
            "Arcane",
            "Dark",
            "Conjuration",
            "Translocation"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Leghead takes 3 turns immediately when summoned",
          "id": "running_start",
          "name": "Running Start",
          "tags": [
            "Arcane",
            "Dark",
            "Conjuration",
            "Translocation"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "Leghead is equipped with two different pairs of your footwear",
          "id": "mismatch",
          "name": "Mismatch",
          "tags": [
            "Arcane",
            "Dark",
            "Conjuration",
            "Translocation"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 7,
          "damageType": [],
          "description": "Leghead is immune to debuffs",
          "id": "unstoppable_juggernaut",
          "name": "Unstoppable Juggernaut",
          "tags": [
            "Arcane",
            "Dark",
            "Conjuration",
            "Translocation"
          ]
        }
      ]
    },
    "spell_lifedrain": {
      "asset": "UI/spell skill icons/lifedrain.png",
      "attributes": {
        "can_target_empty": false,
        "cool_down": 0,
        "damage": 3,
        "duration": 15,
        "hp_cost": 1,
        "level": 1,
        "max_charges": 16,
        "melee": false,
        "quick_cast": false,
        "range": 4,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "boots": 1,
          "helmet": 5,
          "trinket": 4,
          "weapon": 13
        },
        "count": 25
      },
      "baseId": "lifedrain",
      "className": "LifedrainSpell",
      "damageType": [
        "Dark"
      ],
      "description": "Deal [3:damage] [Dark] damage to the target each turn\nHeals the caster for damage dealt\nLasts [15:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 2,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_lifedrain.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/lifedrain.png",
      "id": "spell_lifedrain",
      "kind": "spell",
      "name": "Lifedrain",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "duration",
        "hp_cost",
        "requires_los",
        "chain",
        "num_targets",
        "radius",
        "stacking"
      ],
      "tags": [
        "Blood",
        "Dark",
        "Enchantment"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Lifedrain will stack instead of replacing the previous instance on subsequent applications",
          "id": "exsanguinate",
          "name": "Exsanguinate",
          "tags": [
            "Blood",
            "Dark",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "",
          "id": "blood_horizon",
          "name": "Blood Horizon",
          "tags": [
            "Blood",
            "Dark",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Lifedrain will also deal damage to and drain life from up to [{num_targets}:num_targets] enemies within [{radius}:radius] tiles of the target each turn",
          "id": "life_funnel",
          "name": "Life Funnel",
          "tags": [
            "Blood",
            "Dark",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 6,
          "damageType": null,
          "description": "When you cast an [Enchantment] spell other than Lifedrain targeting an enemy, Lifedrain is also cast on that target",
          "id": "blood_hexes",
          "name": "Blood Hexes",
          "tags": [
            "Blood",
            "Dark",
            "Enchantment"
          ]
        }
      ]
    },
    "spell_lightning_bolt": {
      "asset": "UI/spell skill icons/lightning_bolt.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 12,
        "hp_cost": 0,
        "level": 1,
        "max_charges": 14,
        "melee": false,
        "quick_cast": false,
        "range": 8,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "helmet": 2,
          "trinket": 1,
          "weapon": 11
        },
        "count": 14
      },
      "baseId": "lightning_bolt",
      "className": "LightningBoltSpell",
      "damageType": [
        "Lightning"
      ],
      "description": "Deal [12:damage] [Lightning] damage in a beam",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 5,
        "outgoingCount": 1,
        "pathCount": 8
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_lightning_bolt.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/lightning_bolt.png",
      "id": "spell_lightning_bolt",
      "kind": "spell",
      "name": "Lightning Bolt",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "hp_cost",
        "repeater",
        "duration",
        "stormbolt",
        "energy",
        "scrolls",
        "minion_health"
      ],
      "tags": [
        "Lightning",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "When Lightning Bolt kills a unit, summon a Living Lightning Scroll that can cast your Lightning Bolt once\nWhen it casts the spell it dies",
          "id": "electric_ink",
          "name": "Electric Ink",
          "tags": [
            "Lightning",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Create [Storm Clouds:lightning] on affected tiles",
          "id": "stormbolt",
          "name": "Stormbolt",
          "tags": [
            "Lightning",
            "Sorcery",
            "Nature"
          ],
          "unlocksItems": 4
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [
            "Arcane"
          ],
          "description": "Lightning Bolt also deals [Arcane] damage",
          "id": "energy_bolt",
          "name": "Energy Bolt",
          "tags": [
            "Lightning",
            "Sorcery",
            "Arcane"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "Lightning Bolt will be recast at the target location at the end of your turn for [{duration}:duration] turns",
          "id": "repeater_bolts",
          "name": "Repeater Bolts",
          "tags": [
            "Lightning",
            "Sorcery"
          ]
        }
      ]
    },
    "spell_lightning_form": {
      "asset": "UI/spell skill icons/lightning_form.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 4,
        "max_charges": 3,
        "melee": false,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "helmet": 2,
          "trinket": 2,
          "weapon": 4
        },
        "count": 9
      },
      "baseId": "lightning_form",
      "className": "LightningFormSpell",
      "damageType": [],
      "description": "When you cast a [Lightning] spell, if the target tile is unoccupied, teleport to that tile\nGain [100 Lightning:lightning] resistance\nGain [100 Physical:physical] resistance\nLightning Form ends if you fail to cast a [Lightning] spell on your turn",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_lightning_form.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/lightning_form.png",
      "id": "spell_lightning_form",
      "kind": "spell",
      "name": "Lightning Form",
      "stats": [
        "range",
        "max_charges",
        "hp_cost",
        "momentum",
        "crackling_aura",
        "damage",
        "num_targets",
        "radius",
        "fire_form",
        "lingering_form"
      ],
      "tags": [
        "Lightning",
        "Enchantment",
        "Translocation"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "Lasts 3 turns after you cast a [Lightning] spell",
          "id": "lingering_form",
          "name": "Lingering Form",
          "tags": [
            "Lightning",
            "Enchantment",
            "Translocation"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Each turn, Lightning Form deals [{damage}:damage] [Lightning] damage to up to [{num_targets}:num_targets] enemies within [{radius}:radius] tiles",
          "id": "crackling_aura",
          "name": "Crackling Aura",
          "tags": [
            "Lightning",
            "Enchantment",
            "Translocation"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Also works on [Fire] spells and grants [100 Fire:fire] resist",
          "id": "fire_form",
          "name": "Fire Form",
          "tags": [
            "Lightning",
            "Enchantment",
            "Translocation",
            "Fire"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Each turn Lightning Form is active, [Lightning] spells and equipment gain 10% [damage]\nThis bonus is removed with Lightning Form",
          "id": "gathering_momentum",
          "name": "Gathering Momentum",
          "tags": [
            "Lightning",
            "Enchantment",
            "Translocation"
          ]
        }
      ]
    },
    "spell_lightning_halo": {
      "asset": "UI/spell skill icons/lightning_halo.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 15,
        "duration": 12,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 2,
        "melee": false,
        "quick_cast": false,
        "radius": 3,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "helmet": 2,
          "trinket": 1,
          "weapon": 10
        },
        "count": 14
      },
      "baseId": "lightning_halo",
      "className": "LightningHaloSpell",
      "damageType": [
        "Lightning"
      ],
      "description": "Deal [15:damage] [Lightning] damage in a [3:radius] tile ring each turn\nLasts [12:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_lightning_halo.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/lightning_halo.png",
      "id": "spell_lightning_halo",
      "kind": "spell",
      "name": "Lightning Halo",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "radius",
        "duration",
        "hp_cost",
        "expanding",
        "cage",
        "radioactivity",
        "ring_of_fire"
      ],
      "tags": [
        "Enchantment",
        "Lightning"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [
            "Fire"
          ],
          "description": "Lightning Halo creates an additional outer ring that deals [Fire] damage",
          "id": "ring_of_fire",
          "name": "Ring of Fire",
          "tags": [
            "Enchantment",
            "Lightning",
            "Fire"
          ],
          "unlocksItems": 6
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "duration": 12
          },
          "cost": 3,
          "damageType": [],
          "description": "Lightning Halo grants [100% Lightning:lightning] resist and [{duration}:duration] turns of clarity when cast",
          "id": "faraday_cage",
          "name": "Faraday Cage",
          "tags": [
            "Enchantment",
            "Lightning",
            "Metallic"
          ],
          "unlocksItems": 2
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "duration": 15
          },
          "cost": 4,
          "damageType": [
            "Poison"
          ],
          "description": "Enemies inside the halo take [Poison] damage and are [poisoned] for [{duration}:duration] turns",
          "id": "radioactive_field",
          "name": "Radioactive Field",
          "tags": [
            "Enchantment",
            "Lightning"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "The halo grows by +1 radius each turn",
          "id": "lightning_nova",
          "name": "Lightning Nova",
          "tags": [
            "Enchantment",
            "Lightning"
          ]
        }
      ]
    },
    "spell_lightning_spire": {
      "asset": "UI/spell skill icons/lightning_spire.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 3,
        "melee": false,
        "minion_damage": 8,
        "minion_health": 35,
        "num_targets": 4,
        "quick_cast": false,
        "radius": 3,
        "range": 5,
        "requires_los": 1
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "helmet": 3,
          "trinket": 7,
          "weapon": 8
        },
        "count": 20
      },
      "baseId": "lightning_spire",
      "className": "LightningSpire",
      "damageType": [],
      "description": "Summon a Lightning Spire",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_lightning_spire.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/lightning_spire.png",
      "id": "spell_lightning_spire",
      "kind": "spell",
      "name": "Lightning Spire",
      "stats": [
        "range",
        "max_charges",
        "radius",
        "minion_damage",
        "minion_health",
        "num_targets",
        "hp_cost",
        "requires_los",
        "resistance_debuff",
        "blindcasting"
      ],
      "tags": [
        "Lightning",
        "Metallic",
        "Conjuration"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "",
          "id": "mass_blasting",
          "name": "Mass Blasting",
          "tags": [
            "Lightning",
            "Metallic",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 4,
          "damageType": null,
          "description": "",
          "id": "spire_network",
          "name": "Spire Network",
          "tags": [
            "Lightning",
            "Metallic",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Lightning Spires can zap enemies through walls",
          "id": "wall_penetration",
          "name": "Wall Penetration",
          "tags": [
            "Lightning",
            "Metallic",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "Zapped units lose [10% Lightning:lightning] resistance",
          "id": "resistance_penetration",
          "name": "Resistance Penetration",
          "tags": [
            "Lightning",
            "Metallic",
            "Conjuration"
          ]
        }
      ]
    },
    "spell_lightning_storm": {
      "asset": "UI/spell skill icons/lightning_storm.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 12,
        "duration": 10,
        "hp_cost": 0,
        "level": 4,
        "max_charges": 3,
        "melee": false,
        "quick_cast": false,
        "radius": 4,
        "range": 6,
        "requires_los": true,
        "strikechance": 50
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "helmet": 3,
          "trinket": 1,
          "weapon": 15
        },
        "count": 21
      },
      "baseId": "lightning_storm",
      "className": "StormSpell",
      "damageType": [],
      "description": "Create [Storm Clouds:lightning] over tiles in a [4:radius] tile radius\n[Storm Clouds:lightning] have a [50%:strikechance] chance of dealing [12:damage] [Lightning] damage each turn\nThe clouds last for [10:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_lightning_storm.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/lightning_storm.png",
      "id": "spell_lightning_storm",
      "kind": "spell",
      "name": "Lightning Storm",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "radius",
        "duration",
        "hp_cost",
        "strikechance",
        "particle"
      ],
      "tags": [
        "Lightning",
        "Nature",
        "Enchantment"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "[Storm Clouds:lightning] deal damage every turn",
          "id": "surestrike",
          "name": "Surestrike",
          "tags": [
            "Lightning",
            "Nature",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "",
          "id": "supercell",
          "name": "Supercell",
          "tags": [
            "Lightning",
            "Nature",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "damage": 3
          },
          "cost": 4,
          "damageType": [],
          "description": "Clouds summoned by Lightning Storm also deal [{damage}:damage] [Arcane] damage every turn",
          "id": "particle_storm",
          "name": "Particle Storm",
          "tags": [
            "Lightning",
            "Nature",
            "Enchantment",
            "Arcane"
          ],
          "unlocksItems": 4
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 5,
          "damageType": null,
          "description": "For every 75 damage dealt by Lightning Storm, summon a Storm Spirit\nAdds the [Conjuration] tag",
          "id": "spirit_harvest",
          "name": "Spirit Harvest",
          "tags": [
            "Lightning",
            "Nature",
            "Enchantment",
            "Conjuration"
          ],
          "unlocksItems": 2
        }
      ]
    },
    "spell_lumbriogenesis": {
      "asset": "UI/spell skill icons/lumbriogenesis.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 4,
        "melee": true,
        "quick_cast": false,
        "range": 1,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "helmet": 1,
          "weapon": 4
        },
        "count": 5
      },
      "baseId": "lumbriogenesis",
      "className": "Lumbriogenesis",
      "damageType": [],
      "description": "Pay half your current HP rounded up to summon a Worm Ball with that much health\nWorm Balls have a melee attack that deals damage equal to half their max HP\nIf you sacrificed 50 or more HP, summon a Worm Shambler instead",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 1,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_lumbriogenesis.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/lumbriogenesis.png",
      "id": "spell_lumbriogenesis",
      "kind": "spell",
      "name": "Lumbriogenesis",
      "stats": [
        "range",
        "max_charges",
        "hp_cost",
        "ghostly",
        "iron",
        "toxic"
      ],
      "tags": [
        "Blood",
        "Nature",
        "Conjuration"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Also summon a Toxic Worm Ball",
          "id": "toxogenesis",
          "name": "Toxogenesis",
          "tags": [
            "Blood",
            "Nature",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Also summon a Ghost Worm Ball",
          "id": "ectogenesis",
          "name": "Ectogenesis",
          "tags": [
            "Blood",
            "Nature",
            "Conjuration",
            "Dark"
          ],
          "unlocksItems": 7
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Also summon an Iron Worm Ball",
          "id": "mechanogenesis",
          "name": "Mechanogenesis",
          "tags": [
            "Blood",
            "Nature",
            "Conjuration",
            "Metallic"
          ],
          "unlocksItems": 2
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 6,
          "damageType": null,
          "description": "",
          "id": "worm_host",
          "name": "Worm Host",
          "tags": [
            "Blood",
            "Nature",
            "Conjuration"
          ]
        }
      ]
    },
    "spell_magic_missile": {
      "asset": "UI/spell skill icons/magic_missile.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 11,
        "hp_cost": 0,
        "level": 1,
        "max_charges": 20,
        "melee": false,
        "quick_cast": false,
        "range": 9,
        "requires_los": true,
        "shield_burn": 0
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "helmet": 2,
          "weapon": 8
        },
        "count": 11
      },
      "baseId": "magic_missile",
      "className": "MagicMissile",
      "damageType": [
        "Arcane"
      ],
      "description": "Deal [11:damage] [Arcane] damage to the target",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 5,
        "outgoingCount": 1,
        "pathCount": 10
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_magic_missile.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/magic_missile.png",
      "id": "spell_magic_missile",
      "kind": "spell",
      "name": "Magic Missile",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "hp_cost",
        "ricochet",
        "num_targets",
        "barrage",
        "disruption",
        "shield_burn"
      ],
      "tags": [
        "Arcane",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Magic Missile removes all [SH:shields] from the target before dealing damage",
          "id": "shield_burn",
          "name": "Shield Burn",
          "tags": [
            "Arcane",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "When you cast Magic Missile, up to [{num_targets}:num_targets] additional missiles are fired by [Arcane] allies in line of sight of the target",
          "id": "arcane_crossfire",
          "name": "Arcane Crossfire",
          "tags": [
            "Arcane",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [
            "Dark",
            "Holy"
          ],
          "description": "If Magic Missile targets an [Arcane] unit, it deals [Dark] and [Holy] damage instead of [Arcane]",
          "id": "disruption_bolt",
          "name": "Disruption Bolt",
          "tags": [
            "Arcane",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Magic Missile bounces up to [{num_targets}:num_targets] times to targets in range and line of sight of the target",
          "id": "ricochet",
          "name": "Ricochet",
          "tags": [
            "Arcane",
            "Sorcery"
          ]
        }
      ]
    },
    "spell_magnetize": {
      "asset": "UI/spell skill icons/magnetize.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 10,
        "duration": 10,
        "hp_cost": 0,
        "level": 2,
        "max_charges": 18,
        "melee": false,
        "quick_cast": false,
        "radius": 3,
        "range": 8,
        "requires_los": false
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "helmet": 3,
          "trinket": 3,
          "weapon": 12
        },
        "count": 19
      },
      "baseId": "magnetize",
      "className": "MagnetizeSpell",
      "damageType": [
        "Lightning"
      ],
      "description": "Magnetize target [Metallic] unit\nEnemies within [3:radius] tiles of the magnetized unit are pulled 1 tile toward it each turn\nThen, deal [10:damage] [Lightning] damage to adjacent enemies\nLasts [10:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 2,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_magnetize.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/magnetize.png",
      "id": "spell_magnetize",
      "kind": "spell",
      "name": "Magnetize",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "radius",
        "duration",
        "hp_cost",
        "hemomagnetism",
        "cast_mercurize",
        "electromagnetism",
        "radioactivity"
      ],
      "tags": [
        "Lightning",
        "Metallic",
        "Enchantment"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "Magnetism can also target [Living] units",
          "id": "hemomagnetism",
          "name": "Hemomagnetism",
          "tags": [
            "Lightning",
            "Metallic",
            "Enchantment",
            "Blood"
          ],
          "unlocksItems": 5
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Lowers an enemy's or raises an ally's [Lightning] and [Arcane] resistances by 75%\nMagnetize also deals [Poison] damage to all enemies in its radius each turn",
          "id": "radioactivity",
          "name": "Radioactivity",
          "tags": [
            "Lightning",
            "Metallic",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Deals [Lightning] damage to all enemies in its radius rather than just adjacent ones",
          "id": "electromagnetism",
          "name": "Electromagnetism",
          "tags": [
            "Lightning",
            "Metallic",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "duration": 1
          },
          "cost": 6,
          "damageType": [],
          "description": "At the end of a Magnetized unit's turn, cast Mercurize on adjacent enemies for [{duration}:duration] turns",
          "id": "liquid_magnetism",
          "name": "Liquid Magnetism",
          "tags": [
            "Lightning",
            "Metallic",
            "Enchantment"
          ]
        }
      ]
    },
    "spell_mass_calcification": {
      "asset": "UI/spell skill icons/mass_calcification.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 4,
        "max_charges": 3,
        "melee": false,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "boots": 1,
          "helmet": 3,
          "trinket": 2,
          "weapon": 4
        },
        "count": 12
      },
      "baseId": "mass_calcification",
      "className": "MassCalcification",
      "damageType": [],
      "description": "Non [Undead] allies are killed and raised as Bone Shamblers\nBone Shamblers inherit the HP of slain units, and have a melee attack that deals damage equal to a quarter of their max HP",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_mass_calcification.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/mass_calcification.png",
      "id": "spell_mass_calcification",
      "kind": "spell",
      "name": "Mass Calcification",
      "stats": [
        "range",
        "max_charges",
        "hp_cost",
        "harvest",
        "aggregate",
        "blood",
        "shards",
        "damage",
        "num_targets"
      ],
      "tags": [
        "Dark",
        "Enchantment"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Instead of summoning individual Bone Shamblers, summon a single massive Bone Shambler with the slain units' combined HP",
          "id": "osseous_amalgam",
          "name": "Osseous Amalgam",
          "tags": [
            "Dark",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Slain allies explode, dealing [{damage}:damage] [Physical] damage to up to [{num_targets}:num_targets] enemies in their line of sight",
          "id": "bone_shards",
          "name": "Bone Shards",
          "tags": [
            "Dark",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Heal for the current HP of allies slain by this spell",
          "id": "blood_salvage",
          "name": "Blood Salvage",
          "tags": [
            "Dark",
            "Enchantment",
            "Blood"
          ],
          "unlocksItems": 2
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Regain a charge of another [Dark] spell when you kill an ally with Mass Calcification",
          "id": "dark_harvest",
          "name": "Dark Harvest",
          "tags": [
            "Dark",
            "Enchantment"
          ]
        }
      ]
    },
    "spell_melt": {
      "asset": "UI/spell skill icons/melt.png",
      "attributes": {
        "can_target_empty": false,
        "cool_down": 0,
        "damage": 22,
        "duration": 3,
        "hp_cost": 0,
        "level": 2,
        "max_charges": 14,
        "melee": false,
        "quick_cast": false,
        "range": 5,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "helmet": 2,
          "trinket": 2,
          "weapon": 11
        },
        "count": 17
      },
      "baseId": "melt",
      "className": "MeltSpell",
      "damageType": [
        "Fire"
      ],
      "description": "Target takes [22:damage] [Fire] damage and loses [100 Physical:physical] resist",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 2,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_melt.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/melt.png",
      "id": "spell_melt",
      "kind": "spell",
      "name": "Melt",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "duration",
        "hp_cost",
        "mass_melt",
        "num_targets",
        "plasmify",
        "minion_health",
        "minion_damage",
        "minion_range"
      ],
      "tags": [
        "Fire",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Melt affects up to [{num_targets}:num_targets] enemies in a connected group",
          "id": "mass_melt",
          "name": "Mass Melt",
          "tags": [
            "Fire",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 3,
          "damageType": null,
          "description": "If you end your turn in range of a [frozen] or soaked enemy, cast Melt on them",
          "id": "melting_point",
          "name": "Melting Point",
          "tags": [
            "Fire",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Summon 2 Red Slimes when Melt kills its target",
          "id": "plasmify",
          "name": "Plasmify",
          "tags": [
            "Fire",
            "Sorcery",
            "Slime"
          ],
          "unlocksItems": 4
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 5,
          "damageType": null,
          "description": "When you cast a [Fire] or [Chaos] spell other than Melt targeting an enemy, Melt is also cast at the target\nAlways Active",
          "id": "white_flame",
          "name": "White Flame",
          "tags": [
            "Fire",
            "Sorcery"
          ]
        }
      ]
    },
    "spell_mercurize": {
      "asset": "UI/spell skill icons/mercurize.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 2,
        "duration": 6,
        "hp_cost": 0,
        "level": 2,
        "max_charges": 5,
        "melee": false,
        "minion_damage": 10,
        "minion_duration": 10,
        "quick_cast": false,
        "range": 5,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "boots": 1,
          "helmet": 6,
          "trinket": 8,
          "weapon": 14
        },
        "count": 31
      },
      "baseId": "mercurize",
      "className": "MercurizeSpell",
      "damageType": [
        "Poison",
        "Physical"
      ],
      "description": "Afflict the target with Mercurized for [6:duration] turns\nMercurized units take [2:damage] [Poison] and [Physical] damage each turn\nIf the target dies while Mercurized, it is raised as a temporary Mercurial Geist\nThe Geist inherits the max HP of the Mercurized unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 3,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_mercurize.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/mercurize.png",
      "id": "spell_mercurize",
      "kind": "spell",
      "name": "Mercurize",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "duration",
        "minion_duration",
        "minion_damage",
        "hp_cost",
        "mad_hatter",
        "vengeance",
        "retrograde",
        "dark"
      ],
      "tags": [
        "Dark",
        "Metallic",
        "Enchantment",
        "Conjuration"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [
            "Dark"
          ],
          "description": "Mercurized also deals [Dark] damage",
          "id": "morbidity",
          "name": "Morbidity",
          "tags": [
            "Dark",
            "Metallic",
            "Enchantment",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Each turn, units affected by Mercurized with less than half health become [berserk] for the remainder of its duration",
          "id": "mercurial_temper",
          "name": "Mercurial Temper",
          "tags": [
            "Dark",
            "Metallic",
            "Enchantment",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "When a Mercurial Geist is killed, its killer is afflicted with Mercurized",
          "id": "mercurial_vengeance",
          "name": "Mercurial Vengeance",
          "tags": [
            "Dark",
            "Metallic",
            "Enchantment",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "The cooldowns of the target's spells will not progress while they are Mercurized",
          "id": "retrograde",
          "name": "Retrograde",
          "tags": [
            "Dark",
            "Metallic",
            "Enchantment",
            "Conjuration"
          ]
        }
      ]
    },
    "spell_miasma": {
      "asset": "UI/spell skill icons/miasma.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 10,
        "duration": 6,
        "growth_rate": 1,
        "hp_cost": 0,
        "level": 6,
        "max_channel": 4,
        "max_charges": 3,
        "melee": false,
        "quick_cast": false,
        "radius": 3,
        "range": 36,
        "requires_los": false
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 3,
          "boots": 2,
          "helmet": 4,
          "trinket": 5,
          "weapon": 16
        },
        "count": 30
      },
      "baseId": "miasma",
      "className": "Miasma",
      "damageType": [
        "Poison"
      ],
      "description": "Create an expanding area of miasma in a [3:radius] tile burst at the target location\nEnemies in affected tiles take [10:damage] [Poison] damage and are afflicted with [blind], [silence], and [poison] for [6:duration] turns\nEach turn spent channeling increases the radius of the affected area by 1",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_miasma.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/miasma.png",
      "id": "spell_miasma",
      "kind": "spell",
      "name": "Miasma",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "radius",
        "duration",
        "max_channel",
        "hp_cost",
        "growth_rate",
        "plague",
        "ritual",
        "corrupt"
      ],
      "tags": [
        "Dark",
        "Nature",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "damage": 30
          },
          "cost": 3,
          "damageType": [
            "Dark"
          ],
          "description": "If the ritual is completed, all [poisoned] enemies on the level take [{damage}:damage] [Dark] and [Poison] damage",
          "id": "ritual_of_suffocation",
          "name": "Ritual of Suffocation",
          "tags": [
            "Dark",
            "Nature",
            "Sorcery",
            "Ritual"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Miasma also inflicts [necrosis] and [bleed]",
          "id": "consumptive_vapors",
          "name": "Consumptive Vapors",
          "tags": [
            "Dark",
            "Nature",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Miasma's radius expands twice as fast",
          "id": "rapid_growth",
          "name": "Rapid Growth",
          "tags": [
            "Dark",
            "Nature",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 8,
          "damageType": [],
          "description": "Cast Rot Gaze for free each turn you channel Miasma",
          "id": "plague_bringer",
          "name": "Plague Bringer",
          "tags": [
            "Dark",
            "Nature",
            "Sorcery"
          ]
        }
      ]
    },
    "spell_moon_glaive": {
      "asset": "UI/spell skill icons/moon_glaive.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 14,
        "hp_cost": 0,
        "level": 2,
        "max_charges": 7,
        "melee": false,
        "quick_cast": false,
        "range": 9,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "helmet": 2,
          "trinket": 3,
          "weapon": 10
        },
        "count": 16
      },
      "baseId": "moon_glaive",
      "className": "MoonGlaive",
      "damageType": [
        "Physical",
        "Arcane"
      ],
      "description": "Hurl a Moon Glaive at the target\nDeal [14:damage] [Arcane] and [Physical] damage in a line\nThe glaive will linger on the target tile for 1 turn, and return at the end of your next turn, dealing damage again\nMust target an unoccupied tile",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_moon_glaive.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/moon_glaive.png",
      "id": "spell_moon_glaive",
      "kind": "spell",
      "name": "Moon Glaive",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "hp_cost",
        "gravity_blade",
        "radius",
        "duration",
        "lightning_hit",
        "los_hit"
      ],
      "tags": [
        "Metallic",
        "Arcane",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "damage": 14
          },
          "cost": 3,
          "damageType": [
            "Lightning"
          ],
          "description": "Moon Glaive also deals [Lightning] damage as it travels\nWhen it reaches its destination, Moon Glaive deals [{damage}:damage] [Lightning] damage to enemies within [{radius}:radius] tiles",
          "id": "electroblade",
          "name": "Electroblade",
          "tags": [
            "Metallic",
            "Arcane",
            "Sorcery",
            "Lightning"
          ],
          "unlocksItems": 4
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Moon Glaive now pulls all enemies within [{radius} tiles:radius] toward itself each turn\nIt will linger for [{duration}:duration] turns before returning",
          "id": "gravityblade",
          "name": "Gravityblade",
          "tags": [
            "Metallic",
            "Arcane",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "damage": 1
          },
          "cost": 4,
          "damageType": [],
          "description": "Deals [{damage}:damage] [Arcane] damage to enemies in line of sight of the target",
          "id": "glimmerblade",
          "name": "Glimmerblade",
          "tags": [
            "Metallic",
            "Arcane",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 5,
          "damageType": null,
          "description": "Moon Glaive gains +1 [damage] each time a [Living] or [Nature] ally is summoned\nBonus damage lasts until next realm\nAdds [Nature] tag",
          "id": "glaive_warden",
          "name": "Glaive Warden",
          "tags": [
            "Metallic",
            "Arcane",
            "Sorcery",
            "Nature"
          ],
          "unlocksItems": 5
        }
      ]
    },
    "spell_multicast": {
      "asset": "UI/spell skill icons/multicast.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "copies": 1,
        "duration": 5,
        "hp_cost": 0,
        "level": 7,
        "max_charges": 2,
        "melee": false,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "helmet": 2,
          "trinket": 1,
          "weapon": 4
        },
        "count": 8
      },
      "baseId": "multicast",
      "className": "MulticastSpell",
      "damageType": [],
      "description": "When you manually cast a [Sorcery] spell, cast it again for free\nLasts [5:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 1,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_multicast.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/multicast.png",
      "id": "spell_multicast",
      "kind": "spell",
      "name": "Multicast",
      "stats": [
        "range",
        "max_charges",
        "duration",
        "hp_cost",
        "multi",
        "copies",
        "spell_weaving"
      ],
      "tags": [
        "Enchantment",
        "Arcane"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Multicast grants your non [Sorcery] spells quick cast",
          "id": "spell_weaving",
          "name": "Spell Weaving",
          "tags": [
            "Enchantment",
            "Arcane"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Multicast copies your [Sorcery] spells an additional time",
          "id": "echo_mage",
          "name": "Echo Mage",
          "tags": [
            "Enchantment",
            "Arcane"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "When you cast this spell, one of your [Sorcery] spells is selected at random\nUntil the end of the level, manually casting that spell will cast it again for free\nThis is independent of and stacks with the normal Multicast buff",
          "id": "multi_mastery",
          "name": "Multi Mastery",
          "tags": [
            "Enchantment",
            "Arcane"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 7,
          "damageType": null,
          "description": "Cast Multicast at the beginning of each level",
          "id": "preparedness",
          "name": "Preparedness",
          "tags": [
            "Enchantment",
            "Arcane"
          ]
        }
      ]
    },
    "spell_mystic_power": {
      "asset": "UI/spell skill icons/mystic_power.png",
      "attributes": {
        "bonus_damage": 7,
        "can_target_empty": true,
        "cool_down": 0,
        "duration": 8,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 4,
        "melee": false,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "helmet": 2,
          "trinket": 1,
          "weapon": 4
        },
        "count": 8
      },
      "baseId": "mystic_power",
      "className": "MysticPower",
      "damageType": [],
      "description": "All spells and equipment gain 7 [damage]\nLasts [8:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_mystic_power.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/mystic_power.png",
      "id": "spell_mystic_power",
      "kind": "spell",
      "name": "Mystic Power",
      "stats": [
        "range",
        "max_charges",
        "duration",
        "hp_cost",
        "occult_power",
        "radius",
        "bonus_damage",
        "explosive_power"
      ],
      "tags": [
        "Enchantment",
        "Arcane"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "",
          "id": "blood_is_power",
          "name": "Blood is Power",
          "tags": [
            "Enchantment",
            "Arcane",
            "Blood"
          ],
          "unlocksItems": 2
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Mystic Power also grants +2 [radius] to all spells and equipment",
          "id": "explosive_power",
          "name": "Explosive Power",
          "tags": [
            "Enchantment",
            "Arcane"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "When you cast Mystic Power, sacrifice allies within [{radius}:radius] tiles\nIncrease the duration and damage bonus by the number of allies sacrificed\nSubsequent casts no longer stack duration, but instead replace the previous instance",
          "id": "occult_power",
          "name": "Occult Power",
          "tags": [
            "Enchantment",
            "Arcane",
            "Dark"
          ],
          "unlocksItems": 8
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "",
          "id": "mystic_arcanum",
          "name": "Mystic Arcanum",
          "tags": [
            "Enchantment",
            "Arcane"
          ]
        }
      ]
    },
    "spell_mystic_vision": {
      "asset": "UI/spell skill icons/mystic_vision.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "duration": 8,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 2,
        "melee": false,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "helmet": 2,
          "trinket": 3,
          "weapon": 4
        },
        "count": 10
      },
      "baseId": "mystic_vision",
      "className": "MysticVision",
      "damageType": [],
      "description": "All spells and equipment gain 5 [range]\nLasts [8:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 2,
        "pathCount": 1
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_mystic_vision.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/mystic_vision.png",
      "id": "spell_mystic_vision",
      "kind": "spell",
      "name": "Mystic Vision",
      "stats": [
        "range",
        "max_charges",
        "duration",
        "hp_cost",
        "truesight",
        "overwatch",
        "aura",
        "superior_sight"
      ],
      "tags": [
        "Enchantment",
        "Arcane",
        "Eye"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "When you cast Mystic Vision, cast Floating Eye on unoccupied adjacent tiles",
          "id": "overwatch",
          "name": "Overwatch",
          "tags": [
            "Enchantment",
            "Arcane",
            "Eye"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Mystic Vision grants [10 range:range] instead of [5 range:range]",
          "id": "superior_sight",
          "name": "Superior Sight",
          "tags": [
            "Enchantment",
            "Arcane",
            "Eye"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Mystic Vision is also applied to your allies",
          "id": "vision_aura",
          "name": "Vision Aura",
          "tags": [
            "Enchantment",
            "Arcane",
            "Eye"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "duration": 3
          },
          "cost": 7,
          "damageType": [],
          "description": "Casting Mystic Vision also grants you Truesight for [{duration}:duration] turns\nTruesight lets you ignore line of sight requirements for casting spells",
          "id": "truesight",
          "name": "Truesight",
          "tags": [
            "Enchantment",
            "Arcane",
            "Eye"
          ]
        }
      ]
    },
    "spell_night_hag": {
      "asset": "UI/spell skill icons/night_hag.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 30,
        "level": 5,
        "max_charges": 2,
        "melee": false,
        "minion_damage": 2,
        "minion_health": 84,
        "quick_cast": false,
        "range": 8,
        "requires_los": false
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 3,
          "boots": 1,
          "helmet": 4,
          "trinket": 4,
          "weapon": 8
        },
        "count": 20
      },
      "baseId": "night_hag",
      "className": "HagSummon",
      "damageType": [],
      "description": "Summon a Night Hag",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 2,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_night_hag.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/night_hag.png",
      "id": "spell_night_hag",
      "kind": "spell",
      "name": "Night Hag",
      "stats": [
        "range",
        "max_charges",
        "minion_damage",
        "minion_health",
        "hp_cost",
        "coven",
        "num_summons",
        "demonic",
        "nightmare",
        "bone_spear"
      ],
      "tags": [
        "Blood",
        "Dark",
        "Conjuration"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "The Night Hag can cast your Bone Spear on a 4 turn cooldown",
          "id": "spear_hag",
          "name": "Spear Hag",
          "tags": [
            "Blood",
            "Dark",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "The Night Hag gains the [Demon] tag, and negates incoming damage from other [Demons:demon]",
          "id": "hellbound",
          "name": "Hellbound",
          "tags": [
            "Blood",
            "Dark",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "The Night Hag can cast your Nightmare Aura on a 30 turn cooldown",
          "id": "nightmare_hag",
          "name": "Nightmare Hag",
          "tags": [
            "Blood",
            "Dark",
            "Conjuration",
            "Arcane"
          ],
          "unlocksItems": 2
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "Casting this spell also summons [{num_summons}:num_summons] Witches near the Night Hag\nThese Witches will mature into Night Hags after 12 turns",
          "id": "coven_matron",
          "name": "Coven Matron",
          "tags": [
            "Blood",
            "Dark",
            "Conjuration"
          ]
        }
      ]
    },
    "spell_nightmare_aura": {
      "asset": "UI/spell skill icons/nightmare_aura.png",
      "attributes": {
        "aura_damage": 2,
        "can_target_empty": true,
        "cool_down": 0,
        "duration": 20,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 1,
        "melee": false,
        "quick_cast": false,
        "radius": 5,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 3,
          "boots": 1,
          "helmet": 3,
          "trinket": 4,
          "weapon": 7
        },
        "count": 18
      },
      "baseId": "nightmare_aura",
      "className": "NightmareSpell",
      "damageType": [
        "Dark",
        "Arcane"
      ],
      "description": "Each turn, deal 2 [Arcane] or [Dark] damage to enemies within [5:radius] tiles\nLasts [20:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 2,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_nightmare_aura.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/nightmare_aura.png",
      "id": "spell_nightmare_aura",
      "kind": "spell",
      "name": "Nightmare Aura",
      "stats": [
        "range",
        "max_charges",
        "radius",
        "duration",
        "hp_cost",
        "aura_damage",
        "dark_dream",
        "sleep",
        "ice"
      ],
      "tags": [
        "Enchantment",
        "Dark",
        "Arcane"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Nightmare Aura deals an additional [Ice] damage hit",
          "id": "chilling_dream",
          "name": "Chilling Dream",
          "tags": [
            "Enchantment",
            "Dark",
            "Arcane",
            "Ice"
          ],
          "unlocksItems": 4
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Upon expiring, summon a Raven, a Werewolf, and a Witch for every 30 damage dealt by Nightmare Aura",
          "id": "dark_dream",
          "name": "Dark Dream",
          "tags": [
            "Enchantment",
            "Dark",
            "Arcane",
            "Conjuration"
          ],
          "unlocksItems": 1
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "",
          "id": "nightmare_flood",
          "name": "Nightmare Flood",
          "tags": [
            "Enchantment",
            "Dark",
            "Arcane"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "duration": 3
          },
          "cost": 5,
          "damageType": [],
          "description": "Enemies damaged by Nightmare Aura are put to [sleep] for [{duration}:duration] turns",
          "id": "slumbering_aura",
          "name": "Slumbering Aura",
          "tags": [
            "Enchantment",
            "Dark",
            "Arcane"
          ]
        }
      ]
    },
    "spell_orb_of_anima": {
      "asset": "UI/spell skill icons/orb_of_anima.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 5,
        "max_charges": 2,
        "melee": false,
        "minion_health": 100,
        "num_targets": 2,
        "quick_cast": false,
        "range": 7,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "helmet": 2,
          "trinket": 5,
          "weapon": 6
        },
        "count": 14
      },
      "baseId": "orb_of_anima",
      "className": "OrbOfAnima",
      "damageType": [],
      "description": "Summon an Orb of Anima\nEach turn, the Orb of Anima heals up to [2:num_targets] wounded allies in its line of sight\nThe Orb of Anima uses its own HP to heal its allies and will attempt to heal them to full health\nOnly one Orb of Anima may exist at a time\nCasting this spell while an Orb of Anima exists will cause it to teleport to the selected location",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_orb_of_anima.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/orb_of_anima.png",
      "id": "spell_orb_of_anima",
      "kind": "spell",
      "name": "Orb of Anima",
      "stats": [
        "range",
        "max_charges",
        "minion_health",
        "num_targets",
        "hp_cost",
        "drain",
        "minion_damage",
        "radius",
        "vengeance",
        "offering",
        "reclamation"
      ],
      "tags": [
        "Orb",
        "Blood",
        "Conjuration"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "When you pay any amount of HP, the Orb of Anima heals for half that amount",
          "id": "blood_offerings",
          "name": "Blood Offerings",
          "tags": [
            "Orb",
            "Blood",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "When an ally dies while in line of sight of the Orb of Anima, it gains max HP and heals for half the slain unit's max HP",
          "id": "anima_reclaimed",
          "name": "Anima Reclaimed",
          "tags": [
            "Orb",
            "Blood",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Each turn, the Orb of Anima drains up to [{minion_damage}:minion_damage] max HP from enemies within [{radius}:radius] tiles, healing itself for the amount drained",
          "id": "blood_thief",
          "name": "Blood Thief",
          "tags": [
            "Orb",
            "Blood",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Units healed by the Orb of Anima gain [Bloodrage:blood] for a number of turns equal to the HP healed",
          "id": "anima_s_vengeance",
          "name": "Anima's Vengeance",
          "tags": [
            "Orb",
            "Blood",
            "Conjuration"
          ]
        }
      ]
    },
    "spell_orb_of_assimilation": {
      "asset": "UI/spell skill icons/orb_of_assimilation.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 5,
        "max_charges": 2,
        "melee": false,
        "minion_health": 100,
        "quick_cast": false,
        "range": 7,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "helmet": 2,
          "trinket": 3,
          "weapon": 4
        },
        "count": 11
      },
      "baseId": "orb_of_assimilation",
      "className": "OrbOfAssimilation",
      "damageType": [],
      "description": "Summon an Orb of Assimilation\nWhen you manually cast a [Sorcery] spell targeting the Orb of Assimilation, it gains that spell on a 10 turn cooldown\nGranting a spell in this way consumes its remaining charges, reducing the Orb's cooldown by 1 for each charge consumed\nOnly one Orb of Assimilation may exist at a time\nCasting this spell while an Orb of Assimilation exists will cause it to teleport to the selected location",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_orb_of_assimilation.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/orb_of_assimilation.png",
      "id": "spell_orb_of_assimilation",
      "kind": "spell",
      "name": "Orb of Assimilation",
      "stats": [
        "range",
        "max_charges",
        "minion_health",
        "hp_cost",
        "learn",
        "master",
        "resist",
        "intake"
      ],
      "tags": [
        "Orb",
        "Arcane",
        "Conjuration"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Granting the Orb of Assimilation a spell no longer drains its charges\nInstead, the orb's cooldown for the spell will be set equal to the spell's level",
          "id": "spell_sampling",
          "name": "Spell Sampling",
          "tags": [
            "Orb",
            "Arcane",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "When the Orb of Assimilation takes damage, it gains that much resistance to that damage type",
          "id": "damage_assimilation",
          "name": "Damage Assimilation",
          "tags": [
            "Orb",
            "Arcane",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Each time the Orb of Assimilation casts a spell, it lowers the active cooldown of its other spells by 1",
          "id": "assimilation_mastery",
          "name": "Assimilation Mastery",
          "tags": [
            "Orb",
            "Arcane",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 9,
          "damageType": [],
          "description": "Casting a [Sorcery] spell targeting the Orb of Assimilation grants you a permanent +10% bonus to that spell's [max charges:max_charges]",
          "id": "spell_exhaustion",
          "name": "Spell Exhaustion",
          "tags": [
            "Orb",
            "Arcane",
            "Conjuration"
          ]
        }
      ]
    },
    "spell_orb_of_night": {
      "asset": "UI/spell skill icons/orb_of_night.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 4,
        "max_charges": 2,
        "melee": false,
        "minion_damage": 10,
        "minion_health": 100,
        "quick_cast": false,
        "radius": 4,
        "range": 7,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 3,
          "boots": 1,
          "helmet": 4,
          "trinket": 6,
          "weapon": 6
        },
        "count": 20
      },
      "baseId": "orb_of_night",
      "className": "OrbOfNight",
      "damageType": [],
      "description": "Summon an Orb of Night\nEach turn, the orb inflicts [10:minion_damage] [Dark] damage and 2 turns of [blind] on enemies within [4:radius] tiles\nOnly one Orb of Night may exist at a time\nCasting this spell while an Orb of Night exists will cause it to teleport to the selected location",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_orb_of_night.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/orb_of_night.png",
      "id": "spell_orb_of_night",
      "kind": "spell",
      "name": "Orb of Night",
      "stats": [
        "range",
        "max_charges",
        "radius",
        "minion_damage",
        "minion_health",
        "hp_cost",
        "tendrils",
        "num_targets",
        "engulf",
        "explode",
        "feed"
      ],
      "tags": [
        "Orb",
        "Dark",
        "Conjuration"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "Orb of Night heals for 10 HP when you cast a [Dark] spell",
          "id": "feed_the_darkness",
          "name": "Feed the Darkness",
          "tags": [
            "Orb",
            "Dark",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Orb of Night explodes on death, dealing [Dark] damage equal to its max HP to enemies in its radius",
          "id": "dark_detonation",
          "name": "Dark Detonation",
          "tags": [
            "Orb",
            "Dark",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Tendrils of darkness drag the nearest [{num_targets}:num_targets] enemies along paths toward the Orb of Night each turn",
          "id": "dark_tendrils",
          "name": "Dark Tendrils",
          "tags": [
            "Orb",
            "Dark",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "Orb of Night's aura will grow by +1 radius after it kills a number of units equal to its current radius",
          "id": "engulfing_darkness",
          "name": "Engulfing Darkness",
          "tags": [
            "Orb",
            "Dark",
            "Conjuration"
          ]
        }
      ]
    },
    "spell_orb_of_unraveling": {
      "asset": "UI/spell skill icons/orb_of_unraveling.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 4,
        "max_charges": 2,
        "melee": false,
        "minion_damage": 5,
        "minion_health": 100,
        "quick_cast": false,
        "radius": 4,
        "range": 7,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "helmet": 3,
          "trinket": 4,
          "weapon": 5
        },
        "count": 13
      },
      "baseId": "orb_of_unraveling",
      "className": "OrbOfUnraveling",
      "damageType": [],
      "description": "Summon an Orb of Unraveling\nEach turn, the orb deals [Fire], [Lightning], or [Physical] damage to enemies within [4:radius] tiles\nDamage dealt by orb's aura removes that much resistance to a random damage type\nOnly one Orb of Unraveling may exist at a time\nCasting this spell while an Orb of Unraveling exists will cause it to teleport to the selected location",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_orb_of_unraveling.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/orb_of_unraveling.png",
      "id": "spell_orb_of_unraveling",
      "kind": "spell",
      "name": "Orb of Unraveling",
      "stats": [
        "range",
        "max_charges",
        "radius",
        "minion_damage",
        "minion_health",
        "hp_cost",
        "accelerated_decay",
        "detonation",
        "destroy_terrain"
      ],
      "tags": [
        "Orb",
        "Chaos",
        "Conjuration"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "When the Orb of Unraveling deals [Physical] damage to an unoccupied tile, it will warp the terrain, turning floors to chasms, chasms to walls, and walls to floors",
          "id": "world_breaker",
          "name": "World Breaker",
          "tags": [
            "Orb",
            "Chaos",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "When the Orb of Unraveling is destroyed, enemies within its radius are afflicted with the [Unraveling:chaos] debuff, which deals [Fire], [Lightning], or [Physical] damage equal to 33% of their max HP each turn\nWhen a creature with the [Unraveling:chaos] debuff dies, it passes to their adjacent allies",
          "id": "unraveling_curse",
          "name": "Unraveling Curse",
          "tags": [
            "Orb",
            "Chaos",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "When the Orb of Unraveling takes damage, its aura activates",
          "id": "accelerated_decay",
          "name": "Accelerated Decay",
          "tags": [
            "Orb",
            "Chaos",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 7,
          "damageType": [],
          "description": "",
          "id": "locus_of_chaos",
          "name": "Locus of Chaos",
          "tags": [
            "Orb",
            "Chaos",
            "Conjuration"
          ]
        }
      ]
    },
    "spell_pain_mirror": {
      "asset": "UI/spell skill icons/pain_mirror.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "duration": 14,
        "hp_cost": 11,
        "level": 4,
        "max_charges": 1,
        "melee": false,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "helmet": 2,
          "weapon": 5
        },
        "count": 7
      },
      "baseId": "pain_mirror",
      "className": "PainMirrorSpell",
      "damageType": [],
      "description": "When you take damage or spend HP, deal that much [Dark] damage to enemies in your line of sight\nLasts [14:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 1,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_pain_mirror.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/pain_mirror.png",
      "id": "spell_pain_mirror",
      "kind": "spell",
      "name": "Pain Mirror",
      "stats": [
        "range",
        "max_charges",
        "duration",
        "hp_cost",
        "do_summon",
        "minion_health",
        "minion_range",
        "minion_damage",
        "minion_duration",
        "deal_fire",
        "illusory",
        "seeker"
      ],
      "tags": [
        "Blood",
        "Enchantment"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "Pain Mirror's outgoing damage is based on pre-resistance values, rather than actual damage taken",
          "id": "illusory_pain",
          "name": "Illusory Pain",
          "tags": [
            "Blood",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Casting Pain Mirror also grants [quickstep:translocation] for the same duration",
          "id": "pain_seeker",
          "name": "Pain Seeker",
          "tags": [
            "Blood",
            "Enchantment",
            "Translocation"
          ],
          "unlocksItems": 1
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "Pain Mirror also deals [Fire] damage",
          "id": "burning_pain",
          "name": "Burning Pain",
          "tags": [
            "Blood",
            "Enchantment",
            "Fire"
          ],
          "unlocksItems": 2
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 7,
          "damageType": [],
          "description": "For every 30 damage dealt by Pain Mirror, summon a temporary Pain nearby",
          "id": "spirits_of_pain",
          "name": "Spirits of Pain",
          "tags": [
            "Blood",
            "Enchantment",
            "Conjuration",
            "Lightning"
          ],
          "unlocksItems": 3
        }
      ]
    },
    "spell_permanence": {
      "asset": "UI/spell skill icons/permanence.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "duration": 20,
        "hp_cost": 0,
        "level": 4,
        "max_charges": 4,
        "melee": false,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "helmet": 2,
          "weapon": 3
        },
        "count": 5
      },
      "baseId": "permanence",
      "className": "Permanence",
      "damageType": [],
      "description": "All spells and equipment gain [5 minion duration:minion_duration]\nAll spells and equipment gain [5 duration:duration]\nLasts [20:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_permanence.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/permanence.png",
      "id": "spell_permanence",
      "kind": "spell",
      "name": "Permanence",
      "stats": [
        "range",
        "max_charges",
        "duration",
        "hp_cost",
        "reinforce",
        "immutable",
        "solidify",
        "true_permanence"
      ],
      "tags": [
        "Enchantment"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Permanence duration is now permanent",
          "id": "true_permanence",
          "name": "True Permanence",
          "tags": [
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "You heal for half of all damage dealt to you",
          "id": "immutable_flesh",
          "name": "Immutable Flesh",
          "tags": [
            "Enchantment",
            "Blood"
          ],
          "unlocksItems": 2
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "On cast, temporary allies become permanent",
          "id": "reality_hold",
          "name": "Reality Hold",
          "tags": [
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "On cast, double the remaining duration of your other temporary buffs",
          "id": "temporal_reinforcement",
          "name": "Temporal Reinforcement",
          "tags": [
            "Enchantment"
          ]
        }
      ]
    },
    "spell_petrification_aura": {
      "asset": "UI/spell skill icons/petrification_aura.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "duration": 6,
        "hp_cost": 0,
        "level": 4,
        "max_charges": 2,
        "melee": false,
        "num_targets": 3,
        "quick_cast": false,
        "radius": 5,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "helmet": 2,
          "trinket": 2,
          "weapon": 6
        },
        "count": 11
      },
      "baseId": "petrification_aura",
      "className": "PetrificationAuraSpell",
      "damageType": [],
      "description": "Each turn, [3:num_targets] enemies within [5:radius] tiles are [petrified] for [6:duration] turns\nLasts [6:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_petrification_aura.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/petrification_aura.png",
      "id": "spell_petrification_aura",
      "kind": "spell",
      "name": "Petrification Aura",
      "stats": [
        "range",
        "max_charges",
        "radius",
        "duration",
        "num_targets",
        "hp_cost",
        "stillness",
        "glassify",
        "wormification",
        "minion_damage",
        "damage",
        "crumbling_aura"
      ],
      "tags": [
        "Arcane",
        "Enchantment"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Each turn, [petrified] enemies within the aura that have [{damage}:damage] or less HP are killed",
          "id": "crumbling_aura",
          "name": "Crumbling Aura",
          "tags": [
            "Arcane",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "[Petrified] enemies slain within the aura are raised as Rock Worms\nRock Worms inherit the max HP of the slain unit",
          "id": "wormification_aura",
          "name": "Wormification Aura",
          "tags": [
            "Arcane",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Petrification Aura will inflict [glassed] instead of [petrify]\nEffects of this spell which trigger from [petrify] will also trigger from [glassed]",
          "id": "glassify",
          "name": "Glassify",
          "tags": [
            "Arcane",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 8,
          "damageType": [],
          "description": "There is a 25% chance for the [petrification:petrify] to be permanent",
          "id": "perfect_stillness",
          "name": "Perfect Stillness",
          "tags": [
            "Arcane",
            "Enchantment"
          ]
        }
      ]
    },
    "spell_petrify": {
      "asset": "UI/spell skill icons/petrify.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "duration": 10,
        "hp_cost": 0,
        "level": 2,
        "max_charges": 10,
        "melee": false,
        "quick_cast": false,
        "range": 6,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "helmet": 3,
          "trinket": 1,
          "weapon": 5
        },
        "count": 10
      },
      "baseId": "petrify",
      "className": "PetrifySpell",
      "damageType": [],
      "description": "[Petrify] the target for [10:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 3,
        "outgoingCount": 0,
        "pathCount": 3
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_petrify.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/petrify.png",
      "id": "spell_petrify",
      "kind": "spell",
      "name": "Petrify",
      "stats": [
        "range",
        "max_charges",
        "duration",
        "hp_cost",
        "panic",
        "petrified_animation",
        "minion_damage",
        "arcane_conductivity",
        "glassify"
      ],
      "tags": [
        "Arcane",
        "Enchantment"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Target also loses [100 Arcane:arcane] resist",
          "id": "arcane_conductivity",
          "name": "Arcane Conductivity",
          "tags": [
            "Arcane",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Target is [glassed] instead of [petrified]",
          "id": "glassify",
          "name": "Glassify",
          "tags": [
            "Arcane",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "If the target is slain while [petrified], raise them as a Golem\nGolems inherit the HP of the slain unit",
          "id": "rocky_servitude",
          "name": "Rocky Servitude",
          "tags": [
            "Arcane",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "duration": 2
          },
          "cost": 8,
          "damageType": [],
          "description": "Enemies in line of sight of the target are [feared] for [{duration}:duration] turns",
          "id": "panic",
          "name": "Panic",
          "tags": [
            "Arcane",
            "Enchantment"
          ]
        }
      ]
    },
    "spell_pillar_of_fire": {
      "asset": "UI/spell skill icons/pillar_of_fire.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 50,
        "hp_cost": 0,
        "level": 5,
        "max_charges": 2,
        "melee": false,
        "quick_cast": false,
        "radius": 1,
        "range": 8,
        "requires_los": false
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 3,
          "boots": 1,
          "helmet": 3,
          "trinket": 3,
          "weapon": 15
        },
        "count": 25
      },
      "baseId": "pillar_of_fire",
      "className": "FlameStrikeSpell",
      "damageType": [
        "Fire"
      ],
      "description": "Deal [50:damage] [Fire] damage in a [1:radius] tile burst\nDeals double damage to the targeted tile",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 2,
        "outgoingCount": 2,
        "pathCount": 1
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_pillar_of_fire.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/pillar_of_fire.png",
      "id": "spell_pillar_of_fire",
      "kind": "spell",
      "name": "Pillar of Fire",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "radius",
        "hp_cost",
        "cast_annihilate",
        "num_targets",
        "disruption",
        "duration",
        "channel",
        "max_channel"
      ],
      "tags": [
        "Fire",
        "Holy",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "You may channel Pillar of Fire for up to [{max_channel}:max_channel] turns",
          "id": "channeled_flame",
          "name": "Channeled Flame",
          "tags": [
            "Fire",
            "Holy",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Strips target of shields and applies -50 [Fire] resist for [{duration}:duration] turns",
          "id": "disrupting_flames",
          "name": "Disrupting Flames",
          "tags": [
            "Fire",
            "Holy",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "On kill, cast Annihilate on up to [{num_targets}:num_targets] enemies in line of sight of the killed unit",
          "id": "pillar_of_annihilation",
          "name": "Pillar of Annihilation",
          "tags": [
            "Fire",
            "Holy",
            "Sorcery",
            "Chaos"
          ],
          "unlocksItems": 4
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "",
          "id": "orbital_bombardment",
          "name": "Orbital Bombardment",
          "tags": [
            "Fire",
            "Holy",
            "Sorcery"
          ]
        }
      ]
    },
    "spell_poison_sting": {
      "asset": "UI/spell skill icons/poison_sting.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 9,
        "duration": 30,
        "hp_cost": 0,
        "level": 1,
        "max_charges": 26,
        "melee": false,
        "quick_cast": false,
        "range": 10,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "helmet": 2,
          "trinket": 1,
          "weapon": 12
        },
        "count": 16
      },
      "baseId": "poison_sting",
      "className": "PoisonSting",
      "damageType": [
        "Physical"
      ],
      "description": "Deal [9:damage] [Physical] damage to the target\nApplies [30:duration] turns of [poison]",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 1,
        "outgoingCount": 0,
        "pathCount": 1
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_poison_sting.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/poison_sting.png",
      "id": "spell_poison_sting",
      "kind": "spell",
      "name": "Poison Sting",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "duration",
        "hp_cost",
        "barrage",
        "radius",
        "webs",
        "antigen"
      ],
      "tags": [
        "Sorcery",
        "Nature"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "duration": 3
          },
          "cost": 1,
          "damageType": [],
          "description": "Immobilizes target and creates Webs in a line to the target\nUnits in the line are immobilized for [{duration}:duration] turns\nWebs immobilize non-[Spider] units that enter them for one turn",
          "id": "silk_shot",
          "name": "Silk Shot",
          "tags": [
            "Sorcery",
            "Nature"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Applies [Acidified:poison] to the target, reducing [Poison] resist by 100%",
          "id": "acidity",
          "name": "Acidity",
          "tags": [
            "Sorcery",
            "Nature"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Hits every [poisoned] enemy within [{radius}:radius] tiles of the target",
          "id": "stinger_barrage",
          "name": "Stinger Barrage",
          "tags": [
            "Sorcery",
            "Nature"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 4,
          "damageType": null,
          "description": "Each turn, cast Poison Sting on up to [2:num_targets] enemies in line of sight who dealt damage to you",
          "id": "stinging_rebuke",
          "name": "Stinging Rebuke",
          "tags": [
            "Sorcery",
            "Nature"
          ]
        }
      ]
    },
    "spell_prismatic_beam": {
      "asset": "UI/spell skill icons/prismatic_beam.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 40,
        "hp_cost": 0,
        "level": 6,
        "max_charges": 8,
        "melee": false,
        "num_targets": 4,
        "quick_cast": false,
        "range": 10,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 3,
          "boots": 1,
          "helmet": 3,
          "trinket": 3,
          "weapon": 15
        },
        "count": 25
      },
      "baseId": "prismatic_beam",
      "className": "PrismaticBeam",
      "damageType": [
        "Holy"
      ],
      "description": "Deal [40:damage] [Holy] damage in a beam\nIf the beam encounters a [frozen] unit, it refracts, creating up to [4:num_targets] more beams which shoot from that unit toward enemies in line of sight of it\nA beam created by refraction can create half as many beams as the beam that created it",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_prismatic_beam.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/prismatic_beam.png",
      "id": "spell_prismatic_beam",
      "kind": "spell",
      "name": "Prismatic Beam",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "num_targets",
        "hp_cost",
        "pulse",
        "heal",
        "diffusion",
        "radius",
        "arcane"
      ],
      "tags": [
        "Holy",
        "Ice",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Prismatic Beam also refracts when it encounters [petrified] or [glassed] units",
          "id": "arcane_refraction",
          "name": "Arcane Refraction",
          "tags": [
            "Holy",
            "Ice",
            "Sorcery",
            "Arcane"
          ],
          "unlocksItems": 2
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "When the beam refracts, it deals [Ice] damage in a [{radius}:radius] tile burst centered on the [frozen] unit",
          "id": "cold_diffusion",
          "name": "Cold Diffusion",
          "tags": [
            "Holy",
            "Ice",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "The initial beam is instead a wide pulse which also impacts tiles adjacent to the center beam",
          "id": "prismatic_pulse",
          "name": "Prismatic Pulse",
          "tags": [
            "Holy",
            "Ice",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Prismatic Beam heals allies instead of damaging them",
          "id": "softened_light",
          "name": "Softened Light",
          "tags": [
            "Holy",
            "Ice",
            "Sorcery"
          ]
        }
      ]
    },
    "spell_prison_of_thorns": {
      "asset": "UI/spell skill icons/prison_of_thorns.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 4,
        "max_charges": 3,
        "melee": false,
        "minion_damage": 4,
        "minion_duration": 15,
        "minion_health": 10,
        "quick_cast": false,
        "range": 5,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 3,
          "helmet": 3,
          "trinket": 3,
          "weapon": 6
        },
        "count": 15
      },
      "baseId": "prison_of_thorns",
      "className": "PrisonOfThorns",
      "damageType": [],
      "description": "Summon temporary Fae Thorns surrounding a connected group of enemies",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 1,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_prison_of_thorns.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/prison_of_thorns.png",
      "id": "spell_prison_of_thorns",
      "kind": "spell",
      "name": "Prison of Thorns",
      "stats": [
        "range",
        "max_charges",
        "minion_duration",
        "minion_damage",
        "minion_health",
        "hp_cost",
        "icy",
        "minion_range",
        "rot",
        "grasping_vines"
      ],
      "tags": [
        "Arcane",
        "Conjuration",
        "Nature"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Fae Thorns gain the [Living] tag and a [{minion_range}:minion_range] range [Physical] attack, which pulls enemies towards it",
          "id": "grasping_vines",
          "name": "Grasping Vines",
          "tags": [
            "Arcane",
            "Conjuration",
            "Nature"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Summon Rot Sprouts instead of Fae Thorns, which can grow into Rot Trees or Rotting Zombies",
          "id": "rot_growth",
          "name": "Rot Growth",
          "tags": [
            "Arcane",
            "Conjuration",
            "Nature",
            "Dark"
          ],
          "unlocksItems": 8
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "",
          "id": "super_max",
          "name": "Super Max",
          "tags": [
            "Arcane",
            "Conjuration",
            "Nature"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "Fae Thorns receive a [{minion_range} range:minion_range] [Ice] attack",
          "id": "icy_prison",
          "name": "Icy Prison",
          "tags": [
            "Arcane",
            "Conjuration",
            "Nature",
            "Ice"
          ],
          "unlocksItems": 3
        }
      ]
    },
    "spell_psychic_seedling": {
      "asset": "UI/spell skill icons/psychic_seedling.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 4,
        "melee": false,
        "minion_damage": 3,
        "minion_health": 65,
        "minion_range": 7,
        "quick_cast": false,
        "range": 5,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 3,
          "helmet": 3,
          "trinket": 2,
          "weapon": 6
        },
        "count": 14
      },
      "baseId": "psychic_seedling",
      "className": "PsychicSeedling",
      "damageType": [],
      "description": "Plant a Brain Sapling\nIt will eventually mature into a forest of Brain Trees",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 2,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_psychic_seedling.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/psychic_seedling.png",
      "id": "spell_psychic_seedling",
      "kind": "spell",
      "name": "Psychic Seedling",
      "stats": [
        "range",
        "max_charges",
        "minion_damage",
        "minion_health",
        "minion_range",
        "hp_cost",
        "psychic_forest",
        "num_summons",
        "parasite",
        "damage",
        "duration",
        "rapid_evolution"
      ],
      "tags": [
        "Conjuration",
        "Arcane",
        "Nature"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [
            "Arcane"
          ],
          "description": "May target an enemy instead of an empty tile\nTargeted enemy takes [{damage}:damage] [Arcane] damage per turn for [{duration}:duration] turns\nIf the enemy dies while under this effect, summon a Brain Tree where it died",
          "id": "parasitic_growth",
          "name": "Parasitic Growth",
          "tags": [
            "Conjuration",
            "Arcane",
            "Nature",
            "Enchantment"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Increase the probability that a sapling will become a tree from 2% to 10%",
          "id": "rapid_evolution",
          "name": "Rapid Evolution",
          "tags": [
            "Conjuration",
            "Arcane",
            "Nature"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Plant [{num_summons}:num_summons] saplings instead of one",
          "id": "psychic_fields",
          "name": "Psychic Fields",
          "tags": [
            "Conjuration",
            "Arcane",
            "Nature"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 6,
          "damageType": null,
          "description": "When one of your [Living] allies dies, a Brain Sapling is summoned nearby",
          "id": "mind_harvester",
          "name": "Mind Harvester",
          "tags": [
            "Conjuration",
            "Arcane",
            "Nature"
          ]
        }
      ]
    },
    "spell_purity": {
      "asset": "UI/spell skill icons/purity.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "duration": 6,
        "hp_cost": 0,
        "level": 4,
        "max_charges": 4,
        "melee": false,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "boots": 1,
          "helmet": 3,
          "trinket": 2,
          "weapon": 4
        },
        "count": 11
      },
      "baseId": "purity",
      "className": "PuritySpell",
      "damageType": [],
      "description": "Lose all debuffs\nYou cannot gain new debuffs\nLasts [6:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_purity.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/purity.png",
      "id": "spell_purity",
      "kind": "spell",
      "name": "Purity",
      "stats": [
        "range",
        "max_charges",
        "duration",
        "hp_cost",
        "depravity",
        "aura",
        "radius",
        "crusader",
        "sin_eater"
      ],
      "tags": [
        "Holy",
        "Enchantment"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "Casting a [Holy] spell extends Purity's remaining duration by 3 turns",
          "id": "crusader",
          "name": "Crusader",
          "tags": [
            "Holy",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Purity is also applied to allies within [{radius}:radius] tiles",
          "id": "aura_of_purity",
          "name": "Aura of Purity",
          "tags": [
            "Holy",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "duration": 6
          },
          "cost": 3,
          "damageType": [],
          "description": "When Purity ends, gain [Depravity:blood] for [{duration}:duration] turns\n[Depravity:blood] causes you to pay 1 HP when a unit dies to gain a +1 damage bonus to all spells and equipment while it lasts",
          "id": "depravity",
          "name": "Depravity",
          "tags": [
            "Holy",
            "Enchantment",
            "Blood"
          ],
          "unlocksItems": 2
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Purity grants [100% Dark:dark] resist\nEach debuff removed or blocked by Purity grants [3 SH:shields]",
          "id": "sin_eater",
          "name": "Sin Eater",
          "tags": [
            "Holy",
            "Enchantment",
            "Dark"
          ],
          "unlocksItems": 4
        }
      ]
    },
    "spell_pyrostatic_curse": {
      "asset": "UI/spell skill icons/pyrostatic_curse.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "duration": 6,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 2,
        "melee": false,
        "num_targets": 2,
        "quick_cast": false,
        "radius": 4,
        "range": 7,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "helmet": 3,
          "trinket": 3,
          "weapon": 12
        },
        "count": 20
      },
      "baseId": "pyrostatic_curse",
      "className": "PyrostaticCurse",
      "damageType": [],
      "description": "Curse enemies in a [4:radius] tile burst for [6:duration] turns\nWhen a cursed unit takes [Fire] damage, [2:num_targets] enemies in line of sight of it take that much [Lightning] damage",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 3,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_pyrostatic_curse.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/pyrostatic_curse.png",
      "id": "spell_pyrostatic_curse",
      "kind": "spell",
      "name": "Pyrostatic Curse",
      "stats": [
        "range",
        "max_charges",
        "radius",
        "duration",
        "num_targets",
        "hp_cost",
        "beam",
        "remove_resistance"
      ],
      "tags": [
        "Fire",
        "Lightning",
        "Enchantment"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "[Lightning] damage is dealt in a beam instead of to a single target",
          "id": "linear_conductance",
          "name": "Linear Conductance",
          "tags": [
            "Fire",
            "Lightning",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 2,
          "damageType": null,
          "description": "Cast Pyrostatic Curse at your location at the beginning of each level",
          "id": "cursebringer",
          "name": "Cursebringer",
          "tags": [
            "Fire",
            "Lightning",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Pyrostatic Curse removes [50% Fire:fire] resist from affected targets",
          "id": "resistance_melting",
          "name": "Resistance Melting",
          "tags": [
            "Fire",
            "Lightning",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 5,
          "damageType": null,
          "description": "When you cast another [Chaos] spell, cast Pyrostatic Curse at the target\nAdds the [Chaos] tag",
          "id": "pyrostatic_chaos",
          "name": "Pyrostatic Chaos",
          "tags": [
            "Fire",
            "Lightning",
            "Enchantment",
            "Chaos"
          ],
          "unlocksItems": 2
        }
      ]
    },
    "spell_pyrostatic_pulse": {
      "asset": "UI/spell skill icons/pyrostatic_pulse.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 16,
        "hp_cost": 0,
        "level": 2,
        "max_charges": 10,
        "melee": false,
        "quick_cast": false,
        "range": 5,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "helmet": 2,
          "trinket": 2,
          "weapon": 14
        },
        "count": 20
      },
      "baseId": "pyrostatic_pulse",
      "className": "PyrostaticPulse",
      "damageType": [
        "Fire",
        "Lightning"
      ],
      "description": "Deal [16:damage] [Fire] damage in a beam\nDeal [16:damage] [Lightning] damage to tiles adjacent to the beam",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 1,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_pyrostatic_pulse.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/pyrostatic_pulse.png",
      "id": "spell_pyrostatic_pulse",
      "kind": "spell",
      "name": "Pyrostatic Pulse",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "hp_cost",
        "spirit_calling",
        "minion_health",
        "minion_damage",
        "greater_cascade",
        "num_targets",
        "chaos"
      ],
      "tags": [
        "Fire",
        "Lightning",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "",
          "id": "unstoppable_pulse",
          "name": "Unstoppable Pulse",
          "tags": [
            "Fire",
            "Lightning",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [
            "Physical"
          ],
          "description": "Pyrostatic Pulse gains a [Physical] damage outer layer",
          "id": "chaos_pulse",
          "name": "Chaos Pulse",
          "tags": [
            "Fire",
            "Lightning",
            "Sorcery",
            "Chaos"
          ],
          "unlocksItems": 4
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "Summons Fire Spirits for units killed by the [Fire] beam, and Spark Spirits for those killed by the [Lightning] beams\nIf you have the Chaos Pulse upgrade, any units killed by this spell summon Chaos Spirits instead",
          "id": "spirit_calling",
          "name": "Spirit Calling",
          "tags": [
            "Fire",
            "Lightning",
            "Sorcery",
            "Conjuration"
          ],
          "unlocksItems": 1
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 7,
          "damageType": [],
          "description": "Secondary pulses trigger from the target to up to [{num_targets}:num_targets] random enemies in line of sight of the target",
          "id": "forking_cascade",
          "name": "Forking Cascade",
          "tags": [
            "Fire",
            "Lightning",
            "Sorcery"
          ]
        }
      ]
    },
    "spell_rain_of_fire": {
      "asset": "UI/spell skill icons/rain_of_fire.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 9,
        "max_channel": 10,
        "max_charges": 1,
        "melee": false,
        "num_targets": 7,
        "quick_cast": false,
        "radius": 3,
        "range": 36,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "boots": 1,
          "helmet": 2,
          "trinket": 3,
          "weapon": 11
        },
        "count": 18
      },
      "baseId": "rain_of_fire",
      "className": "MeteorShower",
      "damageType": [],
      "description": "Cast Fireball targeting [7:num_targets] random tiles in a [3:radius] tile radius each turn\nThis spell can be channeled for up to [10:max_channel] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 1,
        "outgoingCount": 11,
        "pathCount": 7
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_rain_of_fire.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/rain_of_fire.png",
      "id": "spell_rain_of_fire",
      "kind": "spell",
      "name": "Rain of Fire",
      "stats": [
        "range",
        "max_charges",
        "radius",
        "num_targets",
        "max_channel",
        "hp_cost",
        "ritual",
        "pyrostatic",
        "dragons",
        "chaos"
      ],
      "tags": [
        "Fire",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "num_targets": 2,
            "radius": 3
          },
          "cost": 7,
          "damageType": [],
          "description": "Each impact casts Annihilate on [{num_targets}:num_targets] enemies within [{radius}:radius] tiles",
          "id": "chaos_storm",
          "name": "Chaos Storm",
          "tags": [
            "Fire",
            "Sorcery",
            "Chaos"
          ],
          "unlocksItems": 2
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "num_targets": 2
          },
          "cost": 7,
          "damageType": [],
          "description": "Each impact casts Lightning Bolt on up to [{num_targets}:num_targets] enemies in its line of sight",
          "id": "pyrostatic_storm",
          "name": "Pyrostatic Storm",
          "tags": [
            "Fire",
            "Sorcery",
            "Lightning"
          ],
          "unlocksItems": 5
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 8,
          "damageType": [],
          "description": "Cast Flame Burst each turn you channel\nIf you complete the ritual, gain [100% Fire:fire] resistance until the end of the level",
          "id": "ritual_of_explosions",
          "name": "Ritual of Explosions",
          "tags": [
            "Fire",
            "Sorcery",
            "Ritual"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 9,
          "damageType": [],
          "description": "Each impact has a 20% chance of casting your Fire Drake spell as well",
          "id": "rain_of_dragons",
          "name": "Rain of Dragons",
          "tags": [
            "Fire",
            "Sorcery",
            "Dragon"
          ],
          "unlocksItems": 2
        }
      ]
    },
    "spell_rain_of_thunderbolts": {
      "asset": "UI/spell skill icons/rain_of_thunderbolts.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 7,
        "max_channel": 12,
        "max_charges": 1,
        "melee": false,
        "num_targets": 12,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "boots": 1,
          "helmet": 1,
          "trinket": 3,
          "weapon": 9
        },
        "count": 14
      },
      "baseId": "rain_of_thunderbolts",
      "className": "RainOfThunderbolts",
      "damageType": [],
      "description": "Cast Thunder Strike targeting up to [12:num_targets] [Storm Clouds:lightning] each turn\nClouds with enemies in them are prioritized\nWill not target the caster or their allies\nThis spell can be channeled for up to [12:max_channel] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 7,
        "pathCount": 2
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_rain_of_thunderbolts.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/rain_of_thunderbolts.png",
      "id": "spell_rain_of_thunderbolts",
      "kind": "spell",
      "name": "Rain of Thunderbolts",
      "stats": [
        "range",
        "max_charges",
        "num_targets",
        "max_channel",
        "hp_cost",
        "god",
        "stormbringer",
        "all_weather",
        "dragons"
      ],
      "tags": [
        "Lightning",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "Rain of Thunderbolts may also target [Blizzards:ice] or [Rain Clouds:nature], but casts Iceball on them instead of Thunder Strike",
          "id": "cryostorm",
          "name": "Cryostorm",
          "tags": [
            "Lightning",
            "Sorcery",
            "Ice"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "num_targets": 12
          },
          "cost": 7,
          "damageType": [],
          "description": "Each turn you channel, summon [{num_targets}:num_targets] [Storm Clouds:lightning] at random locations",
          "id": "stormbringer",
          "name": "Stormbringer",
          "tags": [
            "Lightning",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "max_channel": 12
          },
          "cost": 8,
          "damageType": [],
          "description": "Instead of channeling this spell, when you cast it, you get a buff for [{max_channel}:max_channel] turns which causes its effects to trigger as though you had channeled it at the end of each turn",
          "id": "thunder_god",
          "name": "Thunder God",
          "tags": [
            "Lightning",
            "Sorcery",
            "Enchantment"
          ],
          "unlocksItems": 2
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 9,
          "damageType": [],
          "description": "Each strike has a 20% chance of casting your Storm Drake spell",
          "id": "tempest_drakes",
          "name": "Tempest Drakes",
          "tags": [
            "Lightning",
            "Sorcery",
            "Dragon"
          ],
          "unlocksItems": 2
        }
      ]
    },
    "spell_rain_storm": {
      "asset": "UI/spell skill icons/rain_storm.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "duration": 10,
        "hp_cost": 0,
        "level": 2,
        "max_charges": 3,
        "melee": false,
        "quick_cast": false,
        "radius": 4,
        "range": 10,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "helmet": 3,
          "weapon": 7
        },
        "count": 10
      },
      "baseId": "rain_storm",
      "className": "RainStormSpell",
      "damageType": [],
      "description": "Create [Rain Clouds:nature] over tiles in a [4:radius] tile radius\nRain Clouds apply 2 turns of Soaked to units each turn\nThe clouds last for [10:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_rain_storm.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/rain_storm.png",
      "id": "spell_rain_storm",
      "kind": "spell",
      "name": "Rain Storm",
      "stats": [
        "range",
        "max_charges",
        "radius",
        "duration",
        "hp_cost",
        "healing",
        "poison",
        "damage",
        "personal"
      ],
      "tags": [
        "Nature",
        "Enchantment"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "[Rain Clouds:nature] also appear over enemy occupied tiles",
          "id": "personal_storms",
          "name": "Personal Storms",
          "tags": [
            "Nature",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "The [Rain Clouds:nature] deal [{damage}:damage] [Poison] damage each turn",
          "id": "acid_rain",
          "name": "Acid Rain",
          "tags": [
            "Nature",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "The [Rain Clouds:nature] will heal the Wizard and their allies for 10 HP each turn",
          "id": "healing_rain",
          "name": "Healing Rain",
          "tags": [
            "Nature",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 4,
          "damageType": null,
          "description": "",
          "id": "living_rain",
          "name": "Living Rain",
          "tags": [
            "Nature",
            "Enchantment",
            "Conjuration"
          ],
          "unlocksItems": 2
        }
      ]
    },
    "spell_regeneration_aura": {
      "asset": "UI/spell skill icons/regeneration_aura.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "duration": 8,
        "heal": 4,
        "hp_cost": 0,
        "level": 2,
        "max_charges": 2,
        "melee": false,
        "quick_cast": false,
        "radius": 8,
        "range": 0,
        "requires_los": true,
        "whole_map": 0
      },
      "augmentSummary": {
        "bySlot": {
          "helmet": 2,
          "weapon": 7
        },
        "count": 9
      },
      "baseId": "regeneration_aura",
      "className": "RegenAuraSpell",
      "damageType": [],
      "description": "Each turn, heal allies within [8:radius] tiles for [4 HP:heal]\nLasts [8:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 1,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_regeneration_aura.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/regeneration_aura.png",
      "id": "spell_regeneration_aura",
      "kind": "spell",
      "name": "Regeneration Aura",
      "stats": [
        "range",
        "max_charges",
        "radius",
        "duration",
        "heal",
        "hp_cost",
        "self_heal",
        "death_defiance",
        "whole_map"
      ],
      "tags": [
        "Enchantment",
        "Nature"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 2,
          "damageType": null,
          "description": "[Slime] allies heal adjacent allies when healed by the aura\nAdds the [Slime] tag",
          "id": "regenerative_goop",
          "name": "Regenerative Goop",
          "tags": [
            "Nature",
            "Enchantment",
            "Slime"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "You are also healed by the aura",
          "id": "self_healing",
          "name": "Self Healing",
          "tags": [
            "Enchantment",
            "Nature"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "The aura heals all allies on the level",
          "id": "global",
          "name": "Global",
          "tags": [
            "Enchantment",
            "Nature"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "When you cast this spell, allies in the affected radius gain the ability to reincarnate on death",
          "id": "death_defiance",
          "name": "Death Defiance",
          "tags": [
            "Enchantment",
            "Nature",
            "Holy"
          ],
          "unlocksItems": 5
        }
      ]
    },
    "spell_ride_drake": {
      "asset": "UI/spell skill icons/ride_drake.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "duration": 10,
        "hp_cost": 0,
        "level": 2,
        "max_charges": 4,
        "melee": false,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "helmet": 1,
          "trinket": 3,
          "weapon": 2
        },
        "count": 8
      },
      "baseId": "ride_drake",
      "className": "DragonRideSpell",
      "damageType": [],
      "description": "Beckon forth a draconic mount, gaining [quickstep:translocation] and flying\nLasts [10:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_ride_drake.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/ride_drake.png",
      "id": "spell_ride_drake",
      "kind": "spell",
      "name": "Ride Drake",
      "stats": [
        "range",
        "max_charges",
        "duration",
        "hp_cost",
        "dragonflight",
        "breath",
        "iron",
        "shields"
      ],
      "tags": [
        "Dragon",
        "Translocation"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "While mounted, gain [50% Physical:physical] resist",
          "id": "armored_drake",
          "name": "Armored Drake",
          "tags": [
            "Dragon",
            "Translocation",
            "Metallic"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Gain [6 SH:shields] on cast",
          "id": "evasive_maneuvers",
          "name": "Evasive Maneuvers",
          "tags": [
            "Dragon",
            "Translocation"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 7,
          "damageType": [],
          "description": "While mounted, cast Dragon Breath at the closest nearby enemy each turn",
          "id": "strafing_run",
          "name": "Strafing Run",
          "tags": [
            "Dragon",
            "Translocation"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 8,
          "damageType": [],
          "description": "On cast, cast your other [Dragon] [Conjuration] spells nearby",
          "id": "flight_of_the_dragons",
          "name": "Flight of the Dragons",
          "tags": [
            "Dragon",
            "Translocation"
          ]
        }
      ]
    },
    "spell_ritual_of_flying_daggers": {
      "asset": "UI/spell skill icons/ritual_of_flying_daggers.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 9,
        "hp_cost": 0,
        "level": 6,
        "max_channel": 9,
        "max_charges": 3,
        "melee": false,
        "num_targets": 6,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "boots": 1,
          "helmet": 1,
          "trinket": 5,
          "weapon": 6
        },
        "count": 13
      },
      "baseId": "ritual_of_flying_daggers",
      "className": "RitualOfFlyingDaggers",
      "damageType": [],
      "description": "Each turn, ready [6:num_targets] daggers\nWhen you stop channeling, the daggers are unleashed, each dealing [9:damage] [Physical] damage to an enemy in your line of sight\nIf the ritual is completed, the number of daggers is multiplied by [6:num_targets]\nDaggers Ready: 0",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 2,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_ritual_of_flying_daggers.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/ritual_of_flying_daggers.png",
      "id": "spell_ritual_of_flying_daggers",
      "kind": "spell",
      "name": "Ritual of Flying Daggers",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "num_targets",
        "max_channel",
        "hp_cost",
        "blades",
        "experience",
        "forest",
        "weighted"
      ],
      "tags": [
        "Metallic",
        "Ritual"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "An additional dagger is also fired from each of your [Nature] allies",
          "id": "forest_of_flying_daggers",
          "name": "Forest of Flying Daggers",
          "tags": [
            "Metallic",
            "Ritual",
            "Nature"
          ],
          "unlocksItems": 4
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Enemies hit are [stunned] for one turn",
          "id": "weighted_knives",
          "name": "Weighted Knives",
          "tags": [
            "Metallic",
            "Ritual"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 7,
          "damageType": [],
          "description": "When this spell kills a unit, cast your Summon Blade spell where it died",
          "id": "anima_thief",
          "name": "Anima Thief",
          "tags": [
            "Metallic",
            "Ritual",
            "Arcane"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 9,
          "damageType": [],
          "description": "Ritual of Flying Daggers permanently gains +1 to its Daggers Ready when it kills a unit",
          "id": "soul_blades",
          "name": "Soul Blades",
          "tags": [
            "Metallic",
            "Ritual"
          ]
        }
      ]
    },
    "spell_ritual_of_the_opening_eye": {
      "asset": "UI/spell skill icons/ritual_of_the_opening_eye.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 7,
        "max_channel": 8,
        "max_charges": 1,
        "melee": false,
        "num_summons": 20,
        "num_targets": 3,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "boots": 1,
          "helmet": 1,
          "trinket": 3,
          "weapon": 3
        },
        "count": 8
      },
      "baseId": "ritual_of_the_opening_eye",
      "className": "RitualOfTheOpeningEye",
      "damageType": [],
      "description": "Each turn, your [Eye] buffs activate [3:num_targets] additional times\nIf you complete the ritual, cast your Floating Eye spell up to [20:num_summons] times in random unoccupied locations in your line of sight",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 3,
        "pathCount": 1
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_ritual_of_the_opening_eye.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/ritual_of_the_opening_eye.png",
      "id": "spell_ritual_of_the_opening_eye",
      "kind": "spell",
      "name": "Ritual of the Opening Eye",
      "stats": [
        "range",
        "max_charges",
        "num_targets",
        "max_channel",
        "num_summons",
        "hp_cost",
        "open",
        "sleep",
        "free_shot"
      ],
      "tags": [
        "Eye",
        "Ritual"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Activations from the ritual will not decrease the [Eye] buffs' remaining duration",
          "id": "eternal_vigil",
          "name": "Eternal Vigil",
          "tags": [
            "Eye",
            "Ritual"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "max_channel": 8
          },
          "cost": 5,
          "damageType": [],
          "description": "When you begin the ritual, enemies outside your line of sight are put to [sleep] for [{max_channel}:max_channel] turns\nIf you fail to complete the ritual, all [sleeping:sleep] units wake up",
          "id": "unseen_dreamers",
          "name": "Unseen Dreamers",
          "tags": [
            "Eye",
            "Ritual"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "If you complete the ritual, cast your other self-targeted [Eye] spells",
          "id": "rapturous_sight",
          "name": "Rapturous Sight",
          "tags": [
            "Eye",
            "Ritual"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 9,
          "damageType": null,
          "description": "If an enemy dies in your line of sight while channeling the ritual, cast Floating Eye at their location\nAdds the [Dark] tag",
          "id": "waking_the_witness",
          "name": "Waking The Witness",
          "tags": [
            "Eye",
            "Ritual",
            "Dark"
          ],
          "unlocksItems": 7
        }
      ]
    },
    "spell_rot_gaze": {
      "asset": "UI/spell skill icons/rot_gaze.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 3,
        "duration": 3,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 12,
        "melee": false,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 3,
          "boots": 1,
          "helmet": 3,
          "trinket": 6,
          "weapon": 13
        },
        "count": 26
      },
      "baseId": "rot_gaze",
      "className": "RotGaze",
      "damageType": [],
      "description": "Enemies in line of sight take [3:damage] [Dark] damage and are [poisoned] for [3:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 1,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_rot_gaze.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/rot_gaze.png",
      "id": "spell_rot_gaze",
      "kind": "spell",
      "name": "Rot Gaze",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "duration",
        "hp_cost",
        "strip",
        "necrosis",
        "flies",
        "minion_health",
        "minion_damage"
      ],
      "tags": [
        "Dark",
        "Nature",
        "Eye",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "Inflicts [necrosis] in addition to [poison]",
          "id": "necrotic_gaze",
          "name": "Necrotic Gaze",
          "tags": [
            "Dark",
            "Nature",
            "Eye",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Enemies receive -10% [Dark] and [Poison] resistance before the spell deals damage",
          "id": "felling_all_foes",
          "name": "Felling All Foes",
          "tags": [
            "Dark",
            "Nature",
            "Eye",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 6,
          "damageType": null,
          "description": "If you would receive the [poison] status or take [Poison] damage, you instead gain a charge of Rot Gaze\nAlways Active",
          "id": "lord_of_rot",
          "name": "Lord of Rot",
          "tags": [
            "Dark",
            "Nature",
            "Eye",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 8,
          "damageType": [],
          "description": "Summon a Fly Swarm near each affected enemy",
          "id": "rot_feast",
          "name": "Rot Feast",
          "tags": [
            "Dark",
            "Nature",
            "Eye",
            "Sorcery",
            "Conjuration"
          ]
        }
      ]
    },
    "spell_ruinous_offering": {
      "asset": "UI/spell skill icons/ruinous_offering.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "duration": 12,
        "hp_cost": 50,
        "level": 4,
        "max_charges": 6,
        "melee": false,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "helmet": 2,
          "weapon": 7
        },
        "count": 9
      },
      "baseId": "ruinous_offering",
      "className": "RuinousOffering",
      "damageType": [],
      "description": "Empower one of your other spells at the cost of your life\nGain a stacking [25%:blood] bonus to the attributes of another [Chaos] or [Blood] spell you know\nLasts [12:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_ruinous_offering.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/ruinous_offering.png",
      "id": "spell_ruinous_offering",
      "kind": "spell",
      "name": "Ruinous Offering",
      "stats": [
        "range",
        "max_charges",
        "duration",
        "hp_cost",
        "multi",
        "num_targets",
        "renewal",
        "gate",
        "panoply"
      ],
      "tags": [
        "Blood",
        "Chaos",
        "Enchantment"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Ruinous Offering is no longer limited to only [Chaos] and [Blood] spells",
          "id": "panoply_of_ruin",
          "name": "Panoply of Ruin",
          "tags": [
            "Blood",
            "Chaos",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Units summoned by the empowered spell gain the [Demon] tag",
          "id": "ruinous_gate",
          "name": "Ruinous Gate",
          "tags": [
            "Blood",
            "Chaos",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "The empowered spell regains all charges",
          "id": "sanguine_renewal",
          "name": "Sanguine Renewal",
          "tags": [
            "Blood",
            "Chaos",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 7,
          "damageType": [],
          "description": "Ruinous Offering empowers up to [{num_targets}:num_targets] different spells instead of one",
          "id": "blessing_of_ruin",
          "name": "Blessing of Ruin",
          "tags": [
            "Blood",
            "Chaos",
            "Enchantment"
          ]
        }
      ]
    },
    "spell_sanction": {
      "asset": "UI/spell skill icons/sanction.png",
      "attributes": {
        "can_target_empty": false,
        "cool_down": 0,
        "damage": 30,
        "hp_cost": 10,
        "level": 6,
        "max_charges": 10,
        "melee": false,
        "quick_cast": false,
        "range": 36,
        "requires_los": false
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "boots": 1,
          "helmet": 4,
          "trinket": 3,
          "weapon": 10
        },
        "count": 19
      },
      "baseId": "sanction",
      "className": "Sanction",
      "damageType": [],
      "description": "Sanction the target\nSanction deals [30:damage] [Holy] damage to the cursed unit when they cast a spell or take [Holy] damage from another source\nYou are healed for 1 HP when Sanction deals damage",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_sanction.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/sanction.png",
      "id": "spell_sanction",
      "kind": "spell",
      "name": "Sanction",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "hp_cost",
        "strip",
        "mass",
        "num_targets",
        "exile",
        "duration"
      ],
      "tags": [
        "Blood",
        "Holy",
        "Enchantment"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 3,
          "damageType": null,
          "description": "Each turn, cast Sanction on the first unsanctioned enemy that damages you",
          "id": "divine_rebuke",
          "name": "Divine Rebuke",
          "tags": [
            "Blood",
            "Holy",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Sanctioned units are [berserked] for [{duration}:duration] turns",
          "id": "exiled_one",
          "name": "Exiled One",
          "tags": [
            "Blood",
            "Holy",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Sanction affects up to [{num_targets}:num_targets] enemies in a connected group",
          "id": "mass_sanction",
          "name": "Mass Sanction",
          "tags": [
            "Blood",
            "Holy",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "Sanction reduces all resistances to 0",
          "id": "stripped_bare",
          "name": "Stripped Bare",
          "tags": [
            "Blood",
            "Holy",
            "Enchantment"
          ]
        }
      ]
    },
    "spell_scourge": {
      "asset": "UI/spell skill icons/scourge.png",
      "attributes": {
        "can_target_empty": false,
        "cool_down": 0,
        "damage": 5,
        "duration": 3,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 6,
        "melee": false,
        "quick_cast": false,
        "radius": 1,
        "range": 4,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "boots": 1,
          "helmet": 4,
          "trinket": 2,
          "weapon": 9
        },
        "count": 17
      },
      "baseId": "scourge",
      "className": "ScourgeSpell",
      "damageType": [],
      "description": "The target is Scourged for [3:duration] turns\nScourged units cannot act\nEach turn, the target and units within [1:radius] tiles take [5:damage] [Holy] damage",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_scourge.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/scourge.png",
      "id": "spell_scourge",
      "kind": "spell",
      "name": "Scourge",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "radius",
        "duration",
        "hp_cost",
        "exile",
        "painful_lesson",
        "mass_scourge",
        "ascension"
      ],
      "tags": [
        "Holy",
        "Enchantment"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "duration": 3
          },
          "cost": 2,
          "damageType": [],
          "description": "Scourged inflicts [{duration}:duration] turns of [fear] after it ends",
          "id": "painful_lesson",
          "name": "Painful Lesson",
          "tags": [
            "Holy",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Scourge also applies [berserk] for the same duration",
          "id": "scourged_exile",
          "name": "Scourged Exile",
          "tags": [
            "Holy",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "When a Scourged [Demon] dies, casts a random [Holy] [Conjuration] you know at that location",
          "id": "ascension",
          "name": "Ascension",
          "tags": [
            "Holy",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 7,
          "damageType": [],
          "description": "Affects a connected group of enemies",
          "id": "mass_scourge",
          "name": "Mass Scourge",
          "tags": [
            "Holy",
            "Enchantment"
          ]
        }
      ]
    },
    "spell_seal_fate": {
      "asset": "UI/spell skill icons/seal_fate.png",
      "attributes": {
        "can_target_empty": false,
        "cool_down": 0,
        "damage": 160,
        "delay": 4,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 13,
        "melee": false,
        "quick_cast": false,
        "range": 6,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "boots": 1,
          "helmet": 5,
          "trinket": 3,
          "weapon": 9
        },
        "count": 20
      },
      "baseId": "seal_fate",
      "className": "SealFate",
      "damageType": [
        "Dark"
      ],
      "description": "After 4 turns, deal [160:damage] [Dark] damage to the target unit",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 7,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_seal_fate.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/seal_fate.png",
      "id": "spell_seal_fate",
      "kind": "spell",
      "name": "Seal Fate",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "hp_cost",
        "delay",
        "fatebound",
        "heaven",
        "spreads",
        "requires_los"
      ],
      "tags": [
        "Enchantment",
        "Dark"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "Seal Fate can be cast outside your line of sight",
          "id": "blindcasting",
          "name": "Blindcasting",
          "tags": [
            "Enchantment",
            "Dark"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "When Sealed Fate's duration expires, it jumps to a random enemy in line of sight",
          "id": "spreading_curse",
          "name": "Spreading Curse",
          "tags": [
            "Enchantment",
            "Dark"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [
            "Holy"
          ],
          "description": "Sealed Fate also deals [Holy] damage",
          "id": "heavenly_mandate",
          "name": "Heavenly Mandate",
          "tags": [
            "Enchantment",
            "Dark",
            "Holy"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 8,
          "damageType": [],
          "description": "Seal Fate affects all enemies with the same name as target",
          "id": "fatebound",
          "name": "Fatebound",
          "tags": [
            "Enchantment",
            "Dark"
          ]
        }
      ]
    },
    "spell_searing_seal": {
      "asset": "UI/spell skill icons/searing_seal.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "duration": 8,
        "hp_cost": 0,
        "level": 4,
        "max_charges": 4,
        "melee": false,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "helmet": 2,
          "weapon": 5
        },
        "count": 8
      },
      "baseId": "searing_seal",
      "className": "SearingSealSpell",
      "damageType": [],
      "description": "Gain Seal of Searing for [8:duration] turns\nWhen enemies take [Fire] damage, the seal gains that many charges\nWhen Seal of Searing is removed, it deals [1 Fire:fire] damage to enemies in line of sight for every 5 charges it has",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_searing_seal.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/searing_seal.png",
      "id": "spell_searing_seal",
      "kind": "spell",
      "name": "Searing Seal",
      "stats": [
        "range",
        "max_charges",
        "duration",
        "hp_cost",
        "fire_harvest",
        "minion_health",
        "minion_range",
        "minion_damage",
        "chaos_seal",
        "rebuke",
        "damage",
        "inner_fire"
      ],
      "tags": [
        "Fire",
        "Enchantment"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "Searing Seal grants a percentage [damage] bonus to [Fire] spells and equipment\nThe percentage is equal to your [Fire] mastery",
          "id": "inner_fire",
          "name": "Inner Fire",
          "tags": [
            "Fire",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Searing Seal deals [{damage}:damage] [Fire] damage to enemies that damage you",
          "id": "searing_rebuke",
          "name": "Searing Rebuke",
          "tags": [
            "Fire",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "For every 100 charges stored, summon a Fire Spirit",
          "id": "fire_harvest",
          "name": "Fire Harvest",
          "tags": [
            "Fire",
            "Enchantment",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Gain charges separately for [Fire], [Lightning], and [Physical] damage, and deal damage of each type each on expiration",
          "id": "chaos_seal",
          "name": "Chaos Seal",
          "tags": [
            "Fire",
            "Enchantment",
            "Chaos"
          ],
          "unlocksItems": 2
        }
      ]
    },
    "spell_shadow_hex": {
      "asset": "UI/spell skill icons/shadow_hex.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 9,
        "duration": 10,
        "hp_cost": 0,
        "level": 2,
        "max_charges": 5,
        "melee": false,
        "quick_cast": false,
        "radius": 3,
        "range": 8,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "boots": 1,
          "helmet": 5,
          "trinket": 3,
          "weapon": 10
        },
        "count": 21
      },
      "baseId": "shadow_hex",
      "className": "ShadowHexSpell",
      "damageType": [],
      "description": "Curse enemies in a [3 tile:radius] radius with the Shadow Hex for [10:duration] turns\nCursed targets take [9:damage] [Dark] damage each turn",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 2,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_shadow_hex.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/shadow_hex.png",
      "id": "spell_shadow_hex",
      "kind": "spell",
      "name": "Shadow Hex",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "radius",
        "duration",
        "hp_cost",
        "knot",
        "stacking",
        "devour",
        "remove_resistance"
      ],
      "tags": [
        "Dark",
        "Enchantment"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "damage": 9
          },
          "cost": 2,
          "damageType": [],
          "description": "The Shadow Hex debuff removes temporary buffs at the end of each turn\nEach buff removed this way increases its damage by [{damage}:damage] for the remainder of its duration",
          "id": "devouring_shadows",
          "name": "Devouring Shadows",
          "tags": [
            "Dark",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "The Shadow Hex debuff removes [25% Dark:dark] resistance",
          "id": "insatiable_shadows",
          "name": "Insatiable Shadows",
          "tags": [
            "Dark",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Shadow Hex will stack instead of extending its duration on subsequent applications",
          "id": "compounding_curses",
          "name": "Compounding Curses",
          "tags": [
            "Dark",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "duration": 3
          },
          "cost": 7,
          "damageType": [],
          "description": "Affected units also receive the [Shared Pain:blood] debuff for [{duration}:duration] turns",
          "id": "hex_knot",
          "name": "Hex Knot",
          "tags": [
            "Dark",
            "Enchantment",
            "Blood"
          ],
          "unlocksItems": 5
        }
      ]
    },
    "spell_shatter": {
      "asset": "UI/spell skill icons/shatter.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 80,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 6,
        "melee": false,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "helmet": 1,
          "weapon": 9
        },
        "count": 12
      },
      "baseId": "shatter",
      "className": "ShatterSpell",
      "damageType": [
        "Physical"
      ],
      "description": "[Frozen:ice] enemies take [80:damage] [Physical:physical] damage",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_shatter.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/shatter.png",
      "id": "spell_shatter",
      "kind": "spell",
      "name": "Shatter",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "hp_cost",
        "sorrow",
        "minion_hp",
        "minion_damage",
        "minion_range",
        "minion_duration",
        "excise",
        "sharp",
        "duration",
        "gather"
      ],
      "tags": [
        "Ice",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "Gain 1 [SH:shields] for each damaged target in your line of sight",
          "id": "gather_ice",
          "name": "Gather Ice",
          "tags": [
            "Ice",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Shatter also inflicts [{duration}:duration] turns of [hemorrhage]",
          "id": "razor_ice",
          "name": "Razor Ice",
          "tags": [
            "Ice",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "After dealing damage, Shatter reduces affected enemies' max HP to match their current HP",
          "id": "glacial_excision",
          "name": "Glacial Excision",
          "tags": [
            "Ice",
            "Sorcery",
            "Blood"
          ],
          "unlocksItems": 4
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Summon Sorrow when Shatter kills a unit",
          "id": "shattered_sorrows",
          "name": "Shattered Sorrows",
          "tags": [
            "Ice",
            "Sorcery",
            "Conjuration"
          ]
        }
      ]
    },
    "spell_shrapnel_blast": {
      "asset": "UI/spell skill icons/shrapnel_blast.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 12,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 4,
        "melee": false,
        "num_targets": 16,
        "quick_cast": false,
        "radius": 3,
        "range": 7,
        "requires_los": false
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 3,
          "helmet": 2,
          "trinket": 4,
          "weapon": 15
        },
        "count": 24
      },
      "baseId": "shrapnel_blast",
      "className": "ShrapnelBlast",
      "damageType": [],
      "description": "Detonate target wall tile\nThe initial explosion deals [12:damage] [Fire] damage to adjacent tiles\nThen, [16:num_targets] shards deal [12:damage] [Physical] damage to random tiles within [3:radius] tiles",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 1,
        "outgoingCount": 0,
        "pathCount": 1
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_shrapnel_blast.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/shrapnel_blast.png",
      "id": "spell_shrapnel_blast",
      "kind": "spell",
      "name": "Shrapnel Blast",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "radius",
        "num_targets",
        "hp_cost",
        "remote",
        "homing",
        "puncture",
        "bleed",
        "duration"
      ],
      "tags": [
        "Fire",
        "Metallic",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "Shrapnel Blast shards inflict [{duration}:duration] turns of [bleed]",
          "id": "slicing_shrapnel",
          "name": "Slicing Shrapnel",
          "tags": [
            "Fire",
            "Metallic",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Shrapnel Blast can be used to detonate [Metallic] and [Construct] allies in addition to walls\nDetonating a unit kills it, and increases the damage of the initial blast by its max HP",
          "id": "remote_detonation",
          "name": "Remote Detonation",
          "tags": [
            "Fire",
            "Metallic",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "The shrapnel can penetrate and destroy walls\nIf it would destroy a wall besides the initial target, there is a 25% chance to cast Shrapnel Blast on that wall",
          "id": "chain_blast",
          "name": "Chain Blast",
          "tags": [
            "Fire",
            "Metallic",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "The shrapnel shards always target enemies if possible",
          "id": "magnetized_shards",
          "name": "Magnetized Shards",
          "tags": [
            "Fire",
            "Metallic",
            "Sorcery"
          ]
        }
      ]
    },
    "spell_silver_spear": {
      "asset": "UI/spell skill icons/silver_spear.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 27,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 10,
        "melee": false,
        "quick_cast": false,
        "radius": 1,
        "range": 7,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "boots": 1,
          "helmet": 3,
          "trinket": 6,
          "weapon": 12
        },
        "count": 24
      },
      "baseId": "silver_spear",
      "className": "SilverSpearSpell",
      "damageType": [],
      "description": "Deal [27:damage] [Physical] damage to the target\nDeal [27:damage] [Holy] damage to [Dark] and [Arcane] units within [1:radius] tiles of the spear's path",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 1,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_silver_spear.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/silver_spear.png",
      "id": "spell_silver_spear",
      "kind": "spell",
      "name": "Silver Spear",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "radius",
        "hp_cost",
        "strip",
        "requires_los",
        "pin",
        "duration",
        "deal_lightning"
      ],
      "tags": [
        "Holy",
        "Metallic",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "",
          "id": "astral_spear",
          "name": "Astral Spear",
          "tags": [
            "Holy",
            "Metallic",
            "Sorcery",
            "Arcane"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Target is immobilized and [bleeds] for [{duration}:duration] turns",
          "id": "impalement",
          "name": "Impalement",
          "tags": [
            "Holy",
            "Metallic",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Silver Spear removes the target's [Physical] and [Holy] resistances",
          "id": "irresistible_strike",
          "name": "Irresistible Strike",
          "tags": [
            "Holy",
            "Metallic",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Silver Spear deals [Lightning] damage to enemies in the spear's radius",
          "id": "copper_shaft",
          "name": "Copper Shaft",
          "tags": [
            "Holy",
            "Metallic",
            "Sorcery",
            "Lightning"
          ],
          "unlocksItems": 4
        }
      ]
    },
    "spell_siphon_shields": {
      "asset": "UI/spell skill icons/siphon_shields.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 2,
        "melee": false,
        "quick_cast": false,
        "range": 0,
        "requires_los": true,
        "shield_steal": 3
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "helmet": 2,
          "weapon": 3
        },
        "count": 6
      },
      "baseId": "siphon_shields",
      "className": "ShieldSiphon",
      "damageType": [],
      "description": "Steal up to [3 SH:shields] from all enemies in line of sight",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_siphon_shields.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/siphon_shields.png",
      "id": "spell_siphon_shields",
      "kind": "spell",
      "name": "Siphon Shields",
      "stats": [
        "range",
        "max_charges",
        "hp_cost",
        "lensing",
        "shield_steal",
        "shield_burn",
        "damage"
      ],
      "tags": [
        "Arcane",
        "Enchantment"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Deal [{damage}:damage] [Fire] damage for each shield stolen",
          "id": "shield_burn",
          "name": "Shield Burn",
          "tags": [
            "Arcane",
            "Enchantment",
            "Fire"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 3,
          "damageType": null,
          "description": "If a shielded unit damages you, steal one of their shields\nAlways Active",
          "id": "retributive_siphon",
          "name": "Retributive Siphon",
          "tags": [
            "Arcane",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "",
          "id": "shield_steal",
          "name": "Shield Steal",
          "tags": [
            "Arcane",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "After casting Siphon Shields, your [Eye] spells get a 10% [damage] bonus for each [SH:shields] you have\nThis bonus lasts until your shields are completely removed or you cast this spell again",
          "id": "ocular_lensing",
          "name": "Ocular Lensing",
          "tags": [
            "Arcane",
            "Enchantment",
            "Eye"
          ],
          "unlocksItems": 1
        }
      ]
    },
    "spell_slime_drake": {
      "asset": "UI/spell skill icons/slime_drake.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 8,
        "max_charges": 1,
        "melee": false,
        "minion_damage": 8,
        "minion_health": 140,
        "minion_range": 5,
        "quick_cast": false,
        "range": 5,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 3,
          "helmet": 3,
          "trinket": 5,
          "weapon": 7
        },
        "count": 18
      },
      "baseId": "slime_drake",
      "className": "SummonSlimeDrake",
      "damageType": [],
      "description": "Summon a Slime Drake",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 1
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_slime_drake.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/slime_drake.png",
      "id": "spell_slime_drake",
      "kind": "spell",
      "name": "Slime Drake",
      "stats": [
        "range",
        "max_charges",
        "minion_damage",
        "minion_health",
        "minion_range",
        "hp_cost",
        "dragon_mage",
        "oozing_trail",
        "swamp"
      ],
      "tags": [
        "Conjuration",
        "Dragon",
        "Slime"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "When the Slime Drake moves, it will attempt to summon a Green Slime nearby",
          "id": "oozing_trail",
          "name": "Oozing Trail",
          "tags": [
            "Conjuration",
            "Dragon",
            "Slime"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Slime Drakes gain the Swamp Dweller buff\nIf it ends its turn over a swamp chasm it activates its slime buff three additional times",
          "id": "swamp_dweller",
          "name": "Swamp Dweller",
          "tags": [
            "Conjuration",
            "Dragon",
            "Slime"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "The Slime Drake can cast your Slimeshot on a 6 turn cooldown",
          "id": "dragon_mage",
          "name": "Dragon Mage",
          "tags": [
            "Conjuration",
            "Dragon",
            "Slime"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "",
          "id": "slime_tank",
          "name": "Slime Tank",
          "tags": [
            "Conjuration",
            "Dragon",
            "Slime"
          ]
        }
      ]
    },
    "spell_slime_form": {
      "asset": "UI/spell skill icons/slime_form.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "duration": 12,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 2,
        "melee": false,
        "minion_damage": 3,
        "minion_health": 10,
        "minion_range": 3,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "helmet": 4,
          "trinket": 2,
          "weapon": 7
        },
        "count": 15
      },
      "baseId": "slime_form",
      "className": "SlimeformSpell",
      "damageType": [],
      "description": "Assume Slime Form for [12:duration] turns\nGain [50 Physical:physical] and [100 Poison:poison] resistance\nEach turn, summon a Green Slime nearby\nIf you have multiple upgrades that would replace the Green Slime, summon one of each",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_slime_form.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/slime_form.png",
      "id": "spell_slime_form",
      "kind": "spell",
      "name": "Slime Form",
      "stats": [
        "range",
        "max_charges",
        "duration",
        "minion_damage",
        "minion_health",
        "minion_range",
        "hp_cost",
        "num_summons",
        "chromatic_oozemancer",
        "blood_slimes",
        "void_slimes",
        "electric_slimes",
        "ice_slimes",
        "fire_slimes"
      ],
      "tags": [
        "Enchantment",
        "Conjuration",
        "Slime"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Instead of a Green Slime, summon a Blood Slime",
          "id": "blood_slime",
          "name": "Blood Slime",
          "tags": [
            "Enchantment",
            "Conjuration",
            "Slime",
            "Blood"
          ],
          "unlocksItems": 2
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Instead of a Green Slime, summon an Electric Slime",
          "id": "electric_slime",
          "name": "Electric Slime",
          "tags": [
            "Enchantment",
            "Conjuration",
            "Slime",
            "Lightning"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Instead of a Green Slime, summon a Fire Slime",
          "id": "fire_slime",
          "name": "Fire Slime",
          "tags": [
            "Enchantment",
            "Conjuration",
            "Slime",
            "Fire"
          ],
          "unlocksItems": 4
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Instead of a Green Slime, summon an Ice Slime",
          "id": "ice_slime",
          "name": "Ice Slime",
          "tags": [
            "Enchantment",
            "Conjuration",
            "Slime",
            "Ice"
          ],
          "unlocksItems": 4
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Instead of a Green Slime, summon a Void Slime",
          "id": "void_slime",
          "name": "Void Slime",
          "tags": [
            "Enchantment",
            "Conjuration",
            "Slime",
            "Arcane"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 9,
          "damageType": [],
          "description": "Summon [{num_summons}:num_summons] additional random slimes each turn",
          "id": "chromatic_oozemancer",
          "name": "Chromatic Oozemancer",
          "tags": [
            "Enchantment",
            "Conjuration",
            "Slime",
            "Chaos"
          ],
          "unlocksItems": 2
        }
      ]
    },
    "spell_slimeshot": {
      "asset": "UI/spell skill icons/slimeshot.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 12,
        "duration": 10,
        "hp_cost": 0,
        "level": 2,
        "max_charges": 5,
        "melee": false,
        "quick_cast": false,
        "radius": 3,
        "range": 6,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "helmet": 2,
          "trinket": 2,
          "weapon": 10
        },
        "count": 15
      },
      "baseId": "slimeshot",
      "className": "Slimeshot",
      "damageType": [
        "Poison"
      ],
      "description": "Deal [12:damage] [Poison] damage in a [3:radius] tile burst\nIf the target is an allied [Slime], it explodes, adding its max HP to the spell's damage\nInflict [10:duration] turns of soaked on non [Slime] units\nTurns water chasms into swamp chasms",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 1,
        "outgoingCount": 1,
        "pathCount": 1
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_slimeshot.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/slimeshot.png",
      "id": "spell_slimeshot",
      "kind": "spell",
      "name": "Slimeshot",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "radius",
        "duration",
        "hp_cost",
        "transmute",
        "slime_rust",
        "chucker",
        "slimify"
      ],
      "tags": [
        "Sorcery",
        "Slime"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Adjacent [Slime] allies are sacrificed, and their max HP is added to the spell's damage",
          "id": "slime_chucker",
          "name": "Slime Chucker",
          "tags": [
            "Sorcery",
            "Slime"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [
            "Physical"
          ],
          "description": "Slimeshot also deals [Physical] damage\nAffected units receive [Slime Rust:slime] which reduces all of their resistances by 10%\nDoes not affect [Slime] units",
          "id": "slime_rust",
          "name": "Slime Rust",
          "tags": [
            "Sorcery",
            "Slime",
            "Metallic"
          ],
          "unlocksItems": 5
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Storms over affected tiles are consumed, and turned into slimes of matching types\n[Lightning Storms:lightning] become Electric Slimes\n[Blizzards:ice] become Ice Slimes\n[Rain Clouds:nature] become Green Slimes",
          "id": "storm_transmutation",
          "name": "Storm Transmutation",
          "tags": [
            "Sorcery",
            "Slime",
            "Nature"
          ],
          "unlocksItems": 6
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "Cast Slimify on affected enemies",
          "id": "slimification_shot",
          "name": "Slimification Shot",
          "tags": [
            "Sorcery",
            "Slime"
          ]
        }
      ]
    },
    "spell_slimify": {
      "asset": "UI/spell skill icons/slimify.png",
      "attributes": {
        "can_target_empty": false,
        "cool_down": 0,
        "damage": 10,
        "duration": 4,
        "hp_cost": 5,
        "level": 2,
        "max_charges": 12,
        "melee": false,
        "minion_damage": 3,
        "minion_health": 10,
        "quick_cast": false,
        "range": 3,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "helmet": 4,
          "trinket": 4,
          "weapon": 12
        },
        "count": 22
      },
      "baseId": "slimify",
      "className": "Slimify",
      "damageType": [
        "Physical"
      ],
      "description": "Target is Slimified\nSlimified deals [10:damage] [Physical] damage each turn\nWhen it successfully deals damage, the victim's max HP is decreased by the damage dealt, and a Green Slime is summoned nearby\nLasts [4:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 1,
        "outgoingCount": 0,
        "pathCount": 1
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_slimify.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/slimify.png",
      "id": "spell_slimify",
      "kind": "spell",
      "name": "Slimify",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "duration",
        "minion_damage",
        "minion_health",
        "hp_cost",
        "rapid_decomposition",
        "contagion",
        "rainbow",
        "touch"
      ],
      "tags": [
        "Enchantment",
        "Blood",
        "Conjuration",
        "Slime"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "If cast on an adjacent unit, the duration is permanent",
          "id": "genetic_scramble",
          "name": "Genetic Scramble",
          "tags": [
            "Enchantment",
            "Blood",
            "Conjuration",
            "Slime"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Slimify's remaining duration will jump to the nearest enemy in line of sight if the affected unit dies",
          "id": "contagion",
          "name": "Contagion",
          "tags": [
            "Enchantment",
            "Blood",
            "Conjuration",
            "Slime"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Slimes can be of any variety",
          "id": "rainbow_slimes",
          "name": "Rainbow Slimes",
          "tags": [
            "Enchantment",
            "Blood",
            "Conjuration",
            "Slime",
            "Chaos"
          ],
          "unlocksItems": 5
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Slimify's effects are triggered if the affected target takes damage from a [Slime]",
          "id": "rapid_decomposition",
          "name": "Rapid Decomposition",
          "tags": [
            "Enchantment",
            "Blood",
            "Conjuration",
            "Slime"
          ]
        }
      ]
    },
    "spell_soul_tax": {
      "asset": "UI/spell skill icons/soul_tax.png",
      "attributes": {
        "arcane": 0,
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 5,
        "max_charges": 3,
        "melee": false,
        "quick_cast": false,
        "range": 4,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "boots": 1,
          "helmet": 3,
          "trinket": 3,
          "weapon": 10
        },
        "count": 19
      },
      "baseId": "soul_tax",
      "className": "SoulTax",
      "damageType": [
        "Holy",
        "Dark"
      ],
      "description": "Deal damage to the target equal to one third of its HP as [Holy] damage, and then one third of its remaining HP as [Dark] damage\nHeals the caster for the damage dealt",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_soul_tax.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/soul_tax.png",
      "id": "spell_soul_tax",
      "kind": "spell",
      "name": "Soul Tax",
      "stats": [
        "range",
        "max_charges",
        "hp_cost",
        "debt",
        "target_group",
        "quick_cast",
        "arcane"
      ],
      "tags": [
        "Sorcery",
        "Dark",
        "Holy"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Soul Tax gains quickcast",
          "id": "insta_tax",
          "name": "Insta Tax",
          "tags": [
            "Sorcery",
            "Dark",
            "Holy"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [
            "Arcane"
          ],
          "description": "Soul Tax deals an additional third of the target's remaining HP as [Arcane] damage",
          "id": "arcane_taxation",
          "name": "Arcane Taxation",
          "tags": [
            "Sorcery",
            "Dark",
            "Holy",
            "Arcane"
          ],
          "unlocksItems": 2
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Soul Tax inflicts the [Soul Debt:blood] debuff\n[Soul Debt:blood] redirects healing from the cursed unit to you",
          "id": "soul_debt",
          "name": "Soul Debt",
          "tags": [
            "Sorcery",
            "Dark",
            "Holy",
            "Blood"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "Affects a connected group of enemies",
          "id": "mass_taxation",
          "name": "Mass Taxation",
          "tags": [
            "Sorcery",
            "Dark",
            "Holy"
          ]
        }
      ]
    },
    "spell_soul_wind": {
      "asset": "UI/spell skill icons/soul_wind.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 37,
        "hp_cost": 54,
        "level": 7,
        "max_charges": 3,
        "melee": false,
        "minion_damage": 1,
        "minion_health": 4,
        "quick_cast": false,
        "range": 36,
        "requires_los": false
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 3,
          "boots": 1,
          "helmet": 5,
          "trinket": 6,
          "weapon": 16
        },
        "count": 31
      },
      "baseId": "soul_wind",
      "className": "SoulWindSpell",
      "damageType": [
        "Dark",
        "Holy"
      ],
      "description": "Deal [37:damage] [Dark] damage in a 3 tile wide line perpendicular to the caster\n[Undead], [Dark], and [Demon] units in the area take [Holy] damage instead of [Dark]\nSummon a Ghost near each [Living] unit in the affected area",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_soul_wind.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/soul_wind.png",
      "id": "spell_soul_wind",
      "kind": "spell",
      "name": "Soul Wind",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "minion_damage",
        "minion_health",
        "hp_cost",
        "mirror",
        "arcane",
        "death",
        "share",
        "duration"
      ],
      "tags": [
        "Blood",
        "Holy",
        "Dark",
        "Sorcery",
        "Conjuration"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Soul Wind also affects a symmetric area behind the caster",
          "id": "dual_wind",
          "name": "Dual Wind",
          "tags": [
            "Blood",
            "Holy",
            "Dark",
            "Sorcery",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [
            "Arcane"
          ],
          "description": "Soul Wind also deals [Arcane] damage",
          "id": "arcane_wind",
          "name": "Arcane Wind",
          "tags": [
            "Blood",
            "Holy",
            "Dark",
            "Sorcery",
            "Conjuration",
            "Arcane"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "Summon Death instead of a Ghost",
          "id": "soul_death",
          "name": "Soul Death",
          "tags": [
            "Blood",
            "Holy",
            "Dark",
            "Sorcery",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 9,
          "damageType": [],
          "description": "Enemies that share a name with a unit slain by Soul Wind are afflicted with Shared Pain for [{duration}:duration] turns",
          "id": "shared_soul",
          "name": "Shared Soul",
          "tags": [
            "Blood",
            "Holy",
            "Dark",
            "Sorcery",
            "Conjuration"
          ]
        }
      ]
    },
    "spell_spider_queen": {
      "asset": "UI/spell skill icons/spider_queen.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 2,
        "melee": false,
        "minion_damage": 16,
        "minion_health": 96,
        "quick_cast": false,
        "range": 5,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "helmet": 3,
          "trinket": 2,
          "weapon": 4
        },
        "count": 11
      },
      "baseId": "spider_queen",
      "className": "SummonSpiderQueen",
      "damageType": [],
      "description": "Summon a Spider Queen",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_spider_queen.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/spider_queen.png",
      "id": "spell_spider_queen",
      "kind": "spell",
      "name": "Spider Queen",
      "stats": [
        "range",
        "max_charges",
        "minion_damage",
        "minion_health",
        "hp_cost",
        "dryder",
        "aether"
      ],
      "tags": [
        "Nature",
        "Conjuration"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 2,
          "damageType": null,
          "description": "[Spider] allies gain [50% Physical:physical] resist and permanently [poison] melee attackers\nAlways Active",
          "id": "urticating_hairs",
          "name": "Urticating Hairs",
          "tags": [
            "Nature",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Summon an Aether Spider Queen instead",
          "id": "aether_queen",
          "name": "Aether Queen",
          "tags": [
            "Nature",
            "Conjuration",
            "Arcane"
          ],
          "unlocksItems": 2
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 7,
          "damageType": null,
          "description": "[Spider] allies gain the [Blood] tag and can cast your Lifedrain on a 4 turn cooldown\nAlways Active\nAdds the [Blood] tag",
          "id": "vampire_queen",
          "name": "Vampire Queen",
          "tags": [
            "Nature",
            "Conjuration",
            "Blood"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 9,
          "damageType": [],
          "description": "Also summon a pair of Dryders near the Spider Queen",
          "id": "dryder_guards",
          "name": "Dryder Guards",
          "tags": [
            "Nature",
            "Conjuration"
          ]
        }
      ]
    },
    "spell_spikeball_factory": {
      "asset": "UI/spell skill icons/spikeball_factory.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 7,
        "max_charges": 1,
        "melee": false,
        "minion_damage": 10,
        "minion_health": 60,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "helmet": 2,
          "trinket": 3,
          "weapon": 2
        },
        "count": 8
      },
      "baseId": "spikeball_factory",
      "className": "SpikeballFactory",
      "damageType": [],
      "description": "Summon Spike Ball Spawners in unoccupied adjacent tiles",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_spikeball_factory.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/spikeball_factory.png",
      "id": "spell_spikeball_factory",
      "kind": "spell",
      "name": "Spikeball Factory",
      "stats": [
        "range",
        "max_charges",
        "minion_damage",
        "minion_health",
        "hp_cost",
        "overclocked",
        "copper",
        "manufactory",
        "defense",
        "minion_range"
      ],
      "tags": [
        "Metallic",
        "Conjuration"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "minion_damage": 10
          },
          "cost": 3,
          "damageType": [],
          "description": "Spike Ball Spawners gain a [{minion_damage}:minion_damage] [Physical] damage, [{minion_range}:minion_range] range, ranged attack",
          "id": "defense_system",
          "name": "Defense System",
          "tags": [
            "Metallic",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "Surrounds the initially summoned spawners with another layer of spawners",
          "id": "manufactory",
          "name": "Manufactory",
          "tags": [
            "Metallic",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 7,
          "damageType": [],
          "description": "Summons Copper Spike Ball Spawners instead",
          "id": "copper_spikeballs",
          "name": "Copper Spikeballs",
          "tags": [
            "Metallic",
            "Conjuration",
            "Lightning"
          ],
          "unlocksItems": 2
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 9,
          "damageType": [],
          "description": "The spawners' summoning spell cooldown is halved",
          "id": "overclocked_assembly",
          "name": "Overclocked Assembly",
          "tags": [
            "Metallic",
            "Conjuration"
          ]
        }
      ]
    },
    "spell_stampede_form": {
      "asset": "UI/spell skill icons/stampede_form.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "duration": 12,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 2,
        "melee": false,
        "minion_damage": 12,
        "minion_health": 60,
        "num_summons": 7,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "helmet": 3,
          "trinket": 3,
          "weapon": 8
        },
        "count": 16
      },
      "baseId": "stampede_form",
      "className": "StampedeFormSpell",
      "damageType": [],
      "description": "Become a Pachyderm and summon [7:num_summons] Pachyderms nearby\nGain 50 [Physical] resistance\nWalking onto an enemy will move them and deal [12:minion_damage] [Physical] damage\nPachyderms are unsummoned when Stampede Form ends\nLasts [12:duration] turns or until you cast a non [Nature] spell",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_stampede_form.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/stampede_form.png",
      "id": "spell_stampede_form",
      "kind": "spell",
      "name": "Stampede Form",
      "stats": [
        "range",
        "max_charges",
        "duration",
        "minion_damage",
        "minion_health",
        "num_summons",
        "hp_cost",
        "rage",
        "heavyweights",
        "loyalty",
        "ironhide"
      ],
      "tags": [
        "Nature",
        "Conjuration",
        "Enchantment"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Your and your Pachyderm allies' melee attacks inflict 2 turns of [stun]",
          "id": "heavyweights",
          "name": "Heavyweights",
          "tags": [
            "Nature",
            "Conjuration",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "You and your Pachyderm allies gain the [Metallic] tag, along with +50% resistance to [Fire], [Ice], and [Lightning] damage\nYou may cast [Metallic] spells without ending Stampede Form",
          "id": "ironhide",
          "name": "Ironhide",
          "tags": [
            "Nature",
            "Conjuration",
            "Enchantment",
            "Metallic"
          ],
          "unlocksItems": 4
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "While Pachyderm Form is active, if one of your Pachyderms dies, cast Boiling Blood\nYou may cast [Fire] spells without ending Stampede Form",
          "id": "enraged_stampede",
          "name": "Enraged Stampede",
          "tags": [
            "Nature",
            "Conjuration",
            "Enchantment",
            "Fire"
          ],
          "unlocksItems": 4
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "For each turn you spend in Stampede Form, one of the remaining Pachyderms is not unsummoned when the buff ends",
          "id": "loyalty",
          "name": "Loyalty",
          "tags": [
            "Nature",
            "Conjuration",
            "Enchantment"
          ]
        }
      ]
    },
    "spell_stonewake": {
      "asset": "UI/spell skill icons/stonewake.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 5,
        "max_charges": 3,
        "melee": false,
        "minion_damage": 8,
        "minion_duration": 16,
        "minion_health": 25,
        "quick_cast": false,
        "radius": 3,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 4,
          "helmet": 2,
          "trinket": 6,
          "weapon": 7
        },
        "count": 19
      },
      "baseId": "stonewake",
      "className": "Stonewake",
      "damageType": [],
      "description": "Walls within [3:radius] tiles become floors, and are transformed into temporary Golems",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_stonewake.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/stonewake.png",
      "id": "spell_stonewake",
      "kind": "spell",
      "name": "Stonewake",
      "stats": [
        "range",
        "max_charges",
        "radius",
        "minion_duration",
        "minion_damage",
        "minion_health",
        "hp_cost",
        "supremacy",
        "crystal",
        "orbs",
        "returning"
      ],
      "tags": [
        "Arcane",
        "Conjuration",
        "Nature",
        "Metallic"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Golems transform back into walls when they die",
          "id": "return_from_dust",
          "name": "Return from Dust",
          "tags": [
            "Arcane",
            "Conjuration",
            "Nature",
            "Metallic"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Adjacent walls are transformed into Crystal Golems instead",
          "id": "crystalline_core",
          "name": "Crystalline Core",
          "tags": [
            "Arcane",
            "Conjuration",
            "Nature",
            "Metallic"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "When you cast Stonewake, your [Orb] allies also cast your Stonewake",
          "id": "orb_guardians",
          "name": "Orb Guardians",
          "tags": [
            "Arcane",
            "Conjuration",
            "Nature",
            "Metallic",
            "Orb"
          ],
          "unlocksItems": 1
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 8,
          "damageType": [],
          "description": "After the initial burst, every wall in your line of sight is also transformed into a Golem",
          "id": "supremacy_of_stone",
          "name": "Supremacy of Stone",
          "tags": [
            "Arcane",
            "Conjuration",
            "Nature",
            "Metallic"
          ]
        }
      ]
    },
    "spell_storm_burst": {
      "asset": "UI/spell skill icons/storm_burst.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 20,
        "duration": 3,
        "hp_cost": 0,
        "level": 4,
        "max_charges": 3,
        "melee": false,
        "quick_cast": false,
        "radius": 5,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 3,
          "helmet": 1,
          "trinket": 2,
          "weapon": 15
        },
        "count": 21
      },
      "baseId": "storm_burst",
      "className": "StormBurst",
      "damageType": [
        "Ice",
        "Lightning"
      ],
      "description": "Deal [20:damage] [Ice] or [Lightning] damage to each tile in a [5:radius] tile burst around the caster\nUnits hit with [Ice] damage are [frozen] for [3:duration] turns\nUnits hit with [Lightning] damage are [stunned] for [3:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 1,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_storm_burst.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/storm_burst.png",
      "id": "spell_storm_burst",
      "kind": "spell",
      "name": "Storm Burst",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "radius",
        "duration",
        "hp_cost",
        "threshold",
        "minion_health",
        "minion_damage",
        "minion_range",
        "ritual",
        "max_channel",
        "dual",
        "stormshield"
      ],
      "tags": [
        "Ice",
        "Lightning",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "duration": 4
          },
          "cost": 2,
          "damageType": [],
          "description": "Grant affected allies [Ice] and [Lightning] immunity for [{duration}:duration] turns instead of harming them",
          "id": "stormshield",
          "name": "Stormshield",
          "tags": [
            "Ice",
            "Lightning",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Deal both [Lightning] and [Ice] damage to affected tiles",
          "id": "dual_nova",
          "name": "Dual Nova",
          "tags": [
            "Ice",
            "Lightning",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Summon a Storm Spirit for every 60 damage dealt in a single cast",
          "id": "spirit_nova",
          "name": "Spirit Nova",
          "tags": [
            "Ice",
            "Lightning",
            "Sorcery",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 7,
          "damageType": [],
          "description": "Storm Burst can be channeled for up to [{max_channel}:max_channel] turns\nIf the ritual is completed, Storm Burst's [radius] and [duration] increase by 1 for the remainder of the level",
          "id": "ritual_of_storms",
          "name": "Ritual of Storms",
          "tags": [
            "Ice",
            "Lightning",
            "Sorcery",
            "Ritual"
          ]
        }
      ]
    },
    "spell_storm_drake": {
      "asset": "UI/spell skill icons/storm_drake.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 4,
        "max_charges": 3,
        "melee": false,
        "minion_damage": 10,
        "minion_health": 48,
        "minion_range": 5,
        "quick_cast": false,
        "range": 4,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "helmet": 3,
          "trinket": 5,
          "weapon": 8
        },
        "count": 18
      },
      "baseId": "storm_drake",
      "className": "SummonStormDrakeSpell",
      "damageType": [],
      "description": "Summon a Storm Drake",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 2,
        "outgoingCount": 1,
        "pathCount": 2
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_storm_drake.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/storm_drake.png",
      "id": "spell_storm_drake",
      "kind": "spell",
      "name": "Storm Drake",
      "stats": [
        "range",
        "max_charges",
        "minion_damage",
        "minion_health",
        "minion_range",
        "hp_cost",
        "stormcrest",
        "storm_legion",
        "num_summons",
        "dragon_mage",
        "spirit"
      ],
      "tags": [
        "Lightning",
        "Conjuration",
        "Dragon"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Storm Drakes can cast your Chain Lightning on a 9 turn cooldown",
          "id": "dragon_mage",
          "name": "Dragon Mage",
          "tags": [
            "Lightning",
            "Conjuration",
            "Dragon"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Storm Drakes gain 5 HP when you cast a [Lightning] spell targeting a tile in their line of sight",
          "id": "spirit_drakes",
          "name": "Spirit Drakes",
          "tags": [
            "Lightning",
            "Conjuration",
            "Dragon"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 7,
          "damageType": [],
          "description": "When you cast Storm Drake, up to [{num_summons}:num_summons] [Storm Clouds:lightning] in line of sight of the target are converted into Storm Drakes",
          "id": "storm_summoning",
          "name": "Storm Summoning",
          "tags": [
            "Lightning",
            "Conjuration",
            "Dragon"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 9,
          "damageType": [],
          "description": "When you cast this spell, if there is room, summon Stormcrest instead of a Storm Drake\nCan only activate once each level",
          "id": "stormcrest",
          "name": "Stormcrest",
          "tags": [
            "Lightning",
            "Conjuration",
            "Dragon"
          ]
        }
      ]
    },
    "spell_storm_walk": {
      "asset": "UI/spell skill icons/storm_walk.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 12,
        "melee": false,
        "quick_cast": false,
        "range": 50,
        "requires_los": false
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "helmet": 3,
          "trinket": 2,
          "weapon": 8
        },
        "count": 15
      },
      "baseId": "storm_walk",
      "className": "StormWalk",
      "damageType": [],
      "description": "Teleport to target unoccupied tile\nCan only target tiles with a [Rain Cloud:nature], [Storm Cloud:lightning], or [Blizzard:ice]\nConsumes the target cloud",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_storm_walk.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/storm_walk.png",
      "id": "spell_storm_walk",
      "kind": "spell",
      "name": "Storm Walk",
      "stats": [
        "range",
        "max_charges",
        "hp_cost",
        "surge",
        "boon",
        "weathered",
        "quick_cast"
      ],
      "tags": [
        "Ice",
        "Lightning",
        "Nature",
        "Translocation"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Storm Walk gains quickcast",
          "id": "quickcast",
          "name": "Quickcast",
          "tags": [
            "Ice",
            "Lightning",
            "Nature",
            "Translocation"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Gain a boon depending on the kind of cloud you Storm Walk to\n[Rain Clouds:nature] remove all debuffs\n[Blizzards:ice] grant 3 [SH:shields]\n[Lightning Clouds:lightning] grant 3 turns of [quickstep:translocation]",
          "id": "storm_boon",
          "name": "Storm Boon",
          "tags": [
            "Ice",
            "Lightning",
            "Nature",
            "Translocation"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Leave behind a line of matching clouds between you and your destination",
          "id": "weathered_traveler",
          "name": "Weathered Traveler",
          "tags": [
            "Ice",
            "Lightning",
            "Nature",
            "Translocation"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Cast Storm Burst after arriving at your destination",
          "id": "storm_surge",
          "name": "Storm Surge",
          "tags": [
            "Ice",
            "Lightning",
            "Nature",
            "Translocation"
          ]
        }
      ]
    },
    "spell_summon_blade": {
      "asset": "UI/spell skill icons/summon_blade.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 1,
        "max_charges": 7,
        "melee": false,
        "minion_damage": 9,
        "minion_duration": 9,
        "minion_health": 9,
        "minion_range": 3,
        "quick_cast": false,
        "range": 3,
        "requires_los": true,
        "shields": 2
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "helmet": 3,
          "trinket": 5,
          "weapon": 6
        },
        "count": 16
      },
      "baseId": "summon_blade",
      "className": "SummonBlade",
      "damageType": [],
      "description": "Summon a temporary Dancing Blade",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 2,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_summon_blade.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/summon_blade.png",
      "id": "spell_summon_blade",
      "kind": "spell",
      "name": "Summon Blade",
      "stats": [
        "range",
        "max_charges",
        "minion_duration",
        "minion_damage",
        "minion_health",
        "minion_range",
        "shields",
        "hp_cost",
        "light",
        "ritual",
        "max_channel",
        "bladeworks",
        "num_summons",
        "serrated",
        "duration"
      ],
      "tags": [
        "Arcane",
        "Conjuration",
        "Metallic"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "The blades' leap attack inflicts [{duration}:duration] turns of [bleed]",
          "id": "serrated_blades",
          "name": "Serrated Blades",
          "tags": [
            "Arcane",
            "Conjuration",
            "Metallic",
            "Blood"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Summon Swords of Light instead of Dancing Blades",
          "id": "swords_of_light",
          "name": "Swords of Light",
          "tags": [
            "Arcane",
            "Conjuration",
            "Metallic",
            "Holy"
          ],
          "unlocksItems": 6
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "Summon [{num_summons}:num_summons] blades instead of one",
          "id": "bladeworks",
          "name": "Bladeworks",
          "tags": [
            "Arcane",
            "Conjuration",
            "Metallic"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 9,
          "damageType": [],
          "description": "You may channel this spell for [{max_channel} turns:max_channel]\nIf you complete the ritual, gain the [Blade Rites:metallic] buff for [{max_channel}:max_channel] turns, which summons a blade near you each turn",
          "id": "ritual_of_blades",
          "name": "Ritual of Blades",
          "tags": [
            "Arcane",
            "Conjuration",
            "Metallic",
            "Ritual"
          ]
        }
      ]
    },
    "spell_summon_bone_knights": {
      "asset": "UI/spell skill icons/summon_bone_knights.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 2,
        "max_charges": 2,
        "melee": false,
        "minion_damage": 9,
        "minion_health": 40,
        "num_summons": 2,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 3,
          "boots": 1,
          "helmet": 3,
          "trinket": 3,
          "weapon": 6
        },
        "count": 16
      },
      "baseId": "summon_bone_knights",
      "className": "SummonBoneKnights",
      "damageType": [],
      "description": "Summon [2:num_summons] Bone Knights nearby",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_summon_bone_knights.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/summon_bone_knights.png",
      "id": "spell_summon_bone_knights",
      "kind": "spell",
      "name": "Summon Bone Knights",
      "stats": [
        "range",
        "max_charges",
        "minion_damage",
        "minion_health",
        "num_summons",
        "hp_cost",
        "squad",
        "knightmares",
        "duration",
        "steel",
        "multi",
        "num_targets"
      ],
      "tags": [
        "Conjuration",
        "Dark"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Knights now hit [{num_targets}:num_targets] times",
          "id": "double_hit",
          "name": "Double Hit",
          "tags": [
            "Conjuration",
            "Dark"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Knights receive the [Metallic] tag, gaining [Lightning] immunity along with increased resistance to [Fire], [Ice], and [Physical] damage",
          "id": "bones_of_steel",
          "name": "Bones of Steel",
          "tags": [
            "Conjuration",
            "Dark",
            "Metallic"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Summon half as many Bone Knight Archers to accompany the Bone Knights",
          "id": "bone_squadron",
          "name": "Bone Squadron",
          "tags": [
            "Conjuration",
            "Dark"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 8,
          "damageType": [],
          "description": "Apply your Nightmare Aura buff for [{duration}:duration] turns to each of the knights when they are summoned",
          "id": "knightmares",
          "name": "Knightmares",
          "tags": [
            "Conjuration",
            "Dark"
          ]
        }
      ]
    },
    "spell_summon_wizard": {
      "asset": "UI/spell skill icons/summon_wizard.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 8,
        "max_charges": 1,
        "melee": false,
        "quick_cast": false,
        "range": 5,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "helmet": 2,
          "trinket": 1,
          "weapon": 3
        },
        "count": 7
      },
      "baseId": "summon_wizard",
      "className": "SummonWizard",
      "damageType": [],
      "description": "Summons a random wizard",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_summon_wizard.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/summon_wizard.png",
      "id": "spell_summon_wizard",
      "kind": "spell",
      "name": "Summon Wizard",
      "stats": [
        "range",
        "max_charges",
        "hp_cost",
        "requires_los",
        "dragon_wizard",
        "jealousy",
        "num_targets",
        "wizard_army",
        "num_summons"
      ],
      "tags": [
        "Conjuration",
        "Arcane"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "",
          "id": "global_summoning",
          "name": "Global Summoning",
          "tags": [
            "Conjuration",
            "Arcane"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Always summon the Dragon Wizard",
          "id": "dragon_wizard",
          "name": "Dragon Wizard",
          "tags": [
            "Conjuration",
            "Arcane",
            "Dragon"
          ],
          "unlocksItems": 2
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "When you cast this spell, up to [{num_targets}:num_targets] enemy wizards in line of sight of the summoned wizard become your allies",
          "id": "jealousy",
          "name": "Jealousy",
          "tags": [
            "Conjuration",
            "Arcane"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 9,
          "damageType": [],
          "description": "Summon [{num_summons}:num_summons] wizards instead of one",
          "id": "wizard_gang",
          "name": "Wizard Gang",
          "tags": [
            "Conjuration",
            "Arcane"
          ]
        }
      ]
    },
    "spell_suspend_mortality": {
      "asset": "UI/spell skill icons/suspend_mortality.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 3,
        "lives": 1,
        "max_charges": 5,
        "melee": false,
        "quick_cast": false,
        "range": 5,
        "requires_los": false
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "boots": 1,
          "helmet": 4,
          "trinket": 3,
          "weapon": 8
        },
        "count": 18
      },
      "baseId": "suspend_mortality",
      "className": "BestowImmortality",
      "damageType": [],
      "description": "Target gains the ability to reincarnate on death",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 1,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_suspend_mortality.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/suspend_mortality.png",
      "id": "spell_suspend_mortality",
      "kind": "spell",
      "name": "Suspend Mortality",
      "stats": [
        "range",
        "max_charges",
        "hp_cost",
        "mass",
        "lives",
        "essence",
        "deferred"
      ],
      "tags": [
        "Dark",
        "Holy",
        "Enchantment"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Cleanses all debuffs from the target and grants them a stacking regeneration effect that heals 1 HP each turn\nThis buff persists across reincarnations",
          "id": "mortality_deferred",
          "name": "Mortality Deferred",
          "tags": [
            "Dark",
            "Holy",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Affected unit gains the [Holy] and [Undead] tags along with 100% [Holy] and [Dark] resist",
          "id": "twilight_essence",
          "name": "Twilight Essence",
          "tags": [
            "Dark",
            "Holy",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Grants 3 reincarnations instead of just 1",
          "id": "endlessness",
          "name": "Endlessness",
          "tags": [
            "Dark",
            "Holy",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 7,
          "damageType": [],
          "description": "Allies with the same name as the target are also affected",
          "id": "mass_immortality",
          "name": "Mass Immortality",
          "tags": [
            "Dark",
            "Holy",
            "Enchantment"
          ]
        }
      ]
    },
    "spell_teleport": {
      "asset": "UI/spell skill icons/teleport.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 5,
        "max_charges": 2,
        "melee": false,
        "quick_cast": false,
        "range": 16,
        "requires_los": false
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "helmet": 3,
          "trinket": 1,
          "weapon": 6
        },
        "count": 12
      },
      "baseId": "teleport",
      "className": "Teleport",
      "damageType": [],
      "description": "Teleport to target tile",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_teleport.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/teleport.png",
      "id": "spell_teleport",
      "kind": "spell",
      "name": "Teleport",
      "stats": [
        "range",
        "max_charges",
        "hp_cost",
        "void_teleport",
        "assassin",
        "damage",
        "duration",
        "quick_cast",
        "group_teleport",
        "num_targets"
      ],
      "tags": [
        "Sorcery",
        "Arcane",
        "Translocation"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Also teleports up to [{num_targets}:num_targets] allies to locations near the destination",
          "id": "group_teleport",
          "name": "Group Teleport",
          "tags": [
            "Sorcery",
            "Arcane",
            "Translocation"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Teleport gains quickcast",
          "id": "quickcast",
          "name": "Quickcast",
          "tags": [
            "Sorcery",
            "Arcane",
            "Translocation"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "If you Teleport adjacent to an enemy who could not see your original location, attempt to assassinate them, inflicting [{damage}:damage] [Arcane] damage and [{duration}:duration] turns of [silence]",
          "id": "assassinate",
          "name": "Assassinate",
          "tags": [
            "Sorcery",
            "Arcane",
            "Translocation"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Teleport deals [Arcane] damage to enemies in line of sight of the destination equal to its [max charges:max_charges]",
          "id": "void_teleport",
          "name": "Void Teleport",
          "tags": [
            "Sorcery",
            "Arcane",
            "Translocation"
          ]
        }
      ]
    },
    "spell_temporal_transfusion": {
      "asset": "UI/spell skill icons/temporal_transfusion.png",
      "attributes": {
        "can_target_empty": false,
        "cool_down": 0,
        "hp_cost": 18,
        "level": 5,
        "max_channel": 6,
        "max_charges": 5,
        "melee": false,
        "quick_cast": false,
        "range": 4,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "boots": 1,
          "helmet": 3,
          "trinket": 2,
          "weapon": 6
        },
        "count": 13
      },
      "baseId": "temporal_transfusion",
      "className": "TemporalTransfusion",
      "damageType": [],
      "description": "Each turn you channel this spell, the target unit takes 3 extra turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_temporal_transfusion.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/temporal_transfusion.png",
      "id": "spell_temporal_transfusion",
      "kind": "spell",
      "name": "Temporal Transfusion",
      "stats": [
        "range",
        "max_charges",
        "max_channel",
        "hp_cost",
        "ritual",
        "scaling",
        "num_targets",
        "boost"
      ],
      "tags": [
        "Arcane",
        "Blood",
        "Enchantment"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "For each turn spent channeling, reduce the target's active spell cooldowns by 1",
          "id": "chrono_boost",
          "name": "Chrono Boost",
          "tags": [
            "Arcane",
            "Blood",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "The target takes [{num_targets}:num_targets] extra turns instead of 3",
          "id": "temporal_mastery",
          "name": "Temporal Mastery",
          "tags": [
            "Arcane",
            "Blood",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 6,
          "damageType": null,
          "description": "If the target of your Temporal Transfusion kills a unit, they immediately take an extra turn",
          "id": "killing_tempo",
          "name": "Killing Tempo",
          "tags": [
            "Arcane",
            "Blood",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 8,
          "damageType": [],
          "description": "If you complete the ritual, the target gains [Haste:translocation]",
          "id": "ritual_of_haste",
          "name": "Ritual of Haste",
          "tags": [
            "Arcane",
            "Blood",
            "Enchantment",
            "Ritual"
          ]
        }
      ]
    },
    "spell_the_restless_dead": {
      "asset": "UI/spell skill icons/the_restless_dead.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "duration": 20,
        "hp_cost": 0,
        "level": 4,
        "max_charges": 2,
        "melee": false,
        "minion_damage": 5,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "boots": 1,
          "helmet": 4,
          "trinket": 4,
          "weapon": 6
        },
        "count": 17
      },
      "baseId": "the_restless_dead",
      "className": "RestlessDead",
      "damageType": [],
      "description": "When a [Living] enemy dies, raise it as a Skeleton\nRaised Skeletons inherit the HP of the slain unit\nSkeletons of flying units can fly\nLasts [20:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_the_restless_dead.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/the_restless_dead.png",
      "id": "spell_the_restless_dead",
      "kind": "spell",
      "name": "The Restless Dead",
      "stats": [
        "range",
        "max_charges",
        "duration",
        "minion_damage",
        "hp_cost",
        "restless",
        "friendly",
        "salvage"
      ],
      "tags": [
        "Dark",
        "Enchantment",
        "Conjuration"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "The Restless Dead also raises [Constructs:construct] as Junk Golems",
          "id": "junk_golems",
          "name": "Junk Golems",
          "tags": [
            "Dark",
            "Enchantment",
            "Conjuration",
            "Metallic"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Allies can also be raised by Restless Dead but do so with 50% max HP",
          "id": "minion_recycling",
          "name": "Minion Recycling",
          "tags": [
            "Dark",
            "Enchantment",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 5,
          "damageType": [
            "Dark",
            "Physical"
          ],
          "description": "",
          "id": "unstable_undead",
          "name": "Unstable Undead",
          "tags": [
            "Dark",
            "Enchantment",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "Units raised by The Restless Dead take an extra turn immediately after being raised",
          "id": "restless_turning",
          "name": "Restless Turning",
          "tags": [
            "Dark",
            "Enchantment",
            "Conjuration"
          ]
        }
      ]
    },
    "spell_thunder_strike": {
      "asset": "UI/spell skill icons/thunder_strike.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 24,
        "duration": 3,
        "hp_cost": 0,
        "level": 2,
        "max_charges": 12,
        "melee": false,
        "quick_cast": false,
        "radius": 2,
        "range": 6,
        "requires_los": true,
        "storm_power": 0
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "helmet": 2,
          "trinket": 2,
          "weapon": 13
        },
        "count": 18
      },
      "baseId": "thunder_strike",
      "className": "ThunderStrike",
      "damageType": [
        "Lightning"
      ],
      "description": "Deal [24:damage] [Lightning] damage to the target\nEnemies within [2:radius] tiles of the target are [stunned] for [3:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 6,
        "outgoingCount": 0,
        "pathCount": 1
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_thunder_strike.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/thunder_strike.png",
      "id": "spell_thunder_strike",
      "kind": "spell",
      "name": "Thunder Strike",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "radius",
        "duration",
        "hp_cost",
        "enervate",
        "heaven_strike",
        "storm_power",
        "requires_los"
      ],
      "tags": [
        "Lightning",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Thunder Strike can be cast outside your line of sight",
          "id": "blindcasting",
          "name": "Blindcasting",
          "tags": [
            "Lightning",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Target receives the [Enervated:lightning] debuff, which [stuns] them for 1 turn when they move or cast a spell",
          "id": "enervate",
          "name": "Enervate",
          "tags": [
            "Lightning",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Refund a charge if the target tile has a [Storm Cloud:lightning]",
          "id": "storm_power",
          "name": "Storm Power",
          "tags": [
            "Lightning",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [
            "Holy"
          ],
          "description": "Thunder Strike also deals [Holy] damage",
          "id": "heaven_strike",
          "name": "Heaven Strike",
          "tags": [
            "Lightning",
            "Sorcery",
            "Holy"
          ],
          "unlocksItems": 7
        }
      ]
    },
    "spell_torrent": {
      "asset": "UI/spell skill icons/torrent.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 22,
        "duration": 6,
        "hp_cost": 0,
        "level": 3,
        "max_channel": 6,
        "max_charges": 8,
        "melee": false,
        "quick_cast": false,
        "range": 3,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "boots": 1,
          "helmet": 2,
          "trinket": 2,
          "weapon": 12
        },
        "count": 18
      },
      "baseId": "torrent",
      "className": "Torrent",
      "damageType": [
        "Physical"
      ],
      "description": "Channel a 3 tile wide beam of water that lengthens by 1 each turn\nAffected units take [22:damage] [Physical] damage, are Soaked for [6:duration] turns, and are pushed 1 tile away\nCan target and destroy walls\nCan be channeled for up to [6:max_channel] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_torrent.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/torrent.png",
      "id": "spell_torrent",
      "kind": "spell",
      "name": "Torrent",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "duration",
        "max_channel",
        "hp_cost",
        "ritual",
        "minion_health",
        "minion_damage",
        "boil",
        "bend",
        "rubble"
      ],
      "tags": [
        "Nature",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "damage": 22,
            "duration": 3
          },
          "cost": 2,
          "damageType": [],
          "description": "When Torrent destroys a wall, adjacent units take [{damage}:damage] [Physical] damage and are [stunned] for [{duration}:duration] turns\nWill not affect the caster",
          "id": "dangerous_debris",
          "name": "Dangerous Debris",
          "tags": [
            "Nature",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "If you cast Torrent while adjacent to a water or swamp chasm, it will lengthen twice as much each turn\nAlso works with lava chasms if you have the Boiling Torrent upgrade",
          "id": "water_bend",
          "name": "Water Bend",
          "tags": [
            "Nature",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [
            "Fire"
          ],
          "description": "Torrent's waters also deal [Fire] damage",
          "id": "boiling_torrent",
          "name": "Boiling Torrent",
          "tags": [
            "Nature",
            "Sorcery",
            "Fire"
          ],
          "unlocksItems": 6
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 7,
          "damageType": [],
          "description": "If you complete the ritual, summon a Scuttler in each unoccupied affected floor tile",
          "id": "ritual_of_carcinization",
          "name": "Ritual of Carcinization",
          "tags": [
            "Nature",
            "Sorcery",
            "Conjuration",
            "Ritual"
          ],
          "unlocksItems": 1
        }
      ]
    },
    "spell_touch_of_death": {
      "asset": "UI/spell skill icons/touch_of_death.png",
      "attributes": {
        "can_target_empty": false,
        "cool_down": 0,
        "damage": 200,
        "hp_cost": 0,
        "level": 2,
        "max_charges": 9,
        "melee": true,
        "quick_cast": false,
        "range": 1.5,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "boots": 1,
          "helmet": 3,
          "trinket": 3,
          "weapon": 8
        },
        "count": 17
      },
      "baseId": "touch_of_death",
      "className": "TouchOfDeath",
      "damageType": [
        "Dark"
      ],
      "description": "Deal [200:damage] [Dark] damage to the target",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_touch_of_death.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/touch_of_death.png",
      "id": "spell_touch_of_death",
      "kind": "spell",
      "name": "Touch of Death",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "hp_cost",
        "final_touch",
        "hand_of_death",
        "num_targets",
        "vampire",
        "minion_health",
        "minion_damage",
        "fire_damage"
      ],
      "tags": [
        "Dark",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Touch of Death hits up to [{num_targets}:num_targets] more adjacent targets",
          "id": "hand_of_death",
          "name": "Hand of Death",
          "tags": [
            "Dark",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "When a [Living] target is damaged by Touch of Death, you heal for the damage dealt\nIf it dies to Touch of Death it is raised as Vampire",
          "id": "touch_of_the_vampire",
          "name": "Touch of the Vampire",
          "tags": [
            "Dark",
            "Sorcery",
            "Blood",
            "Conjuration"
          ],
          "unlocksItems": 4
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [
            "Fire"
          ],
          "description": "Touch of Death also deals [Fire] damage",
          "id": "flametouch",
          "name": "Flametouch",
          "tags": [
            "Dark",
            "Sorcery",
            "Fire"
          ],
          "unlocksItems": 4
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 8,
          "damageType": [],
          "description": "Touch of Death deals additional damage equal to the target's max HP",
          "id": "final_touch",
          "name": "Final Touch",
          "tags": [
            "Dark",
            "Sorcery"
          ]
        }
      ]
    },
    "spell_toxin_burst": {
      "asset": "UI/spell skill icons/toxin_burst.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 1,
        "duration": 16,
        "hp_cost": 0,
        "level": 2,
        "max_charges": 8,
        "melee": false,
        "quick_cast": false,
        "radius": 3,
        "range": 6,
        "requires_los": false
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 3,
          "boots": 1,
          "helmet": 4,
          "trinket": 4,
          "weapon": 16
        },
        "count": 28
      },
      "baseId": "toxin_burst",
      "className": "ToxinBurst",
      "damageType": [
        "Poison"
      ],
      "description": "Inflict [1:damage] [Poison] damage and [16:duration] turns of [poison] on units in a [3:radius] tile burst",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_toxin_burst.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/toxin_burst.png",
      "id": "spell_toxin_burst",
      "kind": "spell",
      "name": "Toxin Burst",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "radius",
        "duration",
        "hp_cost",
        "chain",
        "wither",
        "accelerant",
        "chemical_remedy"
      ],
      "tags": [
        "Sorcery",
        "Nature",
        "Dark"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "Heals allies and removes their [poison] instead of harming them",
          "id": "herbal_remedy",
          "name": "Herbal Remedy",
          "tags": [
            "Sorcery",
            "Nature",
            "Dark"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Toxin Burst inflicts [-25% Fire:fire] resistance for its duration",
          "id": "naphtha_accelerant",
          "name": "Naphtha Accelerant",
          "tags": [
            "Sorcery",
            "Nature",
            "Dark",
            "Fire"
          ],
          "unlocksItems": 5
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [
            "Dark"
          ],
          "description": "Toxin Burst also deals [Dark] damage and inflicts [necrosis]",
          "id": "withertoxin",
          "name": "Withertoxin",
          "tags": [
            "Sorcery",
            "Nature",
            "Dark"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "radius": 2
          },
          "cost": 8,
          "damageType": [],
          "description": "Slain enemies create additional explosions with a [{radius}:radius] tile radius",
          "id": "burst_chain",
          "name": "Burst Chain",
          "tags": [
            "Sorcery",
            "Nature",
            "Dark"
          ]
        }
      ]
    },
    "spell_twilight_gaze": {
      "asset": "UI/spell skill icons/twilight_gaze.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "duration": 10,
        "hp_cost": 0,
        "level": 6,
        "max_charges": 4,
        "melee": false,
        "quick_cast": false,
        "range": 0,
        "requires_los": true,
        "resistance_debuff": 50
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "boots": 1,
          "helmet": 3,
          "trinket": 6,
          "weapon": 6
        },
        "count": 18
      },
      "baseId": "twilight_gaze",
      "className": "TwilightGazeSpell",
      "damageType": [],
      "description": "Enemies in your line of sight lose 50 [Dark] and [Holy] resist\nLasts [10:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_twilight_gaze.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/twilight_gaze.png",
      "id": "spell_twilight_gaze",
      "kind": "spell",
      "name": "Twilight Gaze",
      "stats": [
        "range",
        "max_charges",
        "duration",
        "hp_cost",
        "eclipse",
        "arcane",
        "piercing_gaze",
        "resistance_debuff"
      ],
      "tags": [
        "Holy",
        "Dark",
        "Enchantment",
        "Eye"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Twilight Gaze also inflicts a 50% range penalty on enemy spells",
          "id": "shrouded_twilight",
          "name": "Shrouded Twilight",
          "tags": [
            "Holy",
            "Dark",
            "Enchantment",
            "Eye"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Twilight Gaze also reduces [Arcane] resist",
          "id": "arcane_gaze",
          "name": "Arcane Gaze",
          "tags": [
            "Holy",
            "Dark",
            "Enchantment",
            "Eye",
            "Arcane"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Twilight Gaze affects all enemies, not just those in your light of sight",
          "id": "piercing_gaze",
          "name": "Piercing Gaze",
          "tags": [
            "Holy",
            "Dark",
            "Enchantment",
            "Eye"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "",
          "id": "resistance_debuff",
          "name": "Resistance Debuff",
          "tags": [
            "Holy",
            "Dark",
            "Enchantment",
            "Eye"
          ]
        }
      ]
    },
    "spell_underworld_passage": {
      "asset": "UI/spell skill icons/underworld_passage.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 2,
        "max_charges": 6,
        "melee": false,
        "quick_cast": false,
        "range": 99,
        "requires_los": false
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 3,
          "boots": 1,
          "helmet": 4,
          "trinket": 3,
          "weapon": 8
        },
        "count": 19
      },
      "baseId": "underworld_passage",
      "className": "UnderworldPortal",
      "damageType": [],
      "description": "Teleport to any tile adjacent to a chasm\nCan only be cast while adjacent to a chasm",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_underworld_passage.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/underworld_passage.png",
      "id": "spell_underworld_passage",
      "kind": "spell",
      "name": "Underworld Passage",
      "stats": [
        "range",
        "max_charges",
        "hp_cost",
        "drag",
        "make_entrance",
        "summon_rockworms",
        "num_summons",
        "minion_health",
        "minion_damage",
        "quick_cast"
      ],
      "tags": [
        "Dark",
        "Sorcery",
        "Translocation"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Underworld Passage gains quickcast",
          "id": "quickcast",
          "name": "Quickcast",
          "tags": [
            "Dark",
            "Sorcery",
            "Translocation"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "You can cast this spell from any location\nCreate a chasm in the location you cast from",
          "id": "make_entrance",
          "name": "Make Entrance",
          "tags": [
            "Dark",
            "Sorcery",
            "Translocation"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Summon [{num_summons}:num_summons] Rock Worms at your original and target locations",
          "id": "tremorsensitivity",
          "name": "Tremorsensitivity",
          "tags": [
            "Dark",
            "Sorcery",
            "Translocation",
            "Conjuration"
          ],
          "unlocksItems": 1
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Adjacent [Demon] enemies are killed\n\nDoes not affect giant units",
          "id": "return_to_hell",
          "name": "Return to Hell",
          "tags": [
            "Dark",
            "Sorcery",
            "Translocation"
          ]
        }
      ]
    },
    "spell_vampiric_gaze": {
      "asset": "UI/spell skill icons/vampiric_gaze.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 6,
        "hp_cost": 10,
        "level": 4,
        "max_charges": 8,
        "melee": false,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "boots": 1,
          "helmet": 3,
          "trinket": 5,
          "weapon": 11
        },
        "count": 22
      },
      "baseId": "vampiric_gaze",
      "className": "VampiricGazeSpell",
      "damageType": [],
      "description": "A bolt of darkness shoots forth from each of your allies at a random enemy in their line of sight\nEach bolt deals [6:damage] [Dark] damage\nAllies are healed for the damage dealt by their corresponding bolt",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_vampiric_gaze.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/vampiric_gaze.png",
      "id": "spell_vampiric_gaze",
      "kind": "spell",
      "name": "Vampiric Gaze",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "hp_cost",
        "coagulation",
        "minion_health",
        "minion_damage",
        "minion_range",
        "refract",
        "vampire_tax",
        "toxic_gaze"
      ],
      "tags": [
        "Dark",
        "Blood",
        "Sorcery",
        "Eye"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Vampiric Gaze also deals [Poison] damage",
          "id": "toxic_gaze",
          "name": "Toxic Gaze",
          "tags": [
            "Dark",
            "Blood",
            "Sorcery",
            "Eye",
            "Nature"
          ],
          "unlocksItems": 4
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Summon a Blood Slime when Vampiric Gaze kills a unit",
          "id": "coagulation",
          "name": "Coagulation",
          "tags": [
            "Dark",
            "Blood",
            "Sorcery",
            "Eye",
            "Slime"
          ],
          "unlocksItems": 4
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Vampiric Gaze heals you for any damage it deals",
          "id": "vampiric_tax",
          "name": "Vampiric Tax",
          "tags": [
            "Dark",
            "Blood",
            "Sorcery",
            "Eye"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "Each bolt bounces once to an enemy in line of sight of its target",
          "id": "refracting_gaze",
          "name": "Refracting Gaze",
          "tags": [
            "Dark",
            "Blood",
            "Sorcery",
            "Eye"
          ]
        }
      ]
    },
    "spell_vampiricism": {
      "asset": "UI/spell skill icons/vampiricism.png",
      "attributes": {
        "can_target_empty": false,
        "cool_down": 0,
        "hp_cost": 15,
        "level": 3,
        "max_charges": 0,
        "melee": true,
        "quick_cast": false,
        "range": 1.5,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "helmet": 2,
          "weapon": 4
        },
        "count": 6
      },
      "baseId": "vampiricism",
      "className": "Vampiricism",
      "damageType": [],
      "description": "Grant an ally [vampiricism:blood], causing them to heal for any damage they deal, and allowing them to fly",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 1,
        "outgoingCount": 1,
        "pathCount": 2
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_vampiricism.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/vampiricism.png",
      "id": "spell_vampiricism",
      "kind": "spell",
      "name": "Vampiricism",
      "stats": [
        "range",
        "max_charges",
        "hp_cost",
        "quicken",
        "enthrall",
        "wicked_fangs",
        "minion_damage",
        "vampiric_regent"
      ],
      "tags": [
        "Blood",
        "Enchantment"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "The target's spells gain +[{minion_damage}:minion_damage] damage",
          "id": "wicked_fangs",
          "name": "Wicked Fangs",
          "tags": [
            "Blood",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "The target gains [quickstep:translocation], and their spells gain quick cast",
          "id": "quickening",
          "name": "Quickening",
          "tags": [
            "Blood",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "You may cast this on [Living] enemies if you have more health than them\nIf you do, they become your ally",
          "id": "enthrall",
          "name": "Enthrall",
          "tags": [
            "Blood",
            "Enchantment"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Grant the target your Dominate spell on a 20 turn cool down",
          "id": "vampiric_regent",
          "name": "Vampiric Regent",
          "tags": [
            "Blood",
            "Enchantment"
          ]
        }
      ]
    },
    "spell_void_beam": {
      "asset": "UI/spell skill icons/void_beam.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 25,
        "hp_cost": 0,
        "level": 4,
        "max_charges": 8,
        "melee": false,
        "quick_cast": false,
        "range": 8,
        "requires_los": false
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 1,
          "helmet": 2,
          "weapon": 8
        },
        "count": 11
      },
      "baseId": "void_beam",
      "className": "VoidBeamSpell",
      "damageType": [
        "Arcane"
      ],
      "description": "Deal [25:damage] [Arcane] damage in a beam\nMelts walls",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 4,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_void_beam.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/void_beam.png",
      "id": "spell_void_beam",
      "kind": "spell",
      "name": "Void Beam",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "hp_cost",
        "voidpulse",
        "curse",
        "starbeam",
        "detonate",
        "radius"
      ],
      "tags": [
        "Arcane",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "If Void Beam kills the target unit, it detonates, dealing its damage to tiles in a [{radius}:radius] tile burst around the target",
          "id": "detonation_beam",
          "name": "Detonation Beam",
          "tags": [
            "Arcane",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Void Beam strips 50 [Arcane] resistance from its target before dealing damage",
          "id": "void_curse",
          "name": "Void Curse",
          "tags": [
            "Arcane",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [
            "Fire"
          ],
          "description": "Void beam also deals [Fire] damage",
          "id": "star_beam",
          "name": "Star Beam",
          "tags": [
            "Arcane",
            "Sorcery",
            "Fire"
          ],
          "unlocksItems": 7
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Sends out a wide pulse which also affects tiles adjacent to the center beam",
          "id": "void_pulse",
          "name": "Void Pulse",
          "tags": [
            "Arcane",
            "Sorcery"
          ]
        }
      ]
    },
    "spell_void_drake": {
      "asset": "UI/spell skill icons/void_drake.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 4,
        "max_charges": 3,
        "melee": false,
        "minion_damage": 9,
        "minion_health": 48,
        "minion_range": 5,
        "quick_cast": false,
        "range": 4,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 3,
          "helmet": 3,
          "trinket": 4,
          "weapon": 6
        },
        "count": 16
      },
      "baseId": "void_drake",
      "className": "SummonVoidDrakeSpell",
      "damageType": [],
      "description": "Summon a Void Drake",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 1
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_void_drake.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/void_drake.png",
      "id": "spell_void_drake",
      "kind": "spell",
      "name": "Void Drake",
      "stats": [
        "range",
        "max_charges",
        "minion_damage",
        "minion_health",
        "minion_range",
        "hp_cost",
        "mutations",
        "essence_drake",
        "dragon_mage",
        "shields"
      ],
      "tags": [
        "Arcane",
        "Conjuration",
        "Dragon"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "When a Void Drake kills an enemy, a random temporary ally becomes permanent",
          "id": "essence_drake",
          "name": "Essence Drake",
          "tags": [
            "Arcane",
            "Conjuration",
            "Dragon"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "Void Drakes can cast your Magic Missile on a 3 turn cooldown",
          "id": "dragon_mage",
          "name": "Dragon Mage",
          "tags": [
            "Arcane",
            "Conjuration",
            "Dragon"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "",
          "id": "shields",
          "name": "Shields",
          "tags": [
            "Arcane",
            "Conjuration",
            "Dragon"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Casting this spell grants it a permanent 10% bonus to [minion_health], [minion_damage], or [minion_range]",
          "id": "void_mutations",
          "name": "Void Mutations",
          "tags": [
            "Arcane",
            "Conjuration",
            "Dragon"
          ]
        }
      ]
    },
    "spell_volcanic_eruption": {
      "asset": "UI/spell skill icons/volcanic_eruption.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 52,
        "hp_cost": 0,
        "level": 4,
        "max_charges": 5,
        "melee": false,
        "quick_cast": false,
        "radius": 3,
        "range": 10,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 3,
          "helmet": 2,
          "trinket": 1,
          "weapon": 15
        },
        "count": 21
      },
      "baseId": "volcanic_eruption",
      "className": "Volcano",
      "damageType": [
        "Fire"
      ],
      "description": "Create a [3:radius] tile burst of lava in a chasm\nThe burst flows up to [3:radius] tiles out of the chasm\nThe lava deals [52:damage] [Fire] damage",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 1,
        "pathCount": 5
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_volcanic_eruption.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/volcanic_eruption.png",
      "id": "spell_volcanic_eruption",
      "kind": "spell",
      "name": "Volcanic Eruption",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "radius",
        "hp_cost",
        "shower",
        "wall_cast",
        "requires_los",
        "resist",
        "duration"
      ],
      "tags": [
        "Fire",
        "Nature",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Volcanic Eruption can be cast outside your line of sight",
          "id": "blindcasting",
          "name": "Blindcasting",
          "tags": [
            "Fire",
            "Nature",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Gain 100% [Fire] and [Physical] resist for [{duration}:duration] turns when you cast Volcanic Eruption",
          "id": "lava_coat",
          "name": "Lava Coat",
          "tags": [
            "Fire",
            "Nature",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "In addition to chasms, Volcanic Eruption may target walls\nDoing so turns connected walls inside the initial burst into chasms",
          "id": "wallcano",
          "name": "Wallcano",
          "tags": [
            "Fire",
            "Nature",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 7,
          "damageType": [],
          "description": "Casting Volcanic Eruption also casts a single turn of your Rain of Fire spell",
          "id": "meteor_shower",
          "name": "Meteor Shower",
          "tags": [
            "Fire",
            "Nature",
            "Sorcery"
          ]
        }
      ]
    },
    "spell_wall_of_flame": {
      "asset": "UI/spell skill icons/wall_of_flame.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 30,
        "duration": 8,
        "hp_cost": 0,
        "level": 7,
        "max_charges": 4,
        "melee": false,
        "quick_cast": false,
        "radius": 3,
        "range": 6,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "helmet": 2,
          "trinket": 2,
          "weapon": 13
        },
        "count": 19
      },
      "baseId": "wall_of_flame",
      "className": "WallOfFlame",
      "damageType": [],
      "description": "Create a [7 tile:radius] line of flames perpendicular to the caster\nThe flames deal [30:damage] [Fire] damage in the affected tiles each turn\nOnly a single Wall of Flame can be maintained at a time\nCasting the spell again removes the previous wall\nLasts [8:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 2,
        "pathCount": 1
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_wall_of_flame.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/wall_of_flame.png",
      "id": "spell_wall_of_flame",
      "kind": "spell",
      "name": "Wall of Flame",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "radius",
        "duration",
        "hp_cost",
        "pillar",
        "box",
        "thick",
        "feed"
      ],
      "tags": [
        "Fire",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Wall of Flames' remaining duration increases by 1 when it kills a unit",
          "id": "feed_the_flames",
          "name": "Feed the Flames",
          "tags": [
            "Fire",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Wall of Flame is now 3 tiles thick instead of a line",
          "id": "thickened_wall",
          "name": "Thickened Wall",
          "tags": [
            "Fire",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "Affects tiles in lines rotated around the caster, forming a square",
          "id": "fortress_of_flame",
          "name": "Fortress of Flame",
          "tags": [
            "Fire",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 9,
          "damageType": [],
          "description": "When you cast Wall of Flame, cast Pillar of Fire on each affected tile",
          "id": "flames_of_heaven",
          "name": "Flames of Heaven",
          "tags": [
            "Fire",
            "Sorcery",
            "Holy"
          ],
          "unlocksItems": 7
        }
      ]
    },
    "spell_wall_of_ice": {
      "asset": "UI/spell skill icons/wall_of_ice.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 4,
        "max_charges": 2,
        "melee": false,
        "minion_damage": 5,
        "minion_duration": 15,
        "minion_health": 36,
        "minion_range": 3,
        "quick_cast": false,
        "radius": 2,
        "range": 6,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "helmet": 3,
          "trinket": 2,
          "weapon": 6
        },
        "count": 13
      },
      "baseId": "wall_of_ice",
      "className": "IceWall",
      "damageType": [],
      "description": "Summons a group of temporary Ice Elementals in a [5:radius] tile line perpendicular to the caster",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_wall_of_ice.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/wall_of_ice.png",
      "id": "spell_wall_of_ice",
      "kind": "spell",
      "name": "Wall of Ice",
      "stats": [
        "range",
        "max_charges",
        "radius",
        "minion_duration",
        "minion_damage",
        "minion_health",
        "minion_range",
        "hp_cost",
        "ice_box",
        "excavate",
        "requires_los",
        "hungry_wall"
      ],
      "tags": [
        "Conjuration",
        "Ice"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "The Ice Elementals' attack is replaced with Ice Lash\nIce Lash drags the target 1 tile toward the elemental and grants them +1 remaining duration",
          "id": "hungry_wall",
          "name": "Hungry Wall",
          "tags": [
            "Conjuration",
            "Ice"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Walls and chasms in the impacted area are turned to floors before having Ice Elementals summoned on them",
          "id": "glacial_excavator",
          "name": "Glacial Excavator",
          "tags": [
            "Conjuration",
            "Ice"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "Affects tiles in lines rotated around the caster, forming a square",
          "id": "ice_box",
          "name": "Ice Box",
          "tags": [
            "Conjuration",
            "Ice"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 7,
          "damageType": [],
          "description": "",
          "id": "endless_wall",
          "name": "Endless Wall",
          "tags": [
            "Conjuration",
            "Ice"
          ]
        }
      ]
    },
    "spell_watcher_form": {
      "asset": "UI/spell skill icons/watcher_form.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "duration": 5,
        "hp_cost": 0,
        "level": 4,
        "max_charges": 3,
        "melee": false,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "helmet": 2,
          "trinket": 3,
          "weapon": 5
        },
        "count": 10
      },
      "baseId": "watcher_form",
      "className": "WatcherFormSpell",
      "damageType": [],
      "description": "Each turn, cast Lightning Bolt at the farthest enemy in line of sight\nYou cannot move or manually cast spells while in Watcher Form\nGain [100 Physical:physical], [100 Lightning:lightning], and [100 Poison:poison] resistance\nGain [75 Fire:fire] resistance\nLasts [5:duration] turns",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_watcher_form.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/watcher_form.png",
      "id": "spell_watcher_form",
      "kind": "spell",
      "name": "Watcher Form",
      "stats": [
        "range",
        "max_charges",
        "duration",
        "hp_cost",
        "chain_lightning_watcher",
        "void_watcher",
        "pyrostatic_watcher",
        "holy_watcher"
      ],
      "tags": [
        "Enchantment",
        "Lightning",
        "Eye"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Watcher Form also casts Chain Lightning each turn",
          "id": "chain_watcher_form",
          "name": "Chain Watcher Form",
          "tags": [
            "Enchantment",
            "Lightning",
            "Eye"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Watcher Form also casts Silver Spear each turn\nGrants [100 Holy:holy] resist",
          "id": "holy_watcher_form",
          "name": "Holy Watcher Form",
          "tags": [
            "Enchantment",
            "Lightning",
            "Eye",
            "Holy",
            "Metallic"
          ],
          "unlocksItems": 7
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Watcher Form also casts Pyrostatic Pulse each turn\nGrants [100 Fire:fire] resist instead of 75",
          "id": "pyrostatic_watcher_form",
          "name": "Pyrostatic Watcher Form",
          "tags": [
            "Enchantment",
            "Lightning",
            "Eye",
            "Fire"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Watcher Form also casts Void Beam each turn\nGrants [100 Arcane:arcane] resist\nCan fire at targets outside of line of sight",
          "id": "void_watcher_form",
          "name": "Void Watcher Form",
          "tags": [
            "Enchantment",
            "Lightning",
            "Eye",
            "Arcane"
          ],
          "unlocksItems": 3
        }
      ]
    },
    "spell_wave_of_dread": {
      "asset": "UI/spell skill icons/wave_of_dread.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 22,
        "duration": 5,
        "hp_cost": 0,
        "level": 3,
        "max_charges": 5,
        "melee": false,
        "quick_cast": false,
        "range": 5,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "boots": 1,
          "helmet": 4,
          "trinket": 4,
          "weapon": 11
        },
        "count": 22
      },
      "baseId": "wave_of_dread",
      "className": "WaveOfDread",
      "damageType": [
        "Dark"
      ],
      "description": "Inflict [22:damage] [Dark] damage and [5:duration] turns of [fear] to units in a cone",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_wave_of_dread.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/wave_of_dread.png",
      "id": "spell_wave_of_dread",
      "kind": "spell",
      "name": "Wave of Dread",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "duration",
        "hp_cost",
        "fearfaces",
        "minion_duration",
        "minion_health",
        "minion_damage",
        "ritual",
        "max_channel",
        "domination",
        "poison"
      ],
      "tags": [
        "Sorcery",
        "Dark"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Wave of Dread can be channeled for up to [{max_channel}:max_channel] turns\nIf the ritual is completed, enemies with [fear] are afflicted with permanent [necrosis]",
          "id": "ritual_of_gnawing_dread",
          "name": "Ritual of Gnawing Dread",
          "tags": [
            "Sorcery",
            "Dark",
            "Ritual"
          ],
          "unlocksItems": 1
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {
            "duration": 5
          },
          "cost": 4,
          "damageType": [
            "Poison"
          ],
          "description": "Wave of Dread also deals [Poison] damage and inflicts [{duration}:duration] turns of [poison]",
          "id": "wilting_wave",
          "name": "Wilting Wave",
          "tags": [
            "Sorcery",
            "Dark",
            "Nature"
          ],
          "unlocksItems": 5
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "If Wave of Dread deals more than half of the target's max HP, they join your team",
          "id": "wave_of_tyranny",
          "name": "Wave of Tyranny",
          "tags": [
            "Sorcery",
            "Dark"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "On killing a unit, summon a temporary Fearface",
          "id": "fear_spirits",
          "name": "Fear Spirits",
          "tags": [
            "Sorcery",
            "Dark",
            "Conjuration"
          ],
          "unlocksItems": 1
        }
      ]
    },
    "spell_wheel_of_death": {
      "asset": "UI/spell skill icons/wheel_of_death.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "damage": 200,
        "hp_cost": 0,
        "level": 4,
        "max_charges": 9,
        "melee": false,
        "quick_cast": false,
        "range": 0,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "boots": 1,
          "helmet": 3,
          "trinket": 3,
          "weapon": 8
        },
        "count": 17
      },
      "baseId": "wheel_of_death",
      "className": "WheelOfDeath",
      "damageType": [],
      "description": "Deal [200:damage] [Dark] damage to a random enemy",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 5,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_wheel_of_death.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/wheel_of_death.png",
      "id": "spell_wheel_of_death",
      "kind": "spell",
      "name": "Wheel of Death",
      "stats": [
        "range",
        "max_charges",
        "damage",
        "hp_cost",
        "ritual",
        "max_channel",
        "shared",
        "num_targets",
        "cheater"
      ],
      "tags": [
        "Dark",
        "Sorcery"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Wheel of Death will prefer to hit unshielded and [Dark] vulnerable enemies",
          "id": "cheat_fate",
          "name": "Cheat Fate",
          "tags": [
            "Dark",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Wheel of Death can be channeled for up to [{max_channel}:max_channel] turns\nIf the ritual is completed, all [Living] enemies lose 10% of their max HP",
          "id": "ritual_of_death",
          "name": "Ritual of Death",
          "tags": [
            "Dark",
            "Sorcery",
            "Ritual"
          ],
          "unlocksItems": 1
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Wheel of Death instead deals damage to [{num_targets}:num_targets] targets\nThe damage dealt to each target is divided by the number of targets hit",
          "id": "shared_misfortune",
          "name": "Shared Misfortune",
          "tags": [
            "Dark",
            "Sorcery"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 7,
          "damageType": null,
          "description": "When a unit dies to [Dark] damage, there is a 10% chance to cast Wheel of Death\nIf the cast fails to trigger, the chance for it to cast on the next instance increases by 10%\nAlways Active",
          "id": "death_cycle",
          "name": "Death Cycle",
          "tags": [
            "Dark",
            "Sorcery"
          ]
        }
      ]
    },
    "spell_wizard_replica": {
      "asset": "UI/spell skill icons/wizard_replica.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 50,
        "level": 9,
        "max_charges": 1,
        "melee": false,
        "minion_damage": 5,
        "minion_health": 10,
        "quick_cast": false,
        "range": 3,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "helmet": 3,
          "trinket": 5,
          "weapon": 7
        },
        "count": 17
      },
      "baseId": "wizard_replica",
      "className": "WizardReplica",
      "damageType": [],
      "description": "Summon a replica of the wizard with their equipment",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_wizard_replica.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/wizard_replica.png",
      "id": "spell_wizard_replica",
      "kind": "spell",
      "name": "Wizard Replica",
      "stats": [
        "range",
        "max_charges",
        "minion_damage",
        "minion_health",
        "hp_cost",
        "idolatry",
        "investiture",
        "reclamation"
      ],
      "tags": [
        "Arcane",
        "Blood",
        "Conjuration",
        "Metallic"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "",
          "id": "sturdy_construction",
          "name": "Sturdy Construction",
          "tags": [
            "Arcane",
            "Blood",
            "Conjuration",
            "Metallic"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "If the Wizard Replica dies, this spell regains a charge",
          "id": "blood_reclamation",
          "name": "Blood Reclamation",
          "tags": [
            "Arcane",
            "Blood",
            "Conjuration",
            "Metallic"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 3,
          "damageType": [],
          "description": "The Wizard Replica gains up to three of your cantrips and can cast them on a 3 turn cooldown",
          "id": "investiture",
          "name": "Investiture",
          "tags": [
            "Arcane",
            "Blood",
            "Conjuration",
            "Metallic"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "When you cast this spell, if there is room, summon a Wizard Colossus instead of a Wizard Replica\nA Wizard Colossus is a giant immobile version of the Wizard Replica, whose health and melee damage are multiplied by the number of equipment it owns",
          "id": "wizard_colossus",
          "name": "Wizard Colossus",
          "tags": [
            "Arcane",
            "Blood",
            "Conjuration",
            "Metallic"
          ]
        }
      ]
    },
    "spell_wolf": {
      "asset": "UI/spell skill icons/wolf.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 1,
        "max_charges": 7,
        "melee": false,
        "minion_damage": 4,
        "minion_health": 15,
        "minion_range": 3,
        "quick_cast": false,
        "range": 5,
        "requires_los": true
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 2,
          "helmet": 3,
          "trinket": 2,
          "weapon": 5
        },
        "count": 12
      },
      "baseId": "wolf",
      "className": "SummonWolfSpell",
      "damageType": [],
      "description": "Summon a Wolf",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 0,
        "outgoingCount": 0,
        "pathCount": 0
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_wolf.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/wolf.png",
      "id": "spell_wolf",
      "kind": "spell",
      "name": "Wolf",
      "stats": [
        "range",
        "max_charges",
        "minion_damage",
        "minion_health",
        "minion_range",
        "hp_cost",
        "ravenous",
        "fleet_footed",
        "werewolf",
        "pack",
        "num_summons"
      ],
      "tags": [
        "Nature",
        "Conjuration"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 1,
          "damageType": [],
          "description": "Summon a Werewolf instead of a Wolf",
          "id": "werewolf",
          "name": "Werewolf",
          "tags": [
            "Nature",
            "Conjuration",
            "Dark"
          ],
          "unlocksItems": 8
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 2,
          "damageType": [],
          "description": "Wolves gain [quickstep:translocation]",
          "id": "fleet_footed",
          "name": "Fleet Footed",
          "tags": [
            "Nature",
            "Conjuration",
            "Translocation"
          ],
          "unlocksItems": 2
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Consumes all remaining charges on cast\nThe wolf's health and spells' damage are multiplied by the number of charges consumed\nEach time the wolf kills a unit, they grow more powerful",
          "id": "ravenous_wolf",
          "name": "Ravenous Wolf",
          "tags": [
            "Nature",
            "Conjuration",
            "Blood"
          ],
          "unlocksItems": 3
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 6,
          "damageType": [],
          "description": "Summons a pack of [{num_summons}:num_summons] wolves instead of just 1",
          "id": "wolf_pack",
          "name": "Wolf Pack",
          "tags": [
            "Nature",
            "Conjuration"
          ]
        }
      ]
    },
    "spell_wyrm_eggs": {
      "asset": "UI/spell skill icons/wyrm_eggs.png",
      "attributes": {
        "can_target_empty": true,
        "cool_down": 0,
        "hp_cost": 0,
        "level": 7,
        "max_charges": 1,
        "melee": false,
        "minion_damage": 14,
        "minion_health": 75,
        "minion_range": 5,
        "num_summons": 4,
        "quick_cast": false,
        "range": 0,
        "requires_los": false
      },
      "augmentSummary": {
        "bySlot": {
          "armor": 5,
          "helmet": 3,
          "trinket": 4,
          "weapon": 9
        },
        "count": 21
      },
      "baseId": "wyrm_eggs",
      "className": "WyrmEggs",
      "damageType": [],
      "description": "Summons [4:num_summons] Wyrm eggs near the caster\nEach egg will hatch into either a [Fire] or an [Ice] wyrm on death",
      "effectSummary": {
        "coverage": "known",
        "incomingCount": 1,
        "outgoingCount": 2,
        "pathCount": 2
      },
      "extractionSource": "runtime",
      "icon": "icons/runtime/spell_wyrm_eggs.png",
      "iconFallback": false,
      "iconMatch": "exact",
      "iconSource": "UI/spell skill icons/wyrm_eggs.png",
      "id": "spell_wyrm_eggs",
      "kind": "spell",
      "name": "Wyrm Eggs",
      "stats": [
        "range",
        "max_charges",
        "minion_damage",
        "minion_health",
        "minion_range",
        "num_summons",
        "hp_cost",
        "radiant_eggs",
        "damage",
        "radius",
        "magic_eggs"
      ],
      "tags": [
        "Fire",
        "Ice",
        "Dragon",
        "Conjuration"
      ],
      "upgrades": [
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 4,
          "damageType": null,
          "description": "When one of your wyrm eggs is killed, the wyrm it spawns gains 100% resistance to the damage type that killed it",
          "id": "incubation_exposure",
          "name": "Incubation Exposure",
          "tags": [
            "Fire",
            "Ice",
            "Dragon",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 4,
          "damageType": [],
          "description": "Fire eggs can cast your Fireball on a 3 turn cooldown\nIce eggs can cast your Icicle on a 3 turn cooldown",
          "id": "magic_eggs",
          "name": "Magic Eggs",
          "tags": [
            "Fire",
            "Ice",
            "Dragon",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": null,
          "cost": 4,
          "damageType": null,
          "description": "For every 6 [Dragon] allies that die, regain a charge of Wyrm Eggs",
          "id": "scale_harvest",
          "name": "Scale Harvest",
          "tags": [
            "Fire",
            "Ice",
            "Dragon",
            "Conjuration"
          ]
        },
        {
          "amounts": [],
          "attributes": [],
          "baseOverride": {},
          "cost": 5,
          "damageType": [],
          "description": "Wyrm Eggs gain a damaging aura with a [{radius}:radius] tile radius\nThe aura deals [{damage}:damage] [Fire] or [Ice] damage to match the egg's type",
          "id": "radiant_eggs",
          "name": "Radiant Eggs",
          "tags": [
            "Fire",
            "Ice",
            "Dragon",
            "Conjuration"
          ]
        }
      ]
    }
  },
  "interactions": {
    "byEntity": {
      "component_ancient_inscription": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_arbiter_s_lens": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_arcane_mote": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_archfiend_s_bone": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_astral_phylactery": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_beastblood_fungus": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_binding_ring": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_blood_basin": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_239_component_blood_basin_spell_pain_mirror_free_cast",
          "edge_240_component_blood_basin_spell_pain_mirror_gets_learned_spell"
        ]
      },
      "component_bloodrage_serum": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_broken_stopwatch": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_burning_ember": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_chaos_seed": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_charged_cog": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_charred_relic": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_chimera_eyes": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_crimson_sigil": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_233_component_crimson_sigil_spell_drain_pulse_free_cast",
          "edge_234_component_crimson_sigil_spell_drain_pulse_gets_learned_spell"
        ]
      },
      "component_cursed_dice": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_241_component_cursed_dice_spell_wheel_of_death_gets_learned_spell",
          "edge_242_component_cursed_dice_spell_wheel_of_death_gets_learned_spell",
          "edge_243_component_cursed_dice_spell_wheel_of_death_free_cast"
        ]
      },
      "component_cursed_seal": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_230_component_cursed_seal_spell_seal_fate_gets_learned_spell",
          "edge_231_component_cursed_seal_spell_seal_fate_gets_learned_spell",
          "edge_232_component_cursed_seal_spell_seal_fate_free_cast"
        ]
      },
      "component_defiled_reliquary": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_devil_s_blood": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_dragon_ambrosia": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_dragontongue_tablet": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_drakentooth": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_dreamthorn_vine": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_237_component_dreamthorn_vine_spell_prison_of_thorns_free_cast",
          "edge_238_component_dreamthorn_vine_spell_prison_of_thorns_gets_learned_spell"
        ]
      },
      "component_eidolon_s_strings": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_elemental_ice": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_enchanter_s_awl": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_flame_blade_fragment": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_frost_core": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_frostpetal": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_frozen_heartwood": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_fulminite_shard": {
        "chains": [
          "chain_24_fulminite_shard_chain_lightning_fireball"
        ],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_235_component_fulminite_shard_spell_chain_lightning_free_cast",
          "edge_236_component_fulminite_shard_spell_chain_lightning_gets_learned_spell"
        ]
      },
      "component_glacial_script": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_golden_dragonscale": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_hag_heart": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_heart_fragment": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_hellbloom": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_holy_icon": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_holy_water": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_ice_wyrm_scale": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_incense": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_ironbark_plate": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_journeystone": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_lightning_jar": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_lost_ring": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_luminous_threads": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_magic_rune": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_mirror_stone": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_mithril_ore": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_moonstone": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_mycelial_ooze": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_nacreous_cysts": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_odin_s_eye": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_oozing_oculite": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_phoenix_feather": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_planar_keystone": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_raven_eye": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_relocator_beacon": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_retinal_jelly": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_rift_residue": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_runed_vellum": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_runic_fetish": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_sacrificial_brand": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_sanctified_locket": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_scripted_cortex": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_seer_s_orb": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_shadeweave": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_shielding_shard": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_shimmersteel": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_silver_dragonscale": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_slime_core": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_starfire_ingot": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_stormglass_eye": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_thundergod_s_fang": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_timelost_inscription": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_umbral_resin": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_voidstone_shard": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_voltaic_ash": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_votive_candle": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_warlord_s_skull": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_warped_dragon_egg": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_watcher_stone": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "component_wildflower": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_acidifier": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_aetherlord_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_amber_cube": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_amphisbaena_ring": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_amulet_of_collected_agony": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_amulet_of_emerald_flame": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_amulet_of_the_master": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_amulet_of_undeath": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_ankh": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_annihilator_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_arcane_accelerator": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_arcane_amplifier": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_arcane_combustion_powder": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_arcane_frenzy_mask": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_arcane_shield": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_arcane_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_arch_sorcerer_s_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_archangel_s_armor": {
        "chains": [
          "chain_7_archangel_s_armor_blinding_light_choir_of_angels_death_bolt",
          "chain_23_archangel_s_armor_blinding_light_choir_of_angels"
        ],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_228_equipment_archangel_s_armor_spell_blinding_light_free_cast",
          "edge_229_equipment_archangel_s_armor_spell_blinding_light_gets_learned_spell"
        ]
      },
      "equipment_archangel_s_spear": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_armor_melter": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_armor_of_nanuk": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_armor_of_the_master": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_artificer_s_chalice": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_artificer_s_rod": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_artificial_heart": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_ashen_rod": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_balor_s_eye_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_banner_of_the_horde": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_basilisk_scale_armor": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_202_equipment_basilisk_scale_armor_spell_petrify_gets_learned_spell",
          "edge_203_equipment_basilisk_scale_armor_spell_petrify_gets_learned_spell",
          "edge_204_equipment_basilisk_scale_armor_spell_petrify_free_cast"
        ]
      },
      "equipment_battlemage_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_bedlam_bell": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_blazeblood_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_blazing_wand": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_blizzard_beacon": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_blood_ruby": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_blood_shield": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_blood_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_bloodletter_bracers": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_bloodspike_helm": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_blooming_wand": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_book_of_chaos": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_book_of_curses": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_book_of_death": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_book_of_four_seals": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_book_of_helheim": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_book_of_ice": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_book_of_life": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_book_of_madness": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_book_of_malevolence": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_book_of_revelation": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_boots_of_imminent_doom": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_208_equipment_boots_of_imminent_doom_spell_seal_fate_gets_learned_spell",
          "edge_209_equipment_boots_of_imminent_doom_spell_seal_fate_gets_learned_spell",
          "edge_210_equipment_boots_of_imminent_doom_spell_seal_fate_free_cast"
        ]
      },
      "equipment_boreal_armor": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_brain_hat": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_brisingamen": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_cage_of_chimerae": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_cannibal_mask": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_cantrip_clogs": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_caustic_sprig": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_chalice_of_dragons": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_chalice_of_iron": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_chalice_of_light": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_chalice_of_warp": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_channeler_s_focus": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_channeler_s_treads": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_chaos_links": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_chaos_robes": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_chaos_scale_crown": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_chaos_serpent_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_chaos_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_charm_of_darkness": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_charm_of_vigor": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_chastising_lash": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_chelation_claw": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_chill_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_codex_necronomicus": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_codex_of_chaotic_evolution": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_cold_iron_heart": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_coldsnap_amulet": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_conciliator_s_claw": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_conjuration_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_contagion_corpse": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_coruscating_wand": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_crackledarkener": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_cracklevoid": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_crimson_brooch": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_crimson_coronet": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_crimson_torc": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_crisis_charm": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_crown_of_bony_fingers": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_crown_of_devastation": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_214_equipment_crown_of_devastation_spell_void_beam_gets_learned_spell",
          "edge_215_equipment_crown_of_devastation_spell_void_beam_gets_learned_spell",
          "edge_216_equipment_crown_of_devastation_spell_void_beam_free_cast"
        ]
      },
      "equipment_crown_of_ragnarok": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_crown_of_virtuous_sin": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_cryotic_accumulator": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_crystal_dagger": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_crystal_oculus": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_cultist_s_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_cultist_soles": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_cyst_of_eternal_bloom": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_dark_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_disintegrator": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_dowsing_spark": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_draco_antiphony_scepter": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_dragon_hunter_s_sigil": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_dragonclaw_sabatons": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_206_equipment_dragonclaw_sabatons_spell_dragon_claw_free_cast",
          "edge_207_equipment_dragonclaw_sabatons_spell_dragon_claw_gets_learned_spell"
        ]
      },
      "equipment_dragonspine_cloak": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_drain_boots": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_drakenstaff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_draupnir": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_dream_thief_diadem": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_drill_shoes": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_druid_s_dibble": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_dwarf_hat": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_earthmeld_boots": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_earthquake_boots": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_earthtroll_armor": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_earthwrath": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_echo_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_eldritch_mantle": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_electroplasm_ampule": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_enchanters_boon": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_enchantment_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_entropic_wand": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_erebus_lance": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_evermelting_cube": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_exploding_boots": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_explosive_spore_manual": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_217_equipment_explosive_spore_manual_spell_combust_poison_gets_learned_spell",
          "edge_218_equipment_explosive_spore_manual_spell_combust_poison_gets_learned_spell",
          "edge_219_equipment_explosive_spore_manual_spell_combust_poison_free_cast"
        ]
      },
      "equipment_eye_helm": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_eye_of_ammut": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_eye_of_mot": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_eye_of_tamtu": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_eye_rock_pendant": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_fae_plate": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_fae_thorn_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_fae_toxin_pouch": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_fanged_amulet": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_finger_6": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_fire_frenzy_mask": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_flagellant_s_cup": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_flaming_claw_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_galvanic_armor": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_galvanic_blade": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_galvanic_focus": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_geometer_s_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_ghost_slippers": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_ghostfire_scepter": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_glasya_s_bite": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_glittering_dancer_s_robes": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_gnome_shoes": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_grave_curse_doll": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_grave_hunger_amulet": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_grey_goo": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_hallucinogenic_spore_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_halo_hunter_s_sigil": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_haunted_blood_vial": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_heavenrender": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_hellfire_mantle": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_helm_of_hexes": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_helm_of_the_host": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_hemlock_needle": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_hemocorruptor": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_hex_specialist_s_ring": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_holy_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_horn_of_the_wild_hunt": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_horn_of_ur": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_hypno_bauble": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_ice_caller_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_ice_frenzy_mask": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_ice_sickle": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_icy_chill_mask": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_icy_claw_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_icy_cruciform": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_icy_vengeance_icon": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_iron_legion_s_banner": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_jaculus_idol": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_jade_shard": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_keraunos": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_kobold_clogs": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_lightning_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_lightning_tether": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_macrophagic_mask": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_magic_minion_shield": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_magic_wand": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_mandala_mukluks": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_marksman_cap": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_mask_of_nihilo": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_mask_of_woe": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_memory_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_menacing_eye_mask": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_metallurgy_mitts": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_minion_regeneration_amulet": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_molten_carapace": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_monkey_skull_amulet": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_moon_crown": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_mortal_hunter_s_sigil": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_mourning_bell": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_multicolored_rage_rod": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_multimancer_s_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_nature_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_neanderthal_s_tooth": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_necromancer_s_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_necrosis_blade": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_necrostatic_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_nightmare_hexbag": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_numen_censer": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_ogre_boots": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_ooze_wand": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_oozing_scale_armor": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_orb_controller_s_mitts": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_orb_of_infinite_slaughter": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_orrery_of_the_unnamed_one": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_paralyzing_venom": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_pedantic_pendant": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_philosopher_s_stone": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_plague_doctor_s_cane": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_plague_doctor_s_mask": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_plague_doctor_s_robe": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_plaguebringer": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_plasmic_distributor": {
        "chains": [
          "chain_25_plasmic_distributor_vampiricism_dominate_dominate"
        ],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_226_equipment_plasmic_distributor_spell_vampiricism_free_cast",
          "edge_227_equipment_plasmic_distributor_spell_vampiricism_gets_learned_spell"
        ]
      },
      "equipment_prism_of_shattered_sensations": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_prismatic_links": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_prismatic_plate": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_psychopomp_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_pulse_accelerator": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_purity_oculus": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_pyrophilia_locket": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_pyrostatic_curse_doll": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_pyrostatic_oculus": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_pyrrhic_censer": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_quicksilver_armor": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_223_equipment_quicksilver_armor_spell_mercurize_gets_learned_spell",
          "edge_224_equipment_quicksilver_armor_spell_mercurize_gets_learned_spell",
          "edge_225_equipment_quicksilver_armor_spell_mercurize_free_cast"
        ]
      },
      "equipment_quickstep_boots": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_quill_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_raiment_of_eyes": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_rain_beacon": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_rainbow_blade": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_rapid_ritual_rod": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_razoreye": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_red_majesty": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_red_obsidian_shard": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_rift_breaker": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_rift_key_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_rimeblight_pulverizer": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_ring_of_magnetic_charisma": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_robe_of_agony": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_robe_of_crystals": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_robe_of_fire": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_robe_of_frostfire": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_robe_of_ice": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_robe_of_rifts": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_robe_of_storms": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_robe_of_the_druids": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_robe_of_twilight": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_robe_of_void": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_robes_of_virtuous_sin": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_rod_of_heaven_s_assault": {
        "chains": [
          "chain_22_rod_of_heaven_s_assault_heavenly_blast_immolate"
        ],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_211_equipment_rod_of_heaven_s_assault_spell_heavenly_blast_gets_learned_spell",
          "edge_212_equipment_rod_of_heaven_s_assault_spell_heavenly_blast_gets_learned_spell",
          "edge_213_equipment_rod_of_heaven_s_assault_spell_heavenly_blast_free_cast"
        ]
      },
      "equipment_ruinous_curse_doll": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_runespeaker_s_gorget": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_runic_hourglass": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_sacrificial_dagger": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_sandals_of_virtuous_sin": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_sanguine_frost_wand": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_scales_of_virtuous_sin": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_scepter_of_sorrows": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_searing_eye_stone": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_shatter_shards_necklace": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_shepherd_s_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_silken_links": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_silken_sandals": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_silvermelt": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_skull_necklace": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_skybreaker_array": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_slime_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_slime_striders": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_slime_timer": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_slimebirth_cantromancy": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_slimecrusted_scarificator": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_slimy_voodoo_mantle": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_slippery_hex_dagger": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_snow_shoes": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_snow_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_solid_steel_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_sonic_shields": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_sorcery_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_sorcwinter": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_soul_harvester": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_soulmail": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_spark_conductor": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_spawning_venom": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_spirit_visor": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_staff_of_heaven_s_vengeance": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_stagnation_basin": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_starblesser": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_stolen_flame_choker": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_stone_curse_doll": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_stone_mask": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_stoneeater_amulet": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_storm_beacon": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_storm_boots": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_storm_caller_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_storm_oculus": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_storm_wand": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_stormbrood_trickshoes": {
        "chains": [
          "chain_0_stormbrood_trickshoes_blink_disperse_magic_missile_magic_missile",
          "chain_8_stormbrood_trickshoes_blink_disperse_magic_missile"
        ],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_205_equipment_stormbrood_trickshoes_spell_blink_grants_minion_spell"
        ]
      },
      "equipment_stormtroll_armor": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_sunforged_iris": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_talking_hat": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_the_bladestaff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_the_blazeloom": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_the_bloodwell": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_the_boiler": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_the_dynamo": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_the_flamenweaver": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_the_gloomthorn": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_the_north_pole": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_220_equipment_the_north_pole_spell_magnetize_gets_learned_spell",
          "edge_221_equipment_the_north_pole_spell_magnetize_gets_learned_spell",
          "edge_222_equipment_the_north_pole_spell_magnetize_free_cast"
        ]
      },
      "equipment_the_purifier": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_the_sparkloom": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_thorn_hunter_s_sigil": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_timelord_s_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_timestriders": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_titan_s_bane": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_travellers_shoes": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_treelord_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_tundra_mantle": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_twilight_lantern": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_twilight_oculus": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_umbral_totem": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_unblinking_eye": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_unholy_expurgator": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_vampiric_vestments": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_veilpiercer_s_monocle": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_venom_spitter_casque": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_venomancer_s_vial": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_vial_of_ambrosia": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_vile_dagger": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_void_hunter_s_sigil": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_void_oculus": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_void_spike_stone": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_void_traveler_s_cloak": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_voidflame_lantern": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_volcanic_lance": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_voodoo_doll": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_warlord_helm": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_warlord_vestments": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_wild_healing_staff": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_winged_shoes": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_winter_links": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_wintersting": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_witching_hourglass": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_woadwyrd": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_wound_rot_amulet": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_wrath_links": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "equipment_wyrm_spirit_armor": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_aelf": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_aelf_lightning_artist": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_aesir": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_aether_spider": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_aether_spider_queen": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_angelic_visitor": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_angrboda": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_animated_armor": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_animated_knight": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_animikii": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_annihilation_goo": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_arachnid_wizard": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_arbiter": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_arcane_blacksmith": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_arch_fiend": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_archon_purifier": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_armored_goblin": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_armored_ogre": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_armored_polar_bear": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_ash_fiend": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_avian_wizard": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_bad_apple": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_bag_of_bugs": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_bark_lord": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_bat": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_bat_dragon": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_black_rider": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_blightmonger": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_blizzard_beast": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_blood_bear": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_blood_hound": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_blood_knight": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_blood_magus": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_blood_slime": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_boggart": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_boggart_assassin": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_bone_colossus": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_bone_king": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_bone_knight": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_bone_knight_archer": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_bone_shambler": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_bone_shambler_megalith": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_bone_wizard": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_bonewheel": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_box_of_woe": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_brain_tree": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_breathstealer": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_butterfly_demon": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_card_guard": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_centaur": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_centaur_druid": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_chained_cyclops": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_chaos_chimera": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_chaos_fiend": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_chaos_knight": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_chaos_quill": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_chronos_titan_immortal": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_cindervein": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_cockatrice": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_concussive_idol": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_copper_fiend": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_coral_colossus": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_corrupted_lamasu": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_crystal_golem": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_crystal_mage": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_cultist": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_dancing_blade": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_dawnheart": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_deathchill_chimera": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_deathchiller": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_displacer_beast": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_doldrum": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_dracolich": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_dragon_mage": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_dream_hag": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_dryder": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_duergar": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_duergar_fortress": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_efreet": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_electric_slime": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_enchanter": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_energy_knight": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_executioner": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_fae_huntsman": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_fae_queen": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_faery": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_faery_arcanist": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_faery_empress": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_fallen_angel": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_false_prophet": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_fearface": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_fenris": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_fiery_tormenting_mass": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_fiery_tormentor": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_fire_belcher": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_fire_bomber": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_fire_drake": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_fire_imp": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_fire_lich": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_fire_rocket_bomber": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_fire_spirit": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_fire_wizard": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_fire_wyrm": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_fire_wyrm_egg": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_flame_maw": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_flame_rift": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_flame_toad": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_flaming_eyeball": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_flaming_flesh_fiend": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_flesh_colossus": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_flesh_fiend": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_floating_eyeball": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_fountain_of_blood": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_fountain_of_venom": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_frostfire_mage": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_frostfire_tormenting_mass": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_frostfire_tormentor": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_frosty_tormentor": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_fujin": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_furnace_fiend": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_gargoyle": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_gelgut": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_gelid_mirror": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_gemini_twin": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_ghost": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_ghostly_mass": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_giant_flaming_skull": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_giant_floating_skull": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_giant_gorgon": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_giant_hornet": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_giant_mass_of_eyes": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_giant_nightmare_turtle": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_giant_sack_of_filth": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_giant_spider": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_giant_spider_queen": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_gilded_tyrant": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_glacial_turtle": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_glass_mushboom": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_gloomwing": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_gnome": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_gnome_castle": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_gnome_donsy": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_goatia": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_goblin": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_goblin_cave": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_goblin_shaman": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_goblin_wizard": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_gold_drake": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_golden_skull": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_golem": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_goo_spitter": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_grand_warlock": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_green_mushboom": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_green_slime": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_gremlin": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_grey_gorgon": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_grey_mushboom": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_haetae_golem": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_hamsa": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_head_cannon": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_hell_hound": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_hemogoblin": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_horned_toad": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_ice_belcher": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_ice_bomber": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_ice_drake": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_ice_lich": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_ice_maw": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_ice_rocket_bomber": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_ice_slime": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_ice_wizard": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_ice_wyrm": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_ice_wyrm_egg": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_idol_of_agony": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_idol_of_fiends": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_idol_of_fiery_vengeance": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_idol_of_frailty": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_idol_of_frost": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_idol_of_insanity": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_idol_of_invincibiity": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_idol_of_nightmares": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_idol_of_pain": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_idol_of_rebirth": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_idol_of_sorcery": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_idol_of_souls": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_idol_of_undeath": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_idol_of_vampirism": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_imp_collector": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_infernal_demon_prince": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_insanity_fiend": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_iron_imp": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_jack_o_flames": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_kettle_man": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_kobold": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_kobold_camp": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_lamasu": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_lamasu_methuselah": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_large_worm_ball": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_lava_spitter": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_leghead": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_lich": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_lightning_master": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_limb_collector": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_louis_the_seer": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_maggot_empress": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_mantis": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_masked_wizard": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_mass_of_eyes": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_mechanomancer": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_medusa": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_mind_devourer": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_mind_maggot": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_mind_maggot_queen": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_mind_maggot_wretch": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_mind_vampire": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_minos_the_golden_bull": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_minotaur": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_mischief_maker": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_mogwai_mage": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_molten_devourer": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_moon_mage": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_mother_of_spiders": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_mothgod": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_mountain_mage": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_mycelial_mage": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_mycobeast": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_necrodrake": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_night_hag": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_nightmare_turtle": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_nine_the_cat": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_observer": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_odin_aesir_immortal": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_ogre": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_old_thunderbones": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_orc": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_orc_houndlord": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_ossuary_spider": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_pale_rider": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_pan": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_phoenix": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_pillar_of_bones": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_pillar_of_worms": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_polar_bear": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_pumpkinhead": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_purple_hand": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_rattlemaw": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_raven": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_raven_mage": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_razor_beast": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_reaper": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_red_cyclops": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_red_rider": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_red_slime": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_rock_worm": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_rot_fiend": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_rotting_mass": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_rotting_phoenix": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_rotting_zombie": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_satyr": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_scuttler": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_sentient_shield": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_shrapnel_beast": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_shru_the_toad_sorcerer": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_siren": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_skull_hornet": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_skull_hornet_hive": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_skull_sentry": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_slazephan_the_philosopher": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_slime_drake": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_slimesoul_idol": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_snow_scuttler": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_spark_imp": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_spark_spirit": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_spike_ball": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_spike_beast": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_stalker": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_star_swimmer": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_starclaw": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_starfire_chimera": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_steel_spider_queen": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_stone_shark": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_stonefish": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_storm_drake": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_storm_knight": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_storm_troll": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_stormcrest": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_stringed_puppet": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_sun_mage": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_swamp_queen": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_taurokelevee": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_the_furnace": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_the_great_pumpking": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_thunderbird": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_time_keeper": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_titan": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_tombstone": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_towering_bone_shambler": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_towering_toadbeast": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_toxic_mind_devourer": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_translocator": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_treant": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_troll": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_troll_geomancer": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_trollataur": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_troubler": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_twilight_knight": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_twilight_seer": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_two_headed_snake": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_ultimate_mind_devourer": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_ultimate_troubler": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_vampire": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_vampire_count": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_void_ancestor": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_void_bomber": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_void_child": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_void_drake": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_void_elder": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_void_knight": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_void_phoenix": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_void_rift": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_void_rocket_bomber": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_void_slime": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_void_toad": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_void_watcher": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_volcano_turtle": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_wailing_banshee": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_watcher": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_werewolf": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_whirlwind_reaper": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_white_rider": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_winterbringer": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_witch": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_worm_shambler": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_yeti": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_yeti_shaman": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "monster_yggdrasil": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "ritual_of_revelation": {
        "chains": [
          "chain_4_ritual_of_revelation_blinding_light_choir_of_angels_death_bolt",
          "chain_17_ritual_of_revelation_blinding_light_choir_of_angels",
          "chain_20_ritual_of_revelation_holy_fire_blazerip",
          "chain_21_ritual_of_revelation_holy_fire_call_seraph"
        ],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_160_ritual_of_revelation_spell_holy_fire_gets_learned_spell",
          "edge_161_ritual_of_revelation_spell_holy_fire_gets_learned_spell",
          "edge_162_ritual_of_revelation_spell_holy_fire_free_cast",
          "edge_163_ritual_of_revelation_spell_blazerip_gets_learned_spell",
          "edge_164_ritual_of_revelation_spell_blazerip_gets_learned_spell",
          "edge_165_ritual_of_revelation_spell_blazerip_free_cast",
          "edge_166_ritual_of_revelation_spell_blinding_light_gets_learned_spell",
          "edge_167_ritual_of_revelation_spell_blinding_light_gets_learned_spell",
          "edge_168_ritual_of_revelation_spell_blinding_light_free_cast"
        ]
      },
      "spell_amalgamate_slime": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_annihilate": {
        "chains": [
          "chain_13_volcanic_eruption_rain_of_fire_annihilate",
          "chain_18_wall_of_flame_pillar_of_fire_annihilate"
        ],
        "incomingEdges": [
          "edge_6_spell_rain_of_fire_spell_annihilate_gets_learned_spell",
          "edge_7_spell_rain_of_fire_spell_annihilate_gets_learned_spell",
          "edge_14_spell_rain_of_fire_spell_annihilate_free_cast",
          "edge_43_spell_pillar_of_fire_spell_annihilate_gets_learned_spell",
          "edge_44_spell_pillar_of_fire_spell_annihilate_gets_learned_spell",
          "edge_45_spell_pillar_of_fire_spell_annihilate_free_cast"
        ],
        "outgoingEdges": []
      },
      "spell_arc_lightning": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_arcane_warding": {
        "chains": [],
        "incomingEdges": [
          "edge_91_spell_fae_court_spell_arcane_warding_gets_learned_spell",
          "edge_92_spell_fae_court_spell_arcane_warding_gets_learned_spell",
          "edge_93_spell_fae_court_spell_arcane_warding_free_cast",
          "edge_94_spell_fae_court_spell_arcane_warding_gets_learned_spell",
          "edge_95_spell_fae_court_spell_arcane_warding_gets_learned_spell",
          "edge_96_spell_fae_court_spell_arcane_warding_free_cast"
        ],
        "outgoingEdges": []
      },
      "spell_armageddon_blade": {
        "chains": [],
        "incomingEdges": [
          "edge_116_spell_knightly_oath_spell_armageddon_blade_gets_learned_spell"
        ],
        "outgoingEdges": []
      },
      "spell_black_hole": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_186_spell_black_hole_spell_earthquake_free_cast",
          "edge_187_spell_black_hole_spell_earthquake_gets_learned_spell"
        ]
      },
      "spell_blazerip": {
        "chains": [
          "chain_3_volcanic_eruption_rain_of_fire_fire_drake_blazerip",
          "chain_16_word_of_ice_chill_wind_blazerip",
          "chain_20_ritual_of_revelation_holy_fire_blazerip",
          "chain_26_rain_of_fire_fire_drake_blazerip"
        ],
        "incomingEdges": [
          "edge_57_spell_fire_drake_spell_blazerip_grants_minion_spell",
          "edge_99_spell_holy_fire_spell_blazerip_gets_learned_spell",
          "edge_100_spell_holy_fire_spell_blazerip_gets_learned_spell",
          "edge_101_spell_holy_fire_spell_blazerip_gets_learned_spell",
          "edge_102_spell_holy_fire_spell_blazerip_gets_learned_spell",
          "edge_103_spell_holy_fire_spell_blazerip_free_cast",
          "edge_127_spell_chill_wind_spell_blazerip_gets_learned_spell",
          "edge_128_spell_chill_wind_spell_blazerip_gets_learned_spell",
          "edge_129_spell_chill_wind_spell_blazerip_free_cast",
          "edge_163_ritual_of_revelation_spell_blazerip_gets_learned_spell",
          "edge_164_ritual_of_revelation_spell_blazerip_gets_learned_spell",
          "edge_165_ritual_of_revelation_spell_blazerip_free_cast"
        ],
        "outgoingEdges": []
      },
      "spell_blinding_light": {
        "chains": [
          "chain_4_ritual_of_revelation_blinding_light_choir_of_angels_death_bolt",
          "chain_7_archangel_s_armor_blinding_light_choir_of_angels_death_bolt",
          "chain_17_ritual_of_revelation_blinding_light_choir_of_angels",
          "chain_23_archangel_s_armor_blinding_light_choir_of_angels",
          "chain_30_blinding_light_choir_of_angels_death_bolt"
        ],
        "incomingEdges": [
          "edge_166_ritual_of_revelation_spell_blinding_light_gets_learned_spell",
          "edge_167_ritual_of_revelation_spell_blinding_light_gets_learned_spell",
          "edge_168_ritual_of_revelation_spell_blinding_light_free_cast",
          "edge_228_equipment_archangel_s_armor_spell_blinding_light_free_cast",
          "edge_229_equipment_archangel_s_armor_spell_blinding_light_gets_learned_spell"
        ],
        "outgoingEdges": [
          "edge_110_spell_blinding_light_spell_choir_of_angels_gets_learned_spell",
          "edge_111_spell_blinding_light_spell_choir_of_angels_gets_learned_spell",
          "edge_112_spell_blinding_light_spell_choir_of_angels_free_cast"
        ]
      },
      "spell_blink": {
        "chains": [
          "chain_0_stormbrood_trickshoes_blink_disperse_magic_missile_magic_missile",
          "chain_1_blink_disperse_magic_missile_magic_missile",
          "chain_8_stormbrood_trickshoes_blink_disperse_magic_missile",
          "chain_10_blink_disperse_magic_missile"
        ],
        "incomingEdges": [
          "edge_205_equipment_stormbrood_trickshoes_spell_blink_grants_minion_spell"
        ],
        "outgoingEdges": [
          "edge_30_spell_blink_spell_disperse_gets_learned_spell",
          "edge_31_spell_blink_spell_disperse_gets_learned_spell",
          "edge_32_spell_blink_spell_disperse_free_cast",
          "edge_33_spell_blink_spell_thunder_strike_gets_learned_spell",
          "edge_34_spell_blink_spell_thunder_strike_gets_learned_spell",
          "edge_35_spell_blink_spell_thunder_strike_free_cast"
        ]
      },
      "spell_blizzard": {
        "chains": [],
        "incomingEdges": [
          "edge_89_spell_fae_court_spell_blizzard_grants_minion_spell"
        ],
        "outgoingEdges": []
      },
      "spell_blood_bullet": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_blood_meridian": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_bloodshift": {
        "chains": [],
        "incomingEdges": [
          "edge_149_spell_golden_skull_spell_bloodshift_grants_minion_spell",
          "edge_151_spell_golden_skull_spell_bloodshift_grants_minion_spell"
        ],
        "outgoingEdges": [
          "edge_169_spell_bloodshift_spell_boiling_blood_gets_learned_spell"
        ]
      },
      "spell_blue_lion": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_83_spell_blue_lion_spell_healing_light_grants_minion_spell",
          "edge_84_spell_blue_lion_spell_healing_light_grants_minion_spell"
        ]
      },
      "spell_boiling_blood": {
        "chains": [],
        "incomingEdges": [
          "edge_169_spell_bloodshift_spell_boiling_blood_gets_learned_spell",
          "edge_173_spell_stampede_form_spell_boiling_blood_free_cast",
          "edge_174_spell_stampede_form_spell_boiling_blood_gets_learned_spell"
        ],
        "outgoingEdges": []
      },
      "spell_bone_barrage": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_bone_spear": {
        "chains": [],
        "incomingEdges": [
          "edge_158_spell_night_hag_spell_bone_spear_grants_minion_spell"
        ],
        "outgoingEdges": []
      },
      "spell_bouncing_slimeball": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_burning_idol": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_call_archon": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_call_seraph": {
        "chains": [
          "chain_21_ritual_of_revelation_holy_fire_call_seraph"
        ],
        "incomingEdges": [
          "edge_104_spell_holy_fire_spell_call_seraph_gets_learned_spell",
          "edge_105_spell_holy_fire_spell_call_seraph_gets_learned_spell",
          "edge_106_spell_holy_fire_spell_call_seraph_free_cast"
        ],
        "outgoingEdges": []
      },
      "spell_cantrip_cascade": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_carnival_of_pain": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_155_spell_carnival_of_pain_spell_fiery_tormentor_gets_learned_spell",
          "edge_156_spell_carnival_of_pain_spell_fiery_tormentor_gets_learned_spell",
          "edge_157_spell_carnival_of_pain_spell_fiery_tormentor_deferred_cast"
        ]
      },
      "spell_chain_lightning": {
        "chains": [
          "chain_2_rain_of_thunderbolts_storm_drake_chain_lightning_fireball",
          "chain_24_fulminite_shard_chain_lightning_fireball",
          "chain_27_rain_of_thunderbolts_storm_drake_chain_lightning",
          "chain_35_storm_drake_chain_lightning_fireball"
        ],
        "incomingEdges": [
          "edge_51_spell_watcher_form_spell_chain_lightning_gets_learned_spell",
          "edge_58_spell_storm_drake_spell_chain_lightning_grants_minion_spell",
          "edge_235_component_fulminite_shard_spell_chain_lightning_free_cast",
          "edge_236_component_fulminite_shard_spell_chain_lightning_gets_learned_spell"
        ],
        "outgoingEdges": [
          "edge_61_spell_chain_lightning_spell_fireball_gets_learned_spell",
          "edge_62_spell_chain_lightning_spell_fireball_gets_learned_spell",
          "edge_63_spell_chain_lightning_spell_fireball_free_cast"
        ]
      },
      "spell_chaos_barrage": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_chill_wind": {
        "chains": [
          "chain_16_word_of_ice_chill_wind_blazerip"
        ],
        "incomingEdges": [
          "edge_124_word_of_ice_spell_chill_wind_gets_learned_spell",
          "edge_125_word_of_ice_spell_chill_wind_gets_learned_spell",
          "edge_126_word_of_ice_spell_chill_wind_free_cast"
        ],
        "outgoingEdges": [
          "edge_127_spell_chill_wind_spell_blazerip_gets_learned_spell",
          "edge_128_spell_chill_wind_spell_blazerip_gets_learned_spell",
          "edge_129_spell_chill_wind_spell_blazerip_free_cast"
        ]
      },
      "spell_choir_of_angels": {
        "chains": [
          "chain_4_ritual_of_revelation_blinding_light_choir_of_angels_death_bolt",
          "chain_7_archangel_s_armor_blinding_light_choir_of_angels_death_bolt",
          "chain_17_ritual_of_revelation_blinding_light_choir_of_angels",
          "chain_23_archangel_s_armor_blinding_light_choir_of_angels",
          "chain_30_blinding_light_choir_of_angels_death_bolt"
        ],
        "incomingEdges": [
          "edge_110_spell_blinding_light_spell_choir_of_angels_gets_learned_spell",
          "edge_111_spell_blinding_light_spell_choir_of_angels_gets_learned_spell",
          "edge_112_spell_blinding_light_spell_choir_of_angels_free_cast"
        ],
        "outgoingEdges": [
          "edge_107_spell_choir_of_angels_spell_death_bolt_grants_minion_spell"
        ]
      },
      "spell_combust_poison": {
        "chains": [],
        "incomingEdges": [
          "edge_217_equipment_explosive_spore_manual_spell_combust_poison_gets_learned_spell",
          "edge_218_equipment_explosive_spore_manual_spell_combust_poison_gets_learned_spell",
          "edge_219_equipment_explosive_spore_manual_spell_combust_poison_free_cast"
        ],
        "outgoingEdges": []
      },
      "spell_darkness": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_40_spell_darkness_spell_shadow_hex_gets_learned_spell",
          "edge_41_spell_darkness_spell_shadow_hex_gets_learned_spell",
          "edge_42_spell_darkness_spell_shadow_hex_free_cast"
        ]
      },
      "spell_death_bolt": {
        "chains": [
          "chain_4_ritual_of_revelation_blinding_light_choir_of_angels_death_bolt",
          "chain_7_archangel_s_armor_blinding_light_choir_of_angels_death_bolt",
          "chain_30_blinding_light_choir_of_angels_death_bolt"
        ],
        "incomingEdges": [
          "edge_107_spell_choir_of_angels_spell_death_bolt_grants_minion_spell"
        ],
        "outgoingEdges": []
      },
      "spell_death_chill": {
        "chains": [
          "chain_31_ice_vortex_ice_drake_death_chill"
        ],
        "incomingEdges": [
          "edge_60_spell_ice_drake_spell_death_chill_grants_minion_spell"
        ],
        "outgoingEdges": []
      },
      "spell_death_cleave": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_death_clock": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_death_shock": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_demon_form": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_demonic_ritual": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_devour_flesh": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_devour_mind": {
        "chains": [],
        "incomingEdges": [
          "edge_75_spell_devour_mind_spell_devour_mind_grants_minion_spell"
        ],
        "outgoingEdges": [
          "edge_75_spell_devour_mind_spell_devour_mind_grants_minion_spell"
        ]
      },
      "spell_disperse": {
        "chains": [
          "chain_0_stormbrood_trickshoes_blink_disperse_magic_missile_magic_missile",
          "chain_1_blink_disperse_magic_missile_magic_missile",
          "chain_8_stormbrood_trickshoes_blink_disperse_magic_missile",
          "chain_10_blink_disperse_magic_missile",
          "chain_11_disperse_magic_missile_magic_missile"
        ],
        "incomingEdges": [
          "edge_30_spell_blink_spell_disperse_gets_learned_spell",
          "edge_31_spell_blink_spell_disperse_gets_learned_spell",
          "edge_32_spell_blink_spell_disperse_free_cast"
        ],
        "outgoingEdges": [
          "edge_37_spell_disperse_spell_magic_missile_gets_learned_spell",
          "edge_38_spell_disperse_spell_magic_missile_gets_learned_spell",
          "edge_39_spell_disperse_spell_magic_missile_free_cast"
        ]
      },
      "spell_dispersion_field": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_dominate": {
        "chains": [
          "chain_25_plasmic_distributor_vampiricism_dominate_dominate",
          "chain_29_word_of_undeath_dominate_dominate"
        ],
        "incomingEdges": [
          "edge_46_spell_dominate_spell_dominate_grants_minion_spell",
          "edge_68_spell_vampiricism_spell_dominate_grants_minion_spell",
          "edge_79_word_of_undeath_spell_dominate_gets_learned_spell",
          "edge_80_word_of_undeath_spell_dominate_gets_learned_spell",
          "edge_81_word_of_undeath_spell_dominate_free_cast",
          "edge_172_summon_rider_spell_dominate_grants_minion_spell"
        ],
        "outgoingEdges": [
          "edge_46_spell_dominate_spell_dominate_grants_minion_spell"
        ]
      },
      "spell_dragon_breath": {
        "chains": [],
        "incomingEdges": [
          "edge_178_spell_ride_drake_spell_dragon_breath_gets_learned_spell",
          "edge_179_spell_ride_drake_spell_dragon_breath_gets_learned_spell",
          "edge_180_spell_ride_drake_spell_dragon_breath_free_cast"
        ],
        "outgoingEdges": []
      },
      "spell_dragon_claw": {
        "chains": [],
        "incomingEdges": [
          "edge_175_spell_dragon_claw_spell_dragon_claw_grants_minion_spell",
          "edge_206_equipment_dragonclaw_sabatons_spell_dragon_claw_free_cast",
          "edge_207_equipment_dragonclaw_sabatons_spell_dragon_claw_gets_learned_spell"
        ],
        "outgoingEdges": [
          "edge_175_spell_dragon_claw_spell_dragon_claw_grants_minion_spell"
        ]
      },
      "spell_dragon_roar": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_drain_pulse": {
        "chains": [],
        "incomingEdges": [
          "edge_233_component_crimson_sigil_spell_drain_pulse_free_cast",
          "edge_234_component_crimson_sigil_spell_drain_pulse_gets_learned_spell"
        ],
        "outgoingEdges": []
      },
      "spell_dread_lash": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_199_spell_dread_lash_spell_seal_fate_gets_learned_spell",
          "edge_200_spell_dread_lash_spell_seal_fate_gets_learned_spell",
          "edge_201_spell_dread_lash_spell_seal_fate_free_cast"
        ]
      },
      "spell_dream_the_starwhale": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_earthen_passage": {
        "chains": [
          "chain_5_earthen_passage_earthen_sentinel_heavenly_blast_immolate",
          "chain_32_earthen_passage_earthen_sentinel_poison_sting",
          "chain_33_earthen_passage_earthen_sentinel_heavenly_blast"
        ],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_188_spell_earthen_passage_spell_earthen_sentinel_free_cast",
          "edge_189_spell_earthen_passage_spell_earthen_sentinel_gets_learned_spell"
        ]
      },
      "spell_earthen_sentinel": {
        "chains": [
          "chain_5_earthen_passage_earthen_sentinel_heavenly_blast_immolate",
          "chain_32_earthen_passage_earthen_sentinel_poison_sting",
          "chain_33_earthen_passage_earthen_sentinel_heavenly_blast",
          "chain_37_earthen_sentinel_heavenly_blast_immolate"
        ],
        "incomingEdges": [
          "edge_188_spell_earthen_passage_spell_earthen_sentinel_free_cast",
          "edge_189_spell_earthen_passage_spell_earthen_sentinel_gets_learned_spell"
        ],
        "outgoingEdges": [
          "edge_69_spell_earthen_sentinel_spell_poison_sting_grants_minion_spell",
          "edge_70_spell_earthen_sentinel_spell_heavenly_blast_grants_minion_spell"
        ]
      },
      "spell_earthquake": {
        "chains": [],
        "incomingEdges": [
          "edge_186_spell_black_hole_spell_earthquake_free_cast",
          "edge_187_spell_black_hole_spell_earthquake_gets_learned_spell"
        ],
        "outgoingEdges": [
          "edge_130_spell_earthquake_spell_shrapnel_blast_gets_learned_spell"
        ]
      },
      "spell_essence_flux": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_eye_of_blood": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_eye_of_fire": {
        "chains": [],
        "incomingEdges": [
          "edge_36_spell_flame_gate_spell_eye_of_fire_grants_minion_spell"
        ],
        "outgoingEdges": []
      },
      "spell_eye_of_ice": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_eye_of_lightning": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_eye_of_rage": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_fae_court": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_87_spell_fae_court_spell_psychic_seedling_grants_minion_spell",
          "edge_88_spell_fae_court_spell_freeze_grants_minion_spell",
          "edge_89_spell_fae_court_spell_blizzard_grants_minion_spell",
          "edge_90_spell_fae_court_spell_psychic_seedling_grants_minion_spell",
          "edge_91_spell_fae_court_spell_arcane_warding_gets_learned_spell",
          "edge_92_spell_fae_court_spell_arcane_warding_gets_learned_spell",
          "edge_93_spell_fae_court_spell_arcane_warding_free_cast",
          "edge_94_spell_fae_court_spell_arcane_warding_gets_learned_spell",
          "edge_95_spell_fae_court_spell_arcane_warding_gets_learned_spell",
          "edge_96_spell_fae_court_spell_arcane_warding_free_cast"
        ]
      },
      "spell_faehaunt_garden": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_142_spell_faehaunt_garden_spell_lightning_bolt_grants_minion_spell",
          "edge_143_spell_faehaunt_garden_spell_void_beam_grants_minion_spell"
        ]
      },
      "spell_fan_of_flames": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_fiery_tormentor": {
        "chains": [],
        "incomingEdges": [
          "edge_155_spell_carnival_of_pain_spell_fiery_tormentor_gets_learned_spell",
          "edge_156_spell_carnival_of_pain_spell_fiery_tormentor_gets_learned_spell",
          "edge_157_spell_carnival_of_pain_spell_fiery_tormentor_deferred_cast"
        ],
        "outgoingEdges": []
      },
      "spell_fire_drake": {
        "chains": [
          "chain_3_volcanic_eruption_rain_of_fire_fire_drake_blazerip",
          "chain_15_volcanic_eruption_rain_of_fire_fire_drake",
          "chain_26_rain_of_fire_fire_drake_blazerip"
        ],
        "incomingEdges": [
          "edge_8_spell_rain_of_fire_spell_fire_drake_gets_learned_spell",
          "edge_9_spell_rain_of_fire_spell_fire_drake_gets_learned_spell",
          "edge_16_spell_rain_of_fire_spell_fire_drake_free_cast"
        ],
        "outgoingEdges": [
          "edge_57_spell_fire_drake_spell_blazerip_grants_minion_spell"
        ]
      },
      "spell_fireball": {
        "chains": [
          "chain_2_rain_of_thunderbolts_storm_drake_chain_lightning_fireball",
          "chain_19_volcanic_eruption_rain_of_fire_fireball",
          "chain_24_fulminite_shard_chain_lightning_fireball",
          "chain_35_storm_drake_chain_lightning_fireball"
        ],
        "incomingEdges": [
          "edge_0_spell_rain_of_fire_spell_fireball_gets_learned_spell",
          "edge_1_spell_rain_of_fire_spell_fireball_gets_learned_spell",
          "edge_2_spell_rain_of_fire_spell_fireball_gets_learned_spell",
          "edge_3_spell_rain_of_fire_spell_fireball_gets_learned_spell",
          "edge_13_spell_rain_of_fire_spell_fireball_free_cast",
          "edge_61_spell_chain_lightning_spell_fireball_gets_learned_spell",
          "edge_62_spell_chain_lightning_spell_fireball_gets_learned_spell",
          "edge_63_spell_chain_lightning_spell_fireball_free_cast",
          "edge_153_spell_wyrm_eggs_spell_fireball_grants_minion_spell"
        ],
        "outgoingEdges": []
      },
      "spell_flame_burst": {
        "chains": [
          "chain_12_volcanic_eruption_rain_of_fire_flame_burst"
        ],
        "incomingEdges": [
          "edge_4_spell_rain_of_fire_spell_flame_burst_gets_learned_spell",
          "edge_5_spell_rain_of_fire_spell_flame_burst_gets_learned_spell",
          "edge_12_spell_rain_of_fire_spell_flame_burst_free_cast",
          "edge_144_spell_furnace_of_sorcery_spell_flame_burst_gets_learned_spell",
          "edge_145_spell_furnace_of_sorcery_spell_flame_burst_gets_learned_spell",
          "edge_147_spell_furnace_of_sorcery_spell_flame_burst_grants_minion_spell"
        ],
        "outgoingEdges": []
      },
      "spell_flame_gate": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_36_spell_flame_gate_spell_eye_of_fire_grants_minion_spell"
        ]
      },
      "spell_flesh_fiend": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_170_spell_flesh_fiend_spell_lumbriogenesis_grants_minion_spell"
        ]
      },
      "spell_floating_eye": {
        "chains": [
          "chain_28_mystic_vision_floating_eye_petrify",
          "chain_34_ritual_of_the_opening_eye_floating_eye_petrify"
        ],
        "incomingEdges": [
          "edge_54_spell_mystic_vision_spell_floating_eye_gets_learned_spell",
          "edge_55_spell_mystic_vision_spell_floating_eye_gets_learned_spell",
          "edge_56_spell_mystic_vision_spell_floating_eye_free_cast",
          "edge_190_spell_ritual_of_the_opening_eye_spell_floating_eye_deferred_cast",
          "edge_191_spell_ritual_of_the_opening_eye_spell_floating_eye_gets_learned_spell",
          "edge_192_spell_ritual_of_the_opening_eye_spell_floating_eye_gets_learned_spell",
          "edge_193_spell_ritual_of_the_opening_eye_spell_floating_eye_gets_learned_spell",
          "edge_194_spell_ritual_of_the_opening_eye_spell_floating_eye_free_cast",
          "edge_195_spell_ritual_of_the_opening_eye_spell_floating_eye_free_cast"
        ],
        "outgoingEdges": [
          "edge_82_spell_floating_eye_spell_petrify_grants_minion_spell"
        ]
      },
      "spell_flock_of_eagles": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_113_spell_flock_of_eagles_spell_thunder_strike_grants_minion_spell"
        ]
      },
      "spell_freeze": {
        "chains": [
          "chain_9_rain_of_thunderbolts_iceball_freeze"
        ],
        "incomingEdges": [
          "edge_88_spell_fae_court_spell_freeze_grants_minion_spell",
          "edge_121_spell_iceball_spell_freeze_free_cast",
          "edge_122_spell_iceball_spell_freeze_gets_learned_spell"
        ],
        "outgoingEdges": []
      },
      "spell_frostfire_hydra": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_furnace_of_sorcery": {
        "chains": [
          "chain_39_furnace_of_sorcery_magic_missile_magic_missile"
        ],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_144_spell_furnace_of_sorcery_spell_flame_burst_gets_learned_spell",
          "edge_145_spell_furnace_of_sorcery_spell_flame_burst_gets_learned_spell",
          "edge_146_spell_furnace_of_sorcery_spell_magic_missile_grants_minion_spell",
          "edge_147_spell_furnace_of_sorcery_spell_flame_burst_grants_minion_spell"
        ]
      },
      "spell_ghostball": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_giant_bear": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_goatia_offering": {
        "chains": [],
        "incomingEdges": [
          "edge_171_spell_horde_of_halfmen_spell_goatia_offering_gets_learned_spell"
        ],
        "outgoingEdges": []
      },
      "spell_gold_drake": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_115_spell_gold_drake_spell_healing_light_grants_minion_spell"
        ]
      },
      "spell_golden_skull": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_148_spell_golden_skull_spell_wheel_of_death_grants_minion_spell",
          "edge_149_spell_golden_skull_spell_bloodshift_grants_minion_spell",
          "edge_150_spell_golden_skull_spell_wheel_of_death_grants_minion_spell",
          "edge_151_spell_golden_skull_spell_bloodshift_grants_minion_spell"
        ]
      },
      "spell_healing_light": {
        "chains": [],
        "incomingEdges": [
          "edge_83_spell_blue_lion_spell_healing_light_grants_minion_spell",
          "edge_84_spell_blue_lion_spell_healing_light_grants_minion_spell",
          "edge_115_spell_gold_drake_spell_healing_light_grants_minion_spell"
        ],
        "outgoingEdges": []
      },
      "spell_heaven_s_wrath": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_108_spell_heaven_s_wrath_spell_seal_fate_gets_learned_spell",
          "edge_109_spell_heaven_s_wrath_spell_seal_fate_gets_learned_spell"
        ]
      },
      "spell_heavenly_blast": {
        "chains": [
          "chain_5_earthen_passage_earthen_sentinel_heavenly_blast_immolate",
          "chain_22_rod_of_heaven_s_assault_heavenly_blast_immolate",
          "chain_33_earthen_passage_earthen_sentinel_heavenly_blast",
          "chain_37_earthen_sentinel_heavenly_blast_immolate"
        ],
        "incomingEdges": [
          "edge_70_spell_earthen_sentinel_spell_heavenly_blast_grants_minion_spell",
          "edge_211_equipment_rod_of_heaven_s_assault_spell_heavenly_blast_gets_learned_spell",
          "edge_212_equipment_rod_of_heaven_s_assault_spell_heavenly_blast_gets_learned_spell",
          "edge_213_equipment_rod_of_heaven_s_assault_spell_heavenly_blast_free_cast"
        ],
        "outgoingEdges": [
          "edge_97_spell_heavenly_blast_spell_immolate_free_cast",
          "edge_98_spell_heavenly_blast_spell_immolate_gets_learned_spell"
        ]
      },
      "spell_heavenly_idol": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_114_spell_heavenly_idol_spell_suspend_mortality_grants_minion_spell"
        ]
      },
      "spell_holy_fire": {
        "chains": [
          "chain_20_ritual_of_revelation_holy_fire_blazerip",
          "chain_21_ritual_of_revelation_holy_fire_call_seraph"
        ],
        "incomingEdges": [
          "edge_160_ritual_of_revelation_spell_holy_fire_gets_learned_spell",
          "edge_161_ritual_of_revelation_spell_holy_fire_gets_learned_spell",
          "edge_162_ritual_of_revelation_spell_holy_fire_free_cast"
        ],
        "outgoingEdges": [
          "edge_99_spell_holy_fire_spell_blazerip_gets_learned_spell",
          "edge_100_spell_holy_fire_spell_blazerip_gets_learned_spell",
          "edge_101_spell_holy_fire_spell_blazerip_gets_learned_spell",
          "edge_102_spell_holy_fire_spell_blazerip_gets_learned_spell",
          "edge_103_spell_holy_fire_spell_blazerip_free_cast",
          "edge_104_spell_holy_fire_spell_call_seraph_gets_learned_spell",
          "edge_105_spell_holy_fire_spell_call_seraph_gets_learned_spell",
          "edge_106_spell_holy_fire_spell_call_seraph_free_cast"
        ]
      },
      "spell_horde_of_halfmen": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_171_spell_horde_of_halfmen_spell_goatia_offering_gets_learned_spell"
        ]
      },
      "spell_hungry_maw": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_ice_drake": {
        "chains": [
          "chain_31_ice_vortex_ice_drake_death_chill"
        ],
        "incomingEdges": [
          "edge_132_spell_ice_vortex_spell_ice_drake_gets_learned_spell",
          "edge_133_spell_ice_vortex_spell_ice_drake_gets_learned_spell",
          "edge_134_spell_ice_vortex_spell_ice_drake_free_cast"
        ],
        "outgoingEdges": [
          "edge_60_spell_ice_drake_spell_death_chill_grants_minion_spell"
        ]
      },
      "spell_ice_phoenix": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_123_spell_ice_phoenix_spell_regeneration_aura_grants_minion_spell"
        ]
      },
      "spell_ice_vortex": {
        "chains": [
          "chain_31_ice_vortex_ice_drake_death_chill"
        ],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_132_spell_ice_vortex_spell_ice_drake_gets_learned_spell",
          "edge_133_spell_ice_vortex_spell_ice_drake_gets_learned_spell",
          "edge_134_spell_ice_vortex_spell_ice_drake_free_cast"
        ]
      },
      "spell_iceball": {
        "chains": [
          "chain_9_rain_of_thunderbolts_iceball_freeze"
        ],
        "incomingEdges": [
          "edge_21_spell_rain_of_thunderbolts_spell_iceball_gets_learned_spell",
          "edge_22_spell_rain_of_thunderbolts_spell_iceball_gets_learned_spell",
          "edge_24_spell_rain_of_thunderbolts_spell_iceball_free_cast"
        ],
        "outgoingEdges": [
          "edge_121_spell_iceball_spell_freeze_free_cast",
          "edge_122_spell_iceball_spell_freeze_gets_learned_spell"
        ]
      },
      "spell_icicle": {
        "chains": [],
        "incomingEdges": [
          "edge_154_spell_wyrm_eggs_spell_icicle_grants_minion_spell"
        ],
        "outgoingEdges": []
      },
      "spell_immolate": {
        "chains": [
          "chain_5_earthen_passage_earthen_sentinel_heavenly_blast_immolate",
          "chain_22_rod_of_heaven_s_assault_heavenly_blast_immolate",
          "chain_37_earthen_sentinel_heavenly_blast_immolate"
        ],
        "incomingEdges": [
          "edge_97_spell_heavenly_blast_spell_immolate_free_cast",
          "edge_98_spell_heavenly_blast_spell_immolate_gets_learned_spell"
        ],
        "outgoingEdges": []
      },
      "spell_imp_swarm": {
        "chains": [],
        "incomingEdges": [
          "edge_52_spell_imp_swarm_spell_imp_swarm_gets_learned_spell",
          "edge_53_spell_imp_swarm_spell_imp_swarm_gets_learned_spell"
        ],
        "outgoingEdges": [
          "edge_52_spell_imp_swarm_spell_imp_swarm_gets_learned_spell",
          "edge_53_spell_imp_swarm_spell_imp_swarm_gets_learned_spell"
        ]
      },
      "spell_invoke_savagery": {
        "chains": [],
        "incomingEdges": [
          "edge_71_spell_invoke_savagery_spell_invoke_savagery_gets_learned_spell",
          "edge_72_spell_invoke_savagery_spell_invoke_savagery_gets_learned_spell",
          "edge_73_spell_invoke_savagery_spell_invoke_savagery_free_cast"
        ],
        "outgoingEdges": [
          "edge_71_spell_invoke_savagery_spell_invoke_savagery_gets_learned_spell",
          "edge_72_spell_invoke_savagery_spell_invoke_savagery_gets_learned_spell",
          "edge_73_spell_invoke_savagery_spell_invoke_savagery_free_cast"
        ]
      },
      "spell_ion_tentacles": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_ironize": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_knightly_oath": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_116_spell_knightly_oath_spell_armageddon_blade_gets_learned_spell"
        ]
      },
      "spell_leghead": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_lifedrain": {
        "chains": [],
        "incomingEdges": [
          "edge_119_spell_spider_queen_spell_lifedrain_grants_minion_spell",
          "edge_120_spell_spider_queen_spell_lifedrain_grants_minion_spell"
        ],
        "outgoingEdges": []
      },
      "spell_lightning_bolt": {
        "chains": [
          "chain_6_volcanic_eruption_rain_of_fire_lightning_bolt_lightning_bolt",
          "chain_14_volcanic_eruption_rain_of_fire_lightning_bolt"
        ],
        "incomingEdges": [
          "edge_10_spell_rain_of_fire_spell_lightning_bolt_gets_learned_spell",
          "edge_11_spell_rain_of_fire_spell_lightning_bolt_gets_learned_spell",
          "edge_15_spell_rain_of_fire_spell_lightning_bolt_free_cast",
          "edge_27_spell_lightning_bolt_spell_lightning_bolt_grants_minion_spell",
          "edge_47_spell_watcher_form_spell_lightning_bolt_gets_learned_spell",
          "edge_142_spell_faehaunt_garden_spell_lightning_bolt_grants_minion_spell"
        ],
        "outgoingEdges": [
          "edge_27_spell_lightning_bolt_spell_lightning_bolt_grants_minion_spell"
        ]
      },
      "spell_lightning_form": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_lightning_halo": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_lightning_spire": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_lightning_storm": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_lumbriogenesis": {
        "chains": [],
        "incomingEdges": [
          "edge_170_spell_flesh_fiend_spell_lumbriogenesis_grants_minion_spell"
        ],
        "outgoingEdges": []
      },
      "spell_magic_missile": {
        "chains": [
          "chain_0_stormbrood_trickshoes_blink_disperse_magic_missile_magic_missile",
          "chain_1_blink_disperse_magic_missile_magic_missile",
          "chain_8_stormbrood_trickshoes_blink_disperse_magic_missile",
          "chain_10_blink_disperse_magic_missile",
          "chain_11_disperse_magic_missile_magic_missile",
          "chain_36_void_drake_magic_missile_magic_missile",
          "chain_39_furnace_of_sorcery_magic_missile_magic_missile"
        ],
        "incomingEdges": [
          "edge_37_spell_disperse_spell_magic_missile_gets_learned_spell",
          "edge_38_spell_disperse_spell_magic_missile_gets_learned_spell",
          "edge_39_spell_disperse_spell_magic_missile_free_cast",
          "edge_59_spell_void_drake_spell_magic_missile_grants_minion_spell",
          "edge_74_spell_magic_missile_spell_magic_missile_free_cast",
          "edge_146_spell_furnace_of_sorcery_spell_magic_missile_grants_minion_spell"
        ],
        "outgoingEdges": [
          "edge_74_spell_magic_missile_spell_magic_missile_free_cast"
        ]
      },
      "spell_magnetize": {
        "chains": [],
        "incomingEdges": [
          "edge_220_equipment_the_north_pole_spell_magnetize_gets_learned_spell",
          "edge_221_equipment_the_north_pole_spell_magnetize_gets_learned_spell",
          "edge_222_equipment_the_north_pole_spell_magnetize_free_cast"
        ],
        "outgoingEdges": []
      },
      "spell_mass_calcification": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_melt": {
        "chains": [],
        "incomingEdges": [
          "edge_76_spell_melt_spell_melt_gets_learned_spell",
          "edge_77_spell_melt_spell_melt_gets_learned_spell",
          "edge_78_spell_melt_spell_melt_deferred_cast"
        ],
        "outgoingEdges": [
          "edge_76_spell_melt_spell_melt_gets_learned_spell",
          "edge_77_spell_melt_spell_melt_gets_learned_spell",
          "edge_78_spell_melt_spell_melt_deferred_cast"
        ]
      },
      "spell_mercurize": {
        "chains": [],
        "incomingEdges": [
          "edge_140_spell_mercurize_spell_mercurize_gets_learned_spell",
          "edge_141_spell_mercurize_spell_mercurize_gets_learned_spell",
          "edge_223_equipment_quicksilver_armor_spell_mercurize_gets_learned_spell",
          "edge_224_equipment_quicksilver_armor_spell_mercurize_gets_learned_spell",
          "edge_225_equipment_quicksilver_armor_spell_mercurize_free_cast"
        ],
        "outgoingEdges": [
          "edge_140_spell_mercurize_spell_mercurize_gets_learned_spell",
          "edge_141_spell_mercurize_spell_mercurize_gets_learned_spell"
        ]
      },
      "spell_miasma": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_184_spell_miasma_spell_rot_gaze_free_cast",
          "edge_185_spell_miasma_spell_rot_gaze_gets_learned_spell"
        ]
      },
      "spell_moon_glaive": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_multicast": {
        "chains": [],
        "incomingEdges": [
          "edge_85_spell_multicast_spell_multicast_free_cast",
          "edge_86_spell_multicast_spell_multicast_gets_learned_spell"
        ],
        "outgoingEdges": [
          "edge_85_spell_multicast_spell_multicast_free_cast",
          "edge_86_spell_multicast_spell_multicast_gets_learned_spell"
        ]
      },
      "spell_mystic_power": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_mystic_vision": {
        "chains": [
          "chain_28_mystic_vision_floating_eye_petrify"
        ],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_54_spell_mystic_vision_spell_floating_eye_gets_learned_spell",
          "edge_55_spell_mystic_vision_spell_floating_eye_gets_learned_spell",
          "edge_56_spell_mystic_vision_spell_floating_eye_free_cast"
        ]
      },
      "spell_night_hag": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_158_spell_night_hag_spell_bone_spear_grants_minion_spell",
          "edge_159_spell_night_hag_spell_nightmare_aura_grants_minion_spell"
        ]
      },
      "spell_nightmare_aura": {
        "chains": [],
        "incomingEdges": [
          "edge_159_spell_night_hag_spell_nightmare_aura_grants_minion_spell",
          "edge_176_spell_summon_bone_knights_spell_nightmare_aura_gets_learned_spell",
          "edge_177_spell_summon_bone_knights_spell_nightmare_aura_gets_learned_spell"
        ],
        "outgoingEdges": []
      },
      "spell_orb_of_anima": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_orb_of_assimilation": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_orb_of_night": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_orb_of_unraveling": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_pain_mirror": {
        "chains": [],
        "incomingEdges": [
          "edge_239_component_blood_basin_spell_pain_mirror_free_cast",
          "edge_240_component_blood_basin_spell_pain_mirror_gets_learned_spell"
        ],
        "outgoingEdges": []
      },
      "spell_permanence": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_petrification_aura": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_petrify": {
        "chains": [
          "chain_28_mystic_vision_floating_eye_petrify",
          "chain_34_ritual_of_the_opening_eye_floating_eye_petrify"
        ],
        "incomingEdges": [
          "edge_82_spell_floating_eye_spell_petrify_grants_minion_spell",
          "edge_202_equipment_basilisk_scale_armor_spell_petrify_gets_learned_spell",
          "edge_203_equipment_basilisk_scale_armor_spell_petrify_gets_learned_spell",
          "edge_204_equipment_basilisk_scale_armor_spell_petrify_free_cast"
        ],
        "outgoingEdges": []
      },
      "spell_pillar_of_fire": {
        "chains": [
          "chain_18_wall_of_flame_pillar_of_fire_annihilate"
        ],
        "incomingEdges": [
          "edge_181_spell_wall_of_flame_spell_pillar_of_fire_gets_learned_spell",
          "edge_182_spell_wall_of_flame_spell_pillar_of_fire_gets_learned_spell",
          "edge_183_spell_wall_of_flame_spell_pillar_of_fire_free_cast"
        ],
        "outgoingEdges": [
          "edge_43_spell_pillar_of_fire_spell_annihilate_gets_learned_spell",
          "edge_44_spell_pillar_of_fire_spell_annihilate_gets_learned_spell",
          "edge_45_spell_pillar_of_fire_spell_annihilate_free_cast"
        ]
      },
      "spell_poison_sting": {
        "chains": [
          "chain_32_earthen_passage_earthen_sentinel_poison_sting"
        ],
        "incomingEdges": [
          "edge_69_spell_earthen_sentinel_spell_poison_sting_grants_minion_spell"
        ],
        "outgoingEdges": []
      },
      "spell_prismatic_beam": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_prison_of_thorns": {
        "chains": [],
        "incomingEdges": [
          "edge_237_component_dreamthorn_vine_spell_prison_of_thorns_free_cast",
          "edge_238_component_dreamthorn_vine_spell_prison_of_thorns_gets_learned_spell"
        ],
        "outgoingEdges": []
      },
      "spell_psychic_seedling": {
        "chains": [],
        "incomingEdges": [
          "edge_87_spell_fae_court_spell_psychic_seedling_grants_minion_spell",
          "edge_90_spell_fae_court_spell_psychic_seedling_grants_minion_spell"
        ],
        "outgoingEdges": []
      },
      "spell_purity": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_pyrostatic_curse": {
        "chains": [],
        "incomingEdges": [
          "edge_135_spell_pyrostatic_curse_spell_pyrostatic_curse_gets_learned_spell",
          "edge_136_spell_pyrostatic_curse_spell_pyrostatic_curse_gets_learned_spell",
          "edge_137_spell_pyrostatic_curse_spell_pyrostatic_curse_deferred_cast",
          "edge_138_spell_pyrostatic_curse_spell_pyrostatic_curse_free_cast",
          "edge_139_spell_pyrostatic_curse_spell_pyrostatic_curse_gets_learned_spell"
        ],
        "outgoingEdges": [
          "edge_135_spell_pyrostatic_curse_spell_pyrostatic_curse_gets_learned_spell",
          "edge_136_spell_pyrostatic_curse_spell_pyrostatic_curse_gets_learned_spell",
          "edge_137_spell_pyrostatic_curse_spell_pyrostatic_curse_deferred_cast",
          "edge_138_spell_pyrostatic_curse_spell_pyrostatic_curse_free_cast",
          "edge_139_spell_pyrostatic_curse_spell_pyrostatic_curse_gets_learned_spell"
        ]
      },
      "spell_pyrostatic_pulse": {
        "chains": [],
        "incomingEdges": [
          "edge_49_spell_watcher_form_spell_pyrostatic_pulse_gets_learned_spell"
        ],
        "outgoingEdges": []
      },
      "spell_rain_of_fire": {
        "chains": [
          "chain_3_volcanic_eruption_rain_of_fire_fire_drake_blazerip",
          "chain_6_volcanic_eruption_rain_of_fire_lightning_bolt_lightning_bolt",
          "chain_12_volcanic_eruption_rain_of_fire_flame_burst",
          "chain_13_volcanic_eruption_rain_of_fire_annihilate",
          "chain_14_volcanic_eruption_rain_of_fire_lightning_bolt",
          "chain_15_volcanic_eruption_rain_of_fire_fire_drake",
          "chain_19_volcanic_eruption_rain_of_fire_fireball",
          "chain_26_rain_of_fire_fire_drake_blazerip"
        ],
        "incomingEdges": [
          "edge_66_spell_volcanic_eruption_spell_rain_of_fire_free_cast",
          "edge_67_spell_volcanic_eruption_spell_rain_of_fire_gets_learned_spell"
        ],
        "outgoingEdges": [
          "edge_0_spell_rain_of_fire_spell_fireball_gets_learned_spell",
          "edge_1_spell_rain_of_fire_spell_fireball_gets_learned_spell",
          "edge_2_spell_rain_of_fire_spell_fireball_gets_learned_spell",
          "edge_3_spell_rain_of_fire_spell_fireball_gets_learned_spell",
          "edge_4_spell_rain_of_fire_spell_flame_burst_gets_learned_spell",
          "edge_5_spell_rain_of_fire_spell_flame_burst_gets_learned_spell",
          "edge_6_spell_rain_of_fire_spell_annihilate_gets_learned_spell",
          "edge_7_spell_rain_of_fire_spell_annihilate_gets_learned_spell",
          "edge_8_spell_rain_of_fire_spell_fire_drake_gets_learned_spell",
          "edge_9_spell_rain_of_fire_spell_fire_drake_gets_learned_spell",
          "edge_10_spell_rain_of_fire_spell_lightning_bolt_gets_learned_spell",
          "edge_11_spell_rain_of_fire_spell_lightning_bolt_gets_learned_spell",
          "edge_12_spell_rain_of_fire_spell_flame_burst_free_cast",
          "edge_13_spell_rain_of_fire_spell_fireball_free_cast",
          "edge_14_spell_rain_of_fire_spell_annihilate_free_cast",
          "edge_15_spell_rain_of_fire_spell_lightning_bolt_free_cast",
          "edge_16_spell_rain_of_fire_spell_fire_drake_free_cast"
        ]
      },
      "spell_rain_of_thunderbolts": {
        "chains": [
          "chain_2_rain_of_thunderbolts_storm_drake_chain_lightning_fireball",
          "chain_9_rain_of_thunderbolts_iceball_freeze",
          "chain_27_rain_of_thunderbolts_storm_drake_chain_lightning"
        ],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_17_spell_rain_of_thunderbolts_spell_thunder_strike_gets_learned_spell",
          "edge_18_spell_rain_of_thunderbolts_spell_thunder_strike_gets_learned_spell",
          "edge_19_spell_rain_of_thunderbolts_spell_storm_drake_gets_learned_spell",
          "edge_20_spell_rain_of_thunderbolts_spell_storm_drake_gets_learned_spell",
          "edge_21_spell_rain_of_thunderbolts_spell_iceball_gets_learned_spell",
          "edge_22_spell_rain_of_thunderbolts_spell_iceball_gets_learned_spell",
          "edge_23_spell_rain_of_thunderbolts_spell_thunder_strike_free_cast",
          "edge_24_spell_rain_of_thunderbolts_spell_iceball_free_cast",
          "edge_25_spell_rain_of_thunderbolts_spell_thunder_strike_free_cast",
          "edge_26_spell_rain_of_thunderbolts_spell_storm_drake_free_cast"
        ]
      },
      "spell_rain_storm": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_regeneration_aura": {
        "chains": [],
        "incomingEdges": [
          "edge_123_spell_ice_phoenix_spell_regeneration_aura_grants_minion_spell"
        ],
        "outgoingEdges": []
      },
      "spell_ride_drake": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_178_spell_ride_drake_spell_dragon_breath_gets_learned_spell",
          "edge_179_spell_ride_drake_spell_dragon_breath_gets_learned_spell",
          "edge_180_spell_ride_drake_spell_dragon_breath_free_cast"
        ]
      },
      "spell_ritual_of_flying_daggers": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_196_spell_ritual_of_flying_daggers_spell_summon_blade_gets_learned_spell",
          "edge_197_spell_ritual_of_flying_daggers_spell_summon_blade_gets_learned_spell",
          "edge_198_spell_ritual_of_flying_daggers_spell_summon_blade_free_cast"
        ]
      },
      "spell_ritual_of_the_opening_eye": {
        "chains": [
          "chain_34_ritual_of_the_opening_eye_floating_eye_petrify"
        ],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_190_spell_ritual_of_the_opening_eye_spell_floating_eye_deferred_cast",
          "edge_191_spell_ritual_of_the_opening_eye_spell_floating_eye_gets_learned_spell",
          "edge_192_spell_ritual_of_the_opening_eye_spell_floating_eye_gets_learned_spell",
          "edge_193_spell_ritual_of_the_opening_eye_spell_floating_eye_gets_learned_spell",
          "edge_194_spell_ritual_of_the_opening_eye_spell_floating_eye_free_cast",
          "edge_195_spell_ritual_of_the_opening_eye_spell_floating_eye_free_cast"
        ]
      },
      "spell_rot_gaze": {
        "chains": [],
        "incomingEdges": [
          "edge_184_spell_miasma_spell_rot_gaze_free_cast",
          "edge_185_spell_miasma_spell_rot_gaze_gets_learned_spell"
        ],
        "outgoingEdges": []
      },
      "spell_ruinous_offering": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_sanction": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_scourge": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_seal_fate": {
        "chains": [],
        "incomingEdges": [
          "edge_108_spell_heaven_s_wrath_spell_seal_fate_gets_learned_spell",
          "edge_109_spell_heaven_s_wrath_spell_seal_fate_gets_learned_spell",
          "edge_199_spell_dread_lash_spell_seal_fate_gets_learned_spell",
          "edge_200_spell_dread_lash_spell_seal_fate_gets_learned_spell",
          "edge_201_spell_dread_lash_spell_seal_fate_free_cast",
          "edge_208_equipment_boots_of_imminent_doom_spell_seal_fate_gets_learned_spell",
          "edge_209_equipment_boots_of_imminent_doom_spell_seal_fate_gets_learned_spell",
          "edge_210_equipment_boots_of_imminent_doom_spell_seal_fate_free_cast",
          "edge_230_component_cursed_seal_spell_seal_fate_gets_learned_spell",
          "edge_231_component_cursed_seal_spell_seal_fate_gets_learned_spell",
          "edge_232_component_cursed_seal_spell_seal_fate_free_cast"
        ],
        "outgoingEdges": []
      },
      "spell_searing_seal": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_shadow_hex": {
        "chains": [],
        "incomingEdges": [
          "edge_40_spell_darkness_spell_shadow_hex_gets_learned_spell",
          "edge_41_spell_darkness_spell_shadow_hex_gets_learned_spell",
          "edge_42_spell_darkness_spell_shadow_hex_free_cast"
        ],
        "outgoingEdges": []
      },
      "spell_shatter": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_shrapnel_blast": {
        "chains": [],
        "incomingEdges": [
          "edge_130_spell_earthquake_spell_shrapnel_blast_gets_learned_spell"
        ],
        "outgoingEdges": []
      },
      "spell_silver_spear": {
        "chains": [],
        "incomingEdges": [
          "edge_48_spell_watcher_form_spell_silver_spear_gets_learned_spell"
        ],
        "outgoingEdges": []
      },
      "spell_siphon_shields": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_slime_drake": {
        "chains": [
          "chain_38_slime_drake_slimeshot_slimify"
        ],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_131_spell_slime_drake_spell_slimeshot_grants_minion_spell"
        ]
      },
      "spell_slime_form": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_slimeshot": {
        "chains": [
          "chain_38_slime_drake_slimeshot_slimify"
        ],
        "incomingEdges": [
          "edge_131_spell_slime_drake_spell_slimeshot_grants_minion_spell"
        ],
        "outgoingEdges": [
          "edge_117_spell_slimeshot_spell_slimify_free_cast",
          "edge_118_spell_slimeshot_spell_slimify_gets_learned_spell"
        ]
      },
      "spell_slimify": {
        "chains": [
          "chain_38_slime_drake_slimeshot_slimify"
        ],
        "incomingEdges": [
          "edge_117_spell_slimeshot_spell_slimify_free_cast",
          "edge_118_spell_slimeshot_spell_slimify_gets_learned_spell"
        ],
        "outgoingEdges": []
      },
      "spell_soul_tax": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_soul_wind": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_spider_queen": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_119_spell_spider_queen_spell_lifedrain_grants_minion_spell",
          "edge_120_spell_spider_queen_spell_lifedrain_grants_minion_spell"
        ]
      },
      "spell_spikeball_factory": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_stampede_form": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_173_spell_stampede_form_spell_boiling_blood_free_cast",
          "edge_174_spell_stampede_form_spell_boiling_blood_gets_learned_spell"
        ]
      },
      "spell_stonewake": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_storm_burst": {
        "chains": [],
        "incomingEdges": [
          "edge_28_spell_storm_walk_spell_storm_burst_free_cast",
          "edge_29_spell_storm_walk_spell_storm_burst_gets_learned_spell"
        ],
        "outgoingEdges": []
      },
      "spell_storm_drake": {
        "chains": [
          "chain_2_rain_of_thunderbolts_storm_drake_chain_lightning_fireball",
          "chain_27_rain_of_thunderbolts_storm_drake_chain_lightning",
          "chain_35_storm_drake_chain_lightning_fireball"
        ],
        "incomingEdges": [
          "edge_19_spell_rain_of_thunderbolts_spell_storm_drake_gets_learned_spell",
          "edge_20_spell_rain_of_thunderbolts_spell_storm_drake_gets_learned_spell",
          "edge_26_spell_rain_of_thunderbolts_spell_storm_drake_free_cast"
        ],
        "outgoingEdges": [
          "edge_58_spell_storm_drake_spell_chain_lightning_grants_minion_spell"
        ]
      },
      "spell_storm_walk": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_28_spell_storm_walk_spell_storm_burst_free_cast",
          "edge_29_spell_storm_walk_spell_storm_burst_gets_learned_spell"
        ]
      },
      "spell_summon_blade": {
        "chains": [],
        "incomingEdges": [
          "edge_196_spell_ritual_of_flying_daggers_spell_summon_blade_gets_learned_spell",
          "edge_197_spell_ritual_of_flying_daggers_spell_summon_blade_gets_learned_spell",
          "edge_198_spell_ritual_of_flying_daggers_spell_summon_blade_free_cast"
        ],
        "outgoingEdges": []
      },
      "spell_summon_bone_knights": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_176_spell_summon_bone_knights_spell_nightmare_aura_gets_learned_spell",
          "edge_177_spell_summon_bone_knights_spell_nightmare_aura_gets_learned_spell"
        ]
      },
      "spell_summon_wizard": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_suspend_mortality": {
        "chains": [],
        "incomingEdges": [
          "edge_114_spell_heavenly_idol_spell_suspend_mortality_grants_minion_spell"
        ],
        "outgoingEdges": []
      },
      "spell_teleport": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_temporal_transfusion": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_the_restless_dead": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_thunder_strike": {
        "chains": [],
        "incomingEdges": [
          "edge_17_spell_rain_of_thunderbolts_spell_thunder_strike_gets_learned_spell",
          "edge_18_spell_rain_of_thunderbolts_spell_thunder_strike_gets_learned_spell",
          "edge_23_spell_rain_of_thunderbolts_spell_thunder_strike_free_cast",
          "edge_25_spell_rain_of_thunderbolts_spell_thunder_strike_free_cast",
          "edge_33_spell_blink_spell_thunder_strike_gets_learned_spell",
          "edge_34_spell_blink_spell_thunder_strike_gets_learned_spell",
          "edge_35_spell_blink_spell_thunder_strike_free_cast",
          "edge_113_spell_flock_of_eagles_spell_thunder_strike_grants_minion_spell"
        ],
        "outgoingEdges": []
      },
      "spell_torrent": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_touch_of_death": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_toxin_burst": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_twilight_gaze": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_underworld_passage": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_vampiric_gaze": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_vampiricism": {
        "chains": [
          "chain_25_plasmic_distributor_vampiricism_dominate_dominate"
        ],
        "incomingEdges": [
          "edge_226_equipment_plasmic_distributor_spell_vampiricism_free_cast",
          "edge_227_equipment_plasmic_distributor_spell_vampiricism_gets_learned_spell"
        ],
        "outgoingEdges": [
          "edge_68_spell_vampiricism_spell_dominate_grants_minion_spell"
        ]
      },
      "spell_void_beam": {
        "chains": [],
        "incomingEdges": [
          "edge_50_spell_watcher_form_spell_void_beam_gets_learned_spell",
          "edge_143_spell_faehaunt_garden_spell_void_beam_grants_minion_spell",
          "edge_214_equipment_crown_of_devastation_spell_void_beam_gets_learned_spell",
          "edge_215_equipment_crown_of_devastation_spell_void_beam_gets_learned_spell",
          "edge_216_equipment_crown_of_devastation_spell_void_beam_free_cast"
        ],
        "outgoingEdges": []
      },
      "spell_void_drake": {
        "chains": [
          "chain_36_void_drake_magic_missile_magic_missile"
        ],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_59_spell_void_drake_spell_magic_missile_grants_minion_spell"
        ]
      },
      "spell_volcanic_eruption": {
        "chains": [
          "chain_3_volcanic_eruption_rain_of_fire_fire_drake_blazerip",
          "chain_6_volcanic_eruption_rain_of_fire_lightning_bolt_lightning_bolt",
          "chain_12_volcanic_eruption_rain_of_fire_flame_burst",
          "chain_13_volcanic_eruption_rain_of_fire_annihilate",
          "chain_14_volcanic_eruption_rain_of_fire_lightning_bolt",
          "chain_15_volcanic_eruption_rain_of_fire_fire_drake",
          "chain_19_volcanic_eruption_rain_of_fire_fireball"
        ],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_66_spell_volcanic_eruption_spell_rain_of_fire_free_cast",
          "edge_67_spell_volcanic_eruption_spell_rain_of_fire_gets_learned_spell"
        ]
      },
      "spell_wall_of_flame": {
        "chains": [
          "chain_18_wall_of_flame_pillar_of_fire_annihilate"
        ],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_181_spell_wall_of_flame_spell_pillar_of_fire_gets_learned_spell",
          "edge_182_spell_wall_of_flame_spell_pillar_of_fire_gets_learned_spell",
          "edge_183_spell_wall_of_flame_spell_pillar_of_fire_free_cast"
        ]
      },
      "spell_wall_of_ice": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_watcher_form": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_47_spell_watcher_form_spell_lightning_bolt_gets_learned_spell",
          "edge_48_spell_watcher_form_spell_silver_spear_gets_learned_spell",
          "edge_49_spell_watcher_form_spell_pyrostatic_pulse_gets_learned_spell",
          "edge_50_spell_watcher_form_spell_void_beam_gets_learned_spell",
          "edge_51_spell_watcher_form_spell_chain_lightning_gets_learned_spell"
        ]
      },
      "spell_wave_of_dread": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_wheel_of_death": {
        "chains": [],
        "incomingEdges": [
          "edge_64_spell_wheel_of_death_spell_wheel_of_death_free_cast",
          "edge_65_spell_wheel_of_death_spell_wheel_of_death_gets_learned_spell",
          "edge_148_spell_golden_skull_spell_wheel_of_death_grants_minion_spell",
          "edge_150_spell_golden_skull_spell_wheel_of_death_grants_minion_spell",
          "edge_241_component_cursed_dice_spell_wheel_of_death_gets_learned_spell",
          "edge_242_component_cursed_dice_spell_wheel_of_death_gets_learned_spell",
          "edge_243_component_cursed_dice_spell_wheel_of_death_free_cast"
        ],
        "outgoingEdges": [
          "edge_64_spell_wheel_of_death_spell_wheel_of_death_free_cast",
          "edge_65_spell_wheel_of_death_spell_wheel_of_death_gets_learned_spell"
        ]
      },
      "spell_wizard_replica": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_wolf": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": []
      },
      "spell_wyrm_eggs": {
        "chains": [],
        "incomingEdges": [
          "edge_152_spell_wyrm_eggs_spell_wyrm_eggs_gets_learned_spell"
        ],
        "outgoingEdges": [
          "edge_152_spell_wyrm_eggs_spell_wyrm_eggs_gets_learned_spell",
          "edge_153_spell_wyrm_eggs_spell_fireball_grants_minion_spell",
          "edge_154_spell_wyrm_eggs_spell_icicle_grants_minion_spell"
        ]
      },
      "summon_rider": {
        "chains": [],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_172_summon_rider_spell_dominate_grants_minion_spell"
        ]
      },
      "word_of_ice": {
        "chains": [
          "chain_16_word_of_ice_chill_wind_blazerip"
        ],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_124_word_of_ice_spell_chill_wind_gets_learned_spell",
          "edge_125_word_of_ice_spell_chill_wind_gets_learned_spell",
          "edge_126_word_of_ice_spell_chill_wind_free_cast"
        ]
      },
      "word_of_undeath": {
        "chains": [
          "chain_29_word_of_undeath_dominate_dominate"
        ],
        "incomingEdges": [],
        "outgoingEdges": [
          "edge_79_word_of_undeath_spell_dominate_gets_learned_spell",
          "edge_80_word_of_undeath_spell_dominate_gets_learned_spell",
          "edge_81_word_of_undeath_spell_dominate_free_cast"
        ]
      }
    },
    "chains": [
      {
        "edgeIds": [
          "edge_205_equipment_stormbrood_trickshoes_spell_blink_grants_minion_spell",
          "edge_32_spell_blink_spell_disperse_free_cast",
          "edge_39_spell_disperse_spell_magic_missile_free_cast",
          "edge_74_spell_magic_missile_spell_magic_missile_free_cast"
        ],
        "entityIds": [
          "equipment_stormbrood_trickshoes",
          "spell_blink",
          "spell_disperse",
          "spell_magic_missile"
        ],
        "id": "chain_0_stormbrood_trickshoes_blink_disperse_magic_missile_magic_missile",
        "tags": [
          "Lightning",
          "Translocation",
          "Arcane",
          "Sorcery"
        ],
        "title": "Stormbrood Trickshoes -> Blink -> Disperse -> Magic Missile -> Magic Missile"
      },
      {
        "edgeIds": [
          "edge_32_spell_blink_spell_disperse_free_cast",
          "edge_39_spell_disperse_spell_magic_missile_free_cast",
          "edge_74_spell_magic_missile_spell_magic_missile_free_cast"
        ],
        "entityIds": [
          "spell_blink",
          "spell_disperse",
          "spell_magic_missile"
        ],
        "id": "chain_1_blink_disperse_magic_missile_magic_missile",
        "tags": [
          "Arcane",
          "Sorcery",
          "Translocation"
        ],
        "title": "Blink -> Disperse -> Magic Missile -> Magic Missile"
      },
      {
        "edgeIds": [
          "edge_26_spell_rain_of_thunderbolts_spell_storm_drake_free_cast",
          "edge_58_spell_storm_drake_spell_chain_lightning_grants_minion_spell",
          "edge_63_spell_chain_lightning_spell_fireball_free_cast"
        ],
        "entityIds": [
          "spell_rain_of_thunderbolts",
          "spell_storm_drake",
          "spell_chain_lightning",
          "spell_fireball"
        ],
        "id": "chain_2_rain_of_thunderbolts_storm_drake_chain_lightning_fireball",
        "tags": [
          "Lightning",
          "Sorcery",
          "Conjuration",
          "Dragon",
          "Fire"
        ],
        "title": "Rain of Thunderbolts -> Storm Drake -> Chain Lightning -> Fireball"
      },
      {
        "edgeIds": [
          "edge_66_spell_volcanic_eruption_spell_rain_of_fire_free_cast",
          "edge_16_spell_rain_of_fire_spell_fire_drake_free_cast",
          "edge_57_spell_fire_drake_spell_blazerip_grants_minion_spell"
        ],
        "entityIds": [
          "spell_volcanic_eruption",
          "spell_rain_of_fire",
          "spell_fire_drake",
          "spell_blazerip"
        ],
        "id": "chain_3_volcanic_eruption_rain_of_fire_fire_drake_blazerip",
        "tags": [
          "Fire",
          "Nature",
          "Sorcery",
          "Conjuration",
          "Dragon",
          "Arcane"
        ],
        "title": "Volcanic Eruption -> Rain of Fire -> Fire Drake -> Blazerip"
      },
      {
        "edgeIds": [
          "edge_168_ritual_of_revelation_spell_blinding_light_free_cast",
          "edge_112_spell_blinding_light_spell_choir_of_angels_free_cast",
          "edge_107_spell_choir_of_angels_spell_death_bolt_grants_minion_spell"
        ],
        "entityIds": [
          "ritual_of_revelation",
          "spell_blinding_light",
          "spell_choir_of_angels",
          "spell_death_bolt"
        ],
        "id": "chain_4_ritual_of_revelation_blinding_light_choir_of_angels_death_bolt",
        "tags": [
          "Holy",
          "Eye",
          "Sorcery",
          "Conjuration",
          "Dark"
        ],
        "title": "Ritual of Revelation -> Blinding Light -> Choir of Angels -> Death Bolt"
      },
      {
        "edgeIds": [
          "edge_188_spell_earthen_passage_spell_earthen_sentinel_free_cast",
          "edge_70_spell_earthen_sentinel_spell_heavenly_blast_grants_minion_spell",
          "edge_97_spell_heavenly_blast_spell_immolate_free_cast"
        ],
        "entityIds": [
          "spell_earthen_passage",
          "spell_earthen_sentinel",
          "spell_heavenly_blast",
          "spell_immolate"
        ],
        "id": "chain_5_earthen_passage_earthen_sentinel_heavenly_blast_immolate",
        "tags": [
          "Nature",
          "Sorcery",
          "Translocation",
          "Conjuration",
          "Holy",
          "Fire",
          "Enchantment"
        ],
        "title": "Earthen Passage -> Earthen Sentinel -> Heavenly Blast -> Immolate"
      },
      {
        "edgeIds": [
          "edge_66_spell_volcanic_eruption_spell_rain_of_fire_free_cast",
          "edge_15_spell_rain_of_fire_spell_lightning_bolt_free_cast",
          "edge_27_spell_lightning_bolt_spell_lightning_bolt_grants_minion_spell"
        ],
        "entityIds": [
          "spell_volcanic_eruption",
          "spell_rain_of_fire",
          "spell_lightning_bolt"
        ],
        "id": "chain_6_volcanic_eruption_rain_of_fire_lightning_bolt_lightning_bolt",
        "tags": [
          "Fire",
          "Nature",
          "Sorcery",
          "Lightning"
        ],
        "title": "Volcanic Eruption -> Rain of Fire -> Lightning Bolt -> Lightning Bolt"
      },
      {
        "edgeIds": [
          "edge_228_equipment_archangel_s_armor_spell_blinding_light_free_cast",
          "edge_112_spell_blinding_light_spell_choir_of_angels_free_cast",
          "edge_107_spell_choir_of_angels_spell_death_bolt_grants_minion_spell"
        ],
        "entityIds": [
          "equipment_archangel_s_armor",
          "spell_blinding_light",
          "spell_choir_of_angels",
          "spell_death_bolt"
        ],
        "id": "chain_7_archangel_s_armor_blinding_light_choir_of_angels_death_bolt",
        "tags": [
          "Holy",
          "Metallic",
          "Eye",
          "Sorcery",
          "Conjuration",
          "Dark"
        ],
        "title": "Archangel's Armor -> Blinding Light -> Choir of Angels -> Death Bolt"
      },
      {
        "edgeIds": [
          "edge_205_equipment_stormbrood_trickshoes_spell_blink_grants_minion_spell",
          "edge_32_spell_blink_spell_disperse_free_cast",
          "edge_39_spell_disperse_spell_magic_missile_free_cast"
        ],
        "entityIds": [
          "equipment_stormbrood_trickshoes",
          "spell_blink",
          "spell_disperse",
          "spell_magic_missile"
        ],
        "id": "chain_8_stormbrood_trickshoes_blink_disperse_magic_missile",
        "tags": [
          "Lightning",
          "Translocation",
          "Arcane",
          "Sorcery"
        ],
        "title": "Stormbrood Trickshoes -> Blink -> Disperse -> Magic Missile"
      },
      {
        "edgeIds": [
          "edge_24_spell_rain_of_thunderbolts_spell_iceball_free_cast",
          "edge_121_spell_iceball_spell_freeze_free_cast"
        ],
        "entityIds": [
          "spell_rain_of_thunderbolts",
          "spell_iceball",
          "spell_freeze"
        ],
        "id": "chain_9_rain_of_thunderbolts_iceball_freeze",
        "tags": [
          "Lightning",
          "Sorcery",
          "Ice",
          "Enchantment"
        ],
        "title": "Rain of Thunderbolts -> Iceball -> Freeze"
      },
      {
        "edgeIds": [
          "edge_32_spell_blink_spell_disperse_free_cast",
          "edge_39_spell_disperse_spell_magic_missile_free_cast"
        ],
        "entityIds": [
          "spell_blink",
          "spell_disperse",
          "spell_magic_missile"
        ],
        "id": "chain_10_blink_disperse_magic_missile",
        "tags": [
          "Arcane",
          "Sorcery",
          "Translocation"
        ],
        "title": "Blink -> Disperse -> Magic Missile"
      },
      {
        "edgeIds": [
          "edge_39_spell_disperse_spell_magic_missile_free_cast",
          "edge_74_spell_magic_missile_spell_magic_missile_free_cast"
        ],
        "entityIds": [
          "spell_disperse",
          "spell_magic_missile"
        ],
        "id": "chain_11_disperse_magic_missile_magic_missile",
        "tags": [
          "Arcane",
          "Sorcery",
          "Translocation"
        ],
        "title": "Disperse -> Magic Missile -> Magic Missile"
      },
      {
        "edgeIds": [
          "edge_66_spell_volcanic_eruption_spell_rain_of_fire_free_cast",
          "edge_12_spell_rain_of_fire_spell_flame_burst_free_cast"
        ],
        "entityIds": [
          "spell_volcanic_eruption",
          "spell_rain_of_fire",
          "spell_flame_burst"
        ],
        "id": "chain_12_volcanic_eruption_rain_of_fire_flame_burst",
        "tags": [
          "Fire",
          "Nature",
          "Sorcery"
        ],
        "title": "Volcanic Eruption -> Rain of Fire -> Flame Burst"
      },
      {
        "edgeIds": [
          "edge_66_spell_volcanic_eruption_spell_rain_of_fire_free_cast",
          "edge_14_spell_rain_of_fire_spell_annihilate_free_cast"
        ],
        "entityIds": [
          "spell_volcanic_eruption",
          "spell_rain_of_fire",
          "spell_annihilate"
        ],
        "id": "chain_13_volcanic_eruption_rain_of_fire_annihilate",
        "tags": [
          "Fire",
          "Nature",
          "Sorcery",
          "Chaos"
        ],
        "title": "Volcanic Eruption -> Rain of Fire -> Annihilate"
      },
      {
        "edgeIds": [
          "edge_66_spell_volcanic_eruption_spell_rain_of_fire_free_cast",
          "edge_15_spell_rain_of_fire_spell_lightning_bolt_free_cast"
        ],
        "entityIds": [
          "spell_volcanic_eruption",
          "spell_rain_of_fire",
          "spell_lightning_bolt"
        ],
        "id": "chain_14_volcanic_eruption_rain_of_fire_lightning_bolt",
        "tags": [
          "Fire",
          "Nature",
          "Sorcery",
          "Lightning"
        ],
        "title": "Volcanic Eruption -> Rain of Fire -> Lightning Bolt"
      },
      {
        "edgeIds": [
          "edge_66_spell_volcanic_eruption_spell_rain_of_fire_free_cast",
          "edge_16_spell_rain_of_fire_spell_fire_drake_free_cast"
        ],
        "entityIds": [
          "spell_volcanic_eruption",
          "spell_rain_of_fire",
          "spell_fire_drake"
        ],
        "id": "chain_15_volcanic_eruption_rain_of_fire_fire_drake",
        "tags": [
          "Fire",
          "Nature",
          "Sorcery",
          "Conjuration",
          "Dragon"
        ],
        "title": "Volcanic Eruption -> Rain of Fire -> Fire Drake"
      },
      {
        "edgeIds": [
          "edge_126_word_of_ice_spell_chill_wind_free_cast",
          "edge_129_spell_chill_wind_spell_blazerip_free_cast"
        ],
        "entityIds": [
          "word_of_ice",
          "spell_chill_wind",
          "spell_blazerip"
        ],
        "id": "chain_16_word_of_ice_chill_wind_blazerip",
        "tags": [
          "Ice",
          "Sorcery",
          "Arcane",
          "Fire"
        ],
        "title": "Word of Ice -> Chill Wind -> Blazerip"
      },
      {
        "edgeIds": [
          "edge_168_ritual_of_revelation_spell_blinding_light_free_cast",
          "edge_112_spell_blinding_light_spell_choir_of_angels_free_cast"
        ],
        "entityIds": [
          "ritual_of_revelation",
          "spell_blinding_light",
          "spell_choir_of_angels"
        ],
        "id": "chain_17_ritual_of_revelation_blinding_light_choir_of_angels",
        "tags": [
          "Holy",
          "Eye",
          "Sorcery",
          "Conjuration"
        ],
        "title": "Ritual of Revelation -> Blinding Light -> Choir of Angels"
      },
      {
        "edgeIds": [
          "edge_183_spell_wall_of_flame_spell_pillar_of_fire_free_cast",
          "edge_45_spell_pillar_of_fire_spell_annihilate_free_cast"
        ],
        "entityIds": [
          "spell_wall_of_flame",
          "spell_pillar_of_fire",
          "spell_annihilate"
        ],
        "id": "chain_18_wall_of_flame_pillar_of_fire_annihilate",
        "tags": [
          "Fire",
          "Sorcery",
          "Holy",
          "Chaos"
        ],
        "title": "Wall of Flame -> Pillar of Fire -> Annihilate"
      },
      {
        "edgeIds": [
          "edge_66_spell_volcanic_eruption_spell_rain_of_fire_free_cast",
          "edge_13_spell_rain_of_fire_spell_fireball_free_cast"
        ],
        "entityIds": [
          "spell_volcanic_eruption",
          "spell_rain_of_fire",
          "spell_fireball"
        ],
        "id": "chain_19_volcanic_eruption_rain_of_fire_fireball",
        "tags": [
          "Fire",
          "Nature",
          "Sorcery"
        ],
        "title": "Volcanic Eruption -> Rain of Fire -> Fireball"
      },
      {
        "edgeIds": [
          "edge_162_ritual_of_revelation_spell_holy_fire_free_cast",
          "edge_103_spell_holy_fire_spell_blazerip_free_cast"
        ],
        "entityIds": [
          "ritual_of_revelation",
          "spell_holy_fire",
          "spell_blazerip"
        ],
        "id": "chain_20_ritual_of_revelation_holy_fire_blazerip",
        "tags": [
          "Fire",
          "Holy",
          "Sorcery",
          "Arcane"
        ],
        "title": "Ritual of Revelation -> Holy Fire -> Blazerip"
      },
      {
        "edgeIds": [
          "edge_162_ritual_of_revelation_spell_holy_fire_free_cast",
          "edge_106_spell_holy_fire_spell_call_seraph_free_cast"
        ],
        "entityIds": [
          "ritual_of_revelation",
          "spell_holy_fire",
          "spell_call_seraph"
        ],
        "id": "chain_21_ritual_of_revelation_holy_fire_call_seraph",
        "tags": [
          "Fire",
          "Holy",
          "Sorcery",
          "Conjuration"
        ],
        "title": "Ritual of Revelation -> Holy Fire -> Call Seraph"
      },
      {
        "edgeIds": [
          "edge_213_equipment_rod_of_heaven_s_assault_spell_heavenly_blast_free_cast",
          "edge_97_spell_heavenly_blast_spell_immolate_free_cast"
        ],
        "entityIds": [
          "equipment_rod_of_heaven_s_assault",
          "spell_heavenly_blast",
          "spell_immolate"
        ],
        "id": "chain_22_rod_of_heaven_s_assault_heavenly_blast_immolate",
        "tags": [
          "Holy",
          "Sorcery",
          "Fire",
          "Enchantment"
        ],
        "title": "Rod of Heaven's Assault -> Heavenly Blast -> Immolate"
      },
      {
        "edgeIds": [
          "edge_228_equipment_archangel_s_armor_spell_blinding_light_free_cast",
          "edge_112_spell_blinding_light_spell_choir_of_angels_free_cast"
        ],
        "entityIds": [
          "equipment_archangel_s_armor",
          "spell_blinding_light",
          "spell_choir_of_angels"
        ],
        "id": "chain_23_archangel_s_armor_blinding_light_choir_of_angels",
        "tags": [
          "Holy",
          "Metallic",
          "Eye",
          "Sorcery",
          "Conjuration"
        ],
        "title": "Archangel's Armor -> Blinding Light -> Choir of Angels"
      },
      {
        "edgeIds": [
          "edge_235_component_fulminite_shard_spell_chain_lightning_free_cast",
          "edge_63_spell_chain_lightning_spell_fireball_free_cast"
        ],
        "entityIds": [
          "component_fulminite_shard",
          "spell_chain_lightning",
          "spell_fireball"
        ],
        "id": "chain_24_fulminite_shard_chain_lightning_fireball",
        "tags": [
          "Lightning",
          "Enchantment",
          "Sorcery",
          "Fire"
        ],
        "title": "Fulminite Shard -> Chain Lightning -> Fireball"
      },
      {
        "edgeIds": [
          "edge_226_equipment_plasmic_distributor_spell_vampiricism_free_cast",
          "edge_68_spell_vampiricism_spell_dominate_grants_minion_spell",
          "edge_46_spell_dominate_spell_dominate_grants_minion_spell"
        ],
        "entityIds": [
          "equipment_plasmic_distributor",
          "spell_vampiricism",
          "spell_dominate"
        ],
        "id": "chain_25_plasmic_distributor_vampiricism_dominate_dominate",
        "tags": [
          "Blood",
          "Enchantment",
          "Arcane"
        ],
        "title": "Plasmic Distributor -> Vampiricism -> Dominate -> Dominate"
      },
      {
        "edgeIds": [
          "edge_16_spell_rain_of_fire_spell_fire_drake_free_cast",
          "edge_57_spell_fire_drake_spell_blazerip_grants_minion_spell"
        ],
        "entityIds": [
          "spell_rain_of_fire",
          "spell_fire_drake",
          "spell_blazerip"
        ],
        "id": "chain_26_rain_of_fire_fire_drake_blazerip",
        "tags": [
          "Fire",
          "Sorcery",
          "Conjuration",
          "Dragon",
          "Arcane"
        ],
        "title": "Rain of Fire -> Fire Drake -> Blazerip"
      },
      {
        "edgeIds": [
          "edge_26_spell_rain_of_thunderbolts_spell_storm_drake_free_cast",
          "edge_58_spell_storm_drake_spell_chain_lightning_grants_minion_spell"
        ],
        "entityIds": [
          "spell_rain_of_thunderbolts",
          "spell_storm_drake",
          "spell_chain_lightning"
        ],
        "id": "chain_27_rain_of_thunderbolts_storm_drake_chain_lightning",
        "tags": [
          "Lightning",
          "Sorcery",
          "Conjuration",
          "Dragon"
        ],
        "title": "Rain of Thunderbolts -> Storm Drake -> Chain Lightning"
      },
      {
        "edgeIds": [
          "edge_56_spell_mystic_vision_spell_floating_eye_free_cast",
          "edge_82_spell_floating_eye_spell_petrify_grants_minion_spell"
        ],
        "entityIds": [
          "spell_mystic_vision",
          "spell_floating_eye",
          "spell_petrify"
        ],
        "id": "chain_28_mystic_vision_floating_eye_petrify",
        "tags": [
          "Enchantment",
          "Arcane",
          "Eye",
          "Conjuration"
        ],
        "title": "Mystic Vision -> Floating Eye -> Petrify"
      },
      {
        "edgeIds": [
          "edge_81_word_of_undeath_spell_dominate_free_cast",
          "edge_46_spell_dominate_spell_dominate_grants_minion_spell"
        ],
        "entityIds": [
          "word_of_undeath",
          "spell_dominate"
        ],
        "id": "chain_29_word_of_undeath_dominate_dominate",
        "tags": [
          "Arcane",
          "Enchantment"
        ],
        "title": "Word of Undeath -> Dominate -> Dominate"
      },
      {
        "edgeIds": [
          "edge_112_spell_blinding_light_spell_choir_of_angels_free_cast",
          "edge_107_spell_choir_of_angels_spell_death_bolt_grants_minion_spell"
        ],
        "entityIds": [
          "spell_blinding_light",
          "spell_choir_of_angels",
          "spell_death_bolt"
        ],
        "id": "chain_30_blinding_light_choir_of_angels_death_bolt",
        "tags": [
          "Holy",
          "Eye",
          "Sorcery",
          "Conjuration",
          "Dark"
        ],
        "title": "Blinding Light -> Choir of Angels -> Death Bolt"
      },
      {
        "edgeIds": [
          "edge_134_spell_ice_vortex_spell_ice_drake_free_cast",
          "edge_60_spell_ice_drake_spell_death_chill_grants_minion_spell"
        ],
        "entityIds": [
          "spell_ice_vortex",
          "spell_ice_drake",
          "spell_death_chill"
        ],
        "id": "chain_31_ice_vortex_ice_drake_death_chill",
        "tags": [
          "Ice",
          "Arcane",
          "Sorcery",
          "Conjuration",
          "Dragon",
          "Enchantment",
          "Dark"
        ],
        "title": "Ice Vortex -> Ice Drake -> Death Chill"
      },
      {
        "edgeIds": [
          "edge_188_spell_earthen_passage_spell_earthen_sentinel_free_cast",
          "edge_69_spell_earthen_sentinel_spell_poison_sting_grants_minion_spell"
        ],
        "entityIds": [
          "spell_earthen_passage",
          "spell_earthen_sentinel",
          "spell_poison_sting"
        ],
        "id": "chain_32_earthen_passage_earthen_sentinel_poison_sting",
        "tags": [
          "Nature",
          "Sorcery",
          "Translocation",
          "Conjuration"
        ],
        "title": "Earthen Passage -> Earthen Sentinel -> Poison Sting"
      },
      {
        "edgeIds": [
          "edge_188_spell_earthen_passage_spell_earthen_sentinel_free_cast",
          "edge_70_spell_earthen_sentinel_spell_heavenly_blast_grants_minion_spell"
        ],
        "entityIds": [
          "spell_earthen_passage",
          "spell_earthen_sentinel",
          "spell_heavenly_blast"
        ],
        "id": "chain_33_earthen_passage_earthen_sentinel_heavenly_blast",
        "tags": [
          "Nature",
          "Sorcery",
          "Translocation",
          "Conjuration",
          "Holy"
        ],
        "title": "Earthen Passage -> Earthen Sentinel -> Heavenly Blast"
      },
      {
        "edgeIds": [
          "edge_195_spell_ritual_of_the_opening_eye_spell_floating_eye_free_cast",
          "edge_82_spell_floating_eye_spell_petrify_grants_minion_spell"
        ],
        "entityIds": [
          "spell_ritual_of_the_opening_eye",
          "spell_floating_eye",
          "spell_petrify"
        ],
        "id": "chain_34_ritual_of_the_opening_eye_floating_eye_petrify",
        "tags": [
          "Eye",
          "Ritual",
          "Arcane",
          "Conjuration",
          "Enchantment"
        ],
        "title": "Ritual of the Opening Eye -> Floating Eye -> Petrify"
      },
      {
        "edgeIds": [
          "edge_58_spell_storm_drake_spell_chain_lightning_grants_minion_spell",
          "edge_63_spell_chain_lightning_spell_fireball_free_cast"
        ],
        "entityIds": [
          "spell_storm_drake",
          "spell_chain_lightning",
          "spell_fireball"
        ],
        "id": "chain_35_storm_drake_chain_lightning_fireball",
        "tags": [
          "Lightning",
          "Conjuration",
          "Dragon",
          "Sorcery",
          "Fire"
        ],
        "title": "Storm Drake -> Chain Lightning -> Fireball"
      },
      {
        "edgeIds": [
          "edge_59_spell_void_drake_spell_magic_missile_grants_minion_spell",
          "edge_74_spell_magic_missile_spell_magic_missile_free_cast"
        ],
        "entityIds": [
          "spell_void_drake",
          "spell_magic_missile"
        ],
        "id": "chain_36_void_drake_magic_missile_magic_missile",
        "tags": [
          "Arcane",
          "Conjuration",
          "Dragon",
          "Sorcery"
        ],
        "title": "Void Drake -> Magic Missile -> Magic Missile"
      },
      {
        "edgeIds": [
          "edge_70_spell_earthen_sentinel_spell_heavenly_blast_grants_minion_spell",
          "edge_97_spell_heavenly_blast_spell_immolate_free_cast"
        ],
        "entityIds": [
          "spell_earthen_sentinel",
          "spell_heavenly_blast",
          "spell_immolate"
        ],
        "id": "chain_37_earthen_sentinel_heavenly_blast_immolate",
        "tags": [
          "Nature",
          "Conjuration",
          "Holy",
          "Sorcery",
          "Fire",
          "Enchantment"
        ],
        "title": "Earthen Sentinel -> Heavenly Blast -> Immolate"
      },
      {
        "edgeIds": [
          "edge_131_spell_slime_drake_spell_slimeshot_grants_minion_spell",
          "edge_117_spell_slimeshot_spell_slimify_free_cast"
        ],
        "entityIds": [
          "spell_slime_drake",
          "spell_slimeshot",
          "spell_slimify"
        ],
        "id": "chain_38_slime_drake_slimeshot_slimify",
        "tags": [
          "Conjuration",
          "Dragon",
          "Slime",
          "Sorcery",
          "Enchantment",
          "Blood"
        ],
        "title": "Slime Drake -> Slimeshot -> Slimify"
      },
      {
        "edgeIds": [
          "edge_146_spell_furnace_of_sorcery_spell_magic_missile_grants_minion_spell",
          "edge_74_spell_magic_missile_spell_magic_missile_free_cast"
        ],
        "entityIds": [
          "spell_furnace_of_sorcery",
          "spell_magic_missile"
        ],
        "id": "chain_39_furnace_of_sorcery_magic_missile_magic_missile",
        "tags": [
          "Sorcery",
          "Metallic",
          "Fire",
          "Conjuration",
          "Arcane"
        ],
        "title": "Furnace of Sorcery -> Magic Missile -> Magic Missile"
      }
    ],
    "edges": [
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 105,
          "snippet": "fireball = self.caster.get_or_make_spell(FireballSpell)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_0_spell_rain_of_fire_spell_fireball_gets_learned_spell",
        "learnedVersion": true,
        "method": "get_impacted_tiles",
        "relation": "gets learned spell",
        "sourceClass": "MeteorShower",
        "sourceId": "spell_rain_of_fire",
        "sourceName": "Rain of Fire",
        "targetClass": "FireballSpell",
        "targetId": "spell_fireball",
        "targetName": "Fireball"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 105,
          "snippet": "fireball = self.caster.get_or_make_spell(FireballSpell)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_1_spell_rain_of_fire_spell_fireball_gets_learned_spell",
        "learnedVersion": true,
        "method": "get_impacted_tiles",
        "relation": "gets learned spell",
        "sourceClass": "MeteorShower",
        "sourceId": "spell_rain_of_fire",
        "sourceName": "Rain of Fire",
        "targetClass": "FireballSpell",
        "targetId": "spell_fireball",
        "targetName": "Fireball"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 126,
          "snippet": "fireball = self.owner.get_or_make_spell(FireballSpell)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_2_spell_rain_of_fire_spell_fireball_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "MeteorShower",
        "sourceId": "spell_rain_of_fire",
        "sourceName": "Rain of Fire",
        "targetClass": "FireballSpell",
        "targetId": "spell_fireball",
        "targetName": "Fireball"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 126,
          "snippet": "fireball = self.owner.get_or_make_spell(FireballSpell)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_3_spell_rain_of_fire_spell_fireball_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "MeteorShower",
        "sourceId": "spell_rain_of_fire",
        "sourceName": "Rain of Fire",
        "targetClass": "FireballSpell",
        "targetId": "spell_fireball",
        "targetName": "Fireball"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 129,
          "snippet": "if ritual: fburst = caster.get_or_make_spell(FlameBurstSpell)"
        },
        "gateNames": [
          "Ritual of Explosions"
        ],
        "gates": [
          "ritual"
        ],
        "id": "edge_4_spell_rain_of_fire_spell_flame_burst_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "MeteorShower",
        "sourceId": "spell_rain_of_fire",
        "sourceName": "Rain of Fire",
        "targetClass": "FlameBurstSpell",
        "targetId": "spell_flame_burst",
        "targetName": "Flame Burst"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 129,
          "snippet": "if ritual: fburst = caster.get_or_make_spell(FlameBurstSpell)"
        },
        "gateNames": [
          "Ritual of Explosions"
        ],
        "gates": [
          "ritual"
        ],
        "id": "edge_5_spell_rain_of_fire_spell_flame_burst_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "MeteorShower",
        "sourceId": "spell_rain_of_fire",
        "sourceName": "Rain of Fire",
        "targetClass": "FlameBurstSpell",
        "targetId": "spell_flame_burst",
        "targetName": "Flame Burst"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 133,
          "snippet": "annihilate = caster.get_or_make_spell(AnnihilateSpell)"
        },
        "gateNames": [
          "Chaos Storm"
        ],
        "gates": [
          "chaos"
        ],
        "id": "edge_6_spell_rain_of_fire_spell_annihilate_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "MeteorShower",
        "sourceId": "spell_rain_of_fire",
        "sourceName": "Rain of Fire",
        "targetClass": "AnnihilateSpell",
        "targetId": "spell_annihilate",
        "targetName": "Annihilate"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 133,
          "snippet": "annihilate = caster.get_or_make_spell(AnnihilateSpell)"
        },
        "gateNames": [
          "Chaos Storm"
        ],
        "gates": [
          "chaos"
        ],
        "id": "edge_7_spell_rain_of_fire_spell_annihilate_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "MeteorShower",
        "sourceId": "spell_rain_of_fire",
        "sourceName": "Rain of Fire",
        "targetClass": "AnnihilateSpell",
        "targetId": "spell_annihilate",
        "targetName": "Annihilate"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 138,
          "snippet": "if dragons: fire_drake = caster.get_or_make_spell(SummonFireDrakeSpell)"
        },
        "gateNames": [
          "Rain of Dragons"
        ],
        "gates": [
          "dragons"
        ],
        "id": "edge_8_spell_rain_of_fire_spell_fire_drake_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "MeteorShower",
        "sourceId": "spell_rain_of_fire",
        "sourceName": "Rain of Fire",
        "targetClass": "SummonFireDrakeSpell",
        "targetId": "spell_fire_drake",
        "targetName": "Fire Drake"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 138,
          "snippet": "if dragons: fire_drake = caster.get_or_make_spell(SummonFireDrakeSpell)"
        },
        "gateNames": [
          "Rain of Dragons"
        ],
        "gates": [
          "dragons"
        ],
        "id": "edge_9_spell_rain_of_fire_spell_fire_drake_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "MeteorShower",
        "sourceId": "spell_rain_of_fire",
        "sourceName": "Rain of Fire",
        "targetClass": "SummonFireDrakeSpell",
        "targetId": "spell_fire_drake",
        "targetName": "Fire Drake"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 142,
          "snippet": "lbolt = caster.get_or_make_spell(LightningBoltSpell)"
        },
        "gateNames": [
          "Pyrostatic Storm"
        ],
        "gates": [
          "pyrostatic"
        ],
        "id": "edge_10_spell_rain_of_fire_spell_lightning_bolt_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "MeteorShower",
        "sourceId": "spell_rain_of_fire",
        "sourceName": "Rain of Fire",
        "targetClass": "LightningBoltSpell",
        "targetId": "spell_lightning_bolt",
        "targetName": "Lightning Bolt"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 142,
          "snippet": "lbolt = caster.get_or_make_spell(LightningBoltSpell)"
        },
        "gateNames": [
          "Pyrostatic Storm"
        ],
        "gates": [
          "pyrostatic"
        ],
        "id": "edge_11_spell_rain_of_fire_spell_lightning_bolt_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "MeteorShower",
        "sourceId": "spell_rain_of_fire",
        "sourceName": "Rain of Fire",
        "targetClass": "LightningBoltSpell",
        "targetId": "spell_lightning_bolt",
        "targetName": "Lightning Bolt"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 147,
          "snippet": "for _ in act_cast(caster, fburst, caster.x, caster.y, pay_costs=False, queue=False): pass"
        },
        "gateNames": [
          "Ritual of Explosions"
        ],
        "gates": [
          "ritual"
        ],
        "id": "edge_12_spell_rain_of_fire_spell_flame_burst_free_cast",
        "learnedVersion": true,
        "method": "cast",
        "relation": "free cast",
        "sourceClass": "MeteorShower",
        "sourceId": "spell_rain_of_fire",
        "sourceName": "Rain of Fire",
        "targetClass": "FlameBurstSpell",
        "targetId": "spell_flame_burst",
        "targetName": "Flame Burst"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 152,
          "snippet": "for _ in act_cast(caster, fireball, target.x, target.y, pay_costs=False, queue=False): yield"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_13_spell_rain_of_fire_spell_fireball_free_cast",
        "learnedVersion": true,
        "method": "cast",
        "relation": "free cast",
        "sourceClass": "MeteorShower",
        "sourceId": "spell_rain_of_fire",
        "sourceName": "Rain of Fire",
        "targetClass": "FireballSpell",
        "targetId": "spell_fireball",
        "targetName": "Fireball"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 159,
          "snippet": "for _ in act_cast(caster, annihilate, t.x, t.y, pay_costs=False, queue=False, origin_point=target): pass"
        },
        "gateNames": [
          "Chaos Storm"
        ],
        "gates": [
          "chaos"
        ],
        "id": "edge_14_spell_rain_of_fire_spell_annihilate_free_cast",
        "learnedVersion": true,
        "method": "cast",
        "relation": "free cast",
        "sourceClass": "MeteorShower",
        "sourceId": "spell_rain_of_fire",
        "sourceName": "Rain of Fire",
        "targetClass": "AnnihilateSpell",
        "targetId": "spell_annihilate",
        "targetName": "Annihilate"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 166,
          "snippet": "for _ in act_cast(caster, lbolt, t.x, t.y, pay_costs=False, queue=False, origin_point=target): pass"
        },
        "gateNames": [
          "Pyrostatic Storm"
        ],
        "gates": [
          "pyrostatic"
        ],
        "id": "edge_15_spell_rain_of_fire_spell_lightning_bolt_free_cast",
        "learnedVersion": true,
        "method": "cast",
        "relation": "free cast",
        "sourceClass": "MeteorShower",
        "sourceId": "spell_rain_of_fire",
        "sourceName": "Rain of Fire",
        "targetClass": "LightningBoltSpell",
        "targetId": "spell_lightning_bolt",
        "targetName": "Lightning Bolt"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 170,
          "snippet": "for _ in act_cast(caster, fire_drake, target.x, target.y, pay_costs=False, queue=False): pass"
        },
        "gateNames": [
          "Rain of Dragons"
        ],
        "gates": [
          "dragons"
        ],
        "id": "edge_16_spell_rain_of_fire_spell_fire_drake_free_cast",
        "learnedVersion": true,
        "method": "cast",
        "relation": "free cast",
        "sourceClass": "MeteorShower",
        "sourceId": "spell_rain_of_fire",
        "sourceName": "Rain of Fire",
        "targetClass": "SummonFireDrakeSpell",
        "targetId": "spell_fire_drake",
        "targetName": "Fire Drake"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 228,
          "snippet": "thunderstrike = caster.get_or_make_spell(ThunderStrike)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_17_spell_rain_of_thunderbolts_spell_thunder_strike_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "RainOfThunderbolts",
        "sourceId": "spell_rain_of_thunderbolts",
        "sourceName": "Rain of Thunderbolts",
        "targetClass": "ThunderStrike",
        "targetId": "spell_thunder_strike",
        "targetName": "Thunder Strike"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 228,
          "snippet": "thunderstrike = caster.get_or_make_spell(ThunderStrike)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_18_spell_rain_of_thunderbolts_spell_thunder_strike_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "RainOfThunderbolts",
        "sourceId": "spell_rain_of_thunderbolts",
        "sourceName": "Rain of Thunderbolts",
        "targetClass": "ThunderStrike",
        "targetId": "spell_thunder_strike",
        "targetName": "Thunder Strike"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 229,
          "snippet": "storm_drake = caster.get_or_make_spell(SummonStormDrakeSpell)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_19_spell_rain_of_thunderbolts_spell_storm_drake_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "RainOfThunderbolts",
        "sourceId": "spell_rain_of_thunderbolts",
        "sourceName": "Rain of Thunderbolts",
        "targetClass": "SummonStormDrakeSpell",
        "targetId": "spell_storm_drake",
        "targetName": "Storm Drake"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 229,
          "snippet": "storm_drake = caster.get_or_make_spell(SummonStormDrakeSpell)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_20_spell_rain_of_thunderbolts_spell_storm_drake_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "RainOfThunderbolts",
        "sourceId": "spell_rain_of_thunderbolts",
        "sourceName": "Rain of Thunderbolts",
        "targetClass": "SummonStormDrakeSpell",
        "targetId": "spell_storm_drake",
        "targetName": "Storm Drake"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 230,
          "snippet": "ice_ball = caster.get_or_make_spell(Iceball)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_21_spell_rain_of_thunderbolts_spell_iceball_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "RainOfThunderbolts",
        "sourceId": "spell_rain_of_thunderbolts",
        "sourceName": "Rain of Thunderbolts",
        "targetClass": "Iceball",
        "targetId": "spell_iceball",
        "targetName": "Iceball"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 230,
          "snippet": "ice_ball = caster.get_or_make_spell(Iceball)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_22_spell_rain_of_thunderbolts_spell_iceball_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "RainOfThunderbolts",
        "sourceId": "spell_rain_of_thunderbolts",
        "sourceName": "Rain of Thunderbolts",
        "targetClass": "Iceball",
        "targetId": "spell_iceball",
        "targetName": "Iceball"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 251,
          "snippet": "if isinstance(target, StormCloud): level.act_cast(caster, thunderstrike, target.x, target.y, pay_costs=False)"
        },
        "gateNames": [
          "Cryostorm"
        ],
        "gates": [
          "all_weather"
        ],
        "id": "edge_23_spell_rain_of_thunderbolts_spell_thunder_strike_free_cast",
        "learnedVersion": true,
        "method": "cast",
        "relation": "free cast",
        "sourceClass": "RainOfThunderbolts",
        "sourceId": "spell_rain_of_thunderbolts",
        "sourceName": "Rain of Thunderbolts",
        "targetClass": "ThunderStrike",
        "targetId": "spell_thunder_strike",
        "targetName": "Thunder Strike"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 252,
          "snippet": "else: level.act_cast(caster, ice_ball, target.x, target.y, pay_costs=False)"
        },
        "gateNames": [
          "Cryostorm"
        ],
        "gates": [
          "all_weather"
        ],
        "id": "edge_24_spell_rain_of_thunderbolts_spell_iceball_free_cast",
        "learnedVersion": true,
        "method": "cast",
        "relation": "free cast",
        "sourceClass": "RainOfThunderbolts",
        "sourceId": "spell_rain_of_thunderbolts",
        "sourceName": "Rain of Thunderbolts",
        "targetClass": "Iceball",
        "targetId": "spell_iceball",
        "targetName": "Iceball"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 253,
          "snippet": "else: level.act_cast(caster, thunderstrike, target.x, target.y, pay_costs=False)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_25_spell_rain_of_thunderbolts_spell_thunder_strike_free_cast",
        "learnedVersion": true,
        "method": "cast",
        "relation": "free cast",
        "sourceClass": "RainOfThunderbolts",
        "sourceId": "spell_rain_of_thunderbolts",
        "sourceName": "Rain of Thunderbolts",
        "targetClass": "ThunderStrike",
        "targetId": "spell_thunder_strike",
        "targetName": "Thunder Strike"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 256,
          "snippet": "level.act_cast(caster, storm_drake, target.x, target.y, pay_costs=False, queue=True)"
        },
        "gateNames": [
          "Tempest Drakes"
        ],
        "gates": [
          "dragons"
        ],
        "id": "edge_26_spell_rain_of_thunderbolts_spell_storm_drake_free_cast",
        "learnedVersion": true,
        "method": "cast",
        "relation": "free cast",
        "sourceClass": "RainOfThunderbolts",
        "sourceId": "spell_rain_of_thunderbolts",
        "sourceName": "Rain of Thunderbolts",
        "targetClass": "SummonStormDrakeSpell",
        "targetId": "spell_storm_drake",
        "targetName": "Storm Drake"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 320,
          "snippet": "spell = grant_minion_spell(LightningBoltSpell, scroll, spell_parent, 0)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_27_spell_lightning_bolt_spell_lightning_bolt_grants_minion_spell",
        "learnedVersion": true,
        "method": "scroll",
        "relation": "grants minion spell",
        "sourceClass": "LightningBoltSpell",
        "sourceId": "spell_lightning_bolt",
        "sourceName": "Lightning Bolt",
        "targetClass": "LightningBoltSpell",
        "targetId": "spell_lightning_bolt",
        "targetName": "Lightning Bolt"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 466,
          "snippet": "if self.get_stat('surge'): self.caster.level.act_cast(self.caster, self.caster.get_or_make_spell(StormBurst), x, y, pay_costs=False)"
        },
        "gateNames": [
          "Storm Surge"
        ],
        "gates": [
          "surge"
        ],
        "id": "edge_28_spell_storm_walk_spell_storm_burst_free_cast",
        "learnedVersion": true,
        "method": "cast_instant",
        "relation": "free cast",
        "sourceClass": "StormWalk",
        "sourceId": "spell_storm_walk",
        "sourceName": "Storm Walk",
        "targetClass": "StormBurst",
        "targetId": "spell_storm_burst",
        "targetName": "Storm Burst"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 466,
          "snippet": "if self.get_stat('surge'): self.caster.level.act_cast(self.caster, self.caster.get_or_make_spell(StormBurst), x, y, pay_costs=False)"
        },
        "gateNames": [
          "Storm Surge"
        ],
        "gates": [
          "surge"
        ],
        "id": "edge_29_spell_storm_walk_spell_storm_burst_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast_instant",
        "relation": "gets learned spell",
        "sourceClass": "StormWalk",
        "sourceId": "spell_storm_walk",
        "sourceName": "Storm Walk",
        "targetClass": "StormBurst",
        "targetId": "spell_storm_burst",
        "targetName": "Storm Burst"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 621,
          "snippet": "disperse = self.caster.get_or_make_spell(Disperse)"
        },
        "gateNames": [
          "Dissolution"
        ],
        "gates": [
          "dispersal"
        ],
        "id": "edge_30_spell_blink_spell_disperse_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "BlinkSpell",
        "sourceId": "spell_blink",
        "sourceName": "Blink",
        "targetClass": "Disperse",
        "targetId": "spell_disperse",
        "targetName": "Disperse"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 621,
          "snippet": "disperse = self.caster.get_or_make_spell(Disperse)"
        },
        "gateNames": [
          "Dissolution"
        ],
        "gates": [
          "dispersal"
        ],
        "id": "edge_31_spell_blink_spell_disperse_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "BlinkSpell",
        "sourceId": "spell_blink",
        "sourceName": "Blink",
        "targetClass": "Disperse",
        "targetId": "spell_disperse",
        "targetName": "Disperse"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 622,
          "snippet": "self.caster.level.act_cast(self.caster, disperse, p.x, p.y, pay_costs=False)"
        },
        "gateNames": [
          "Dissolution"
        ],
        "gates": [
          "dispersal"
        ],
        "id": "edge_32_spell_blink_spell_disperse_free_cast",
        "learnedVersion": true,
        "method": "cast",
        "relation": "free cast",
        "sourceClass": "BlinkSpell",
        "sourceId": "spell_blink",
        "sourceName": "Blink",
        "targetClass": "Disperse",
        "targetId": "spell_disperse",
        "targetName": "Disperse"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 629,
          "snippet": "tstrike = caster.get_or_make_spell(ThunderStrike)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_33_spell_blink_spell_thunder_strike_gets_learned_spell",
        "learnedVersion": true,
        "method": "do_thunderblink_strikes",
        "relation": "gets learned spell",
        "sourceClass": "BlinkSpell",
        "sourceId": "spell_blink",
        "sourceName": "Blink",
        "targetClass": "ThunderStrike",
        "targetId": "spell_thunder_strike",
        "targetName": "Thunder Strike"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 629,
          "snippet": "tstrike = caster.get_or_make_spell(ThunderStrike)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_34_spell_blink_spell_thunder_strike_gets_learned_spell",
        "learnedVersion": true,
        "method": "do_thunderblink_strikes",
        "relation": "gets learned spell",
        "sourceClass": "BlinkSpell",
        "sourceId": "spell_blink",
        "sourceName": "Blink",
        "targetClass": "ThunderStrike",
        "targetId": "spell_thunder_strike",
        "targetName": "Thunder Strike"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 634,
          "snippet": "caster.level.act_cast(caster, tstrike, u.x, u.y, pay_costs=False, queue=True)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_35_spell_blink_spell_thunder_strike_free_cast",
        "learnedVersion": true,
        "method": "do_thunderblink_strikes",
        "relation": "free cast",
        "sourceClass": "BlinkSpell",
        "sourceId": "spell_blink",
        "sourceName": "Blink",
        "targetClass": "ThunderStrike",
        "targetId": "spell_thunder_strike",
        "targetName": "Thunder Strike"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 764,
          "snippet": "if self.get_stat('cast_eye'): grant_minion_spell(EyeOfFireSpell, elemental, self.caster, cool_down=10)"
        },
        "gateNames": [
          "Eye Gate"
        ],
        "gates": [
          "cast_eye"
        ],
        "id": "edge_36_spell_flame_gate_spell_eye_of_fire_grants_minion_spell",
        "learnedVersion": true,
        "method": "make_elemental",
        "relation": "grants minion spell",
        "sourceClass": "FlameGateSpell",
        "sourceId": "spell_flame_gate",
        "sourceName": "Flame Gate",
        "targetClass": "EyeOfFireSpell",
        "targetId": "spell_eye_of_fire",
        "targetName": "Eye of Fire"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 1193,
          "snippet": "magic_missile = caster.get_or_make_spell(MagicMissile)"
        },
        "gateNames": [
          "Violent Warp"
        ],
        "gates": [
          "violent"
        ],
        "id": "edge_37_spell_disperse_spell_magic_missile_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "Disperse",
        "sourceId": "spell_disperse",
        "sourceName": "Disperse",
        "targetClass": "MagicMissile",
        "targetId": "spell_magic_missile",
        "targetName": "Magic Missile"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 1193,
          "snippet": "magic_missile = caster.get_or_make_spell(MagicMissile)"
        },
        "gateNames": [
          "Violent Warp"
        ],
        "gates": [
          "violent"
        ],
        "id": "edge_38_spell_disperse_spell_magic_missile_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "Disperse",
        "sourceId": "spell_disperse",
        "sourceName": "Disperse",
        "targetClass": "MagicMissile",
        "targetId": "spell_magic_missile",
        "targetName": "Magic Missile"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 1194,
          "snippet": "level.act_cast(caster, magic_missile, target.x, target.y, pay_costs=False)"
        },
        "gateNames": [
          "Violent Warp"
        ],
        "gates": [
          "violent"
        ],
        "id": "edge_39_spell_disperse_spell_magic_missile_free_cast",
        "learnedVersion": true,
        "method": "cast",
        "relation": "free cast",
        "sourceClass": "Disperse",
        "sourceId": "spell_disperse",
        "sourceName": "Disperse",
        "targetClass": "MagicMissile",
        "targetId": "spell_magic_missile",
        "targetName": "Magic Missile"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 1549,
          "snippet": "s = self.caster.get_or_make_spell(ShadowHexSpell)"
        },
        "gateNames": [
          "Eyes Of Cursed Dark"
        ],
        "gates": [
          "curse"
        ],
        "id": "edge_40_spell_darkness_spell_shadow_hex_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast_instant",
        "relation": "gets learned spell",
        "sourceClass": "Darkness",
        "sourceId": "spell_darkness",
        "sourceName": "Darkness",
        "targetClass": "ShadowHexSpell",
        "targetId": "spell_shadow_hex",
        "targetName": "Shadow Hex"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 1549,
          "snippet": "s = self.caster.get_or_make_spell(ShadowHexSpell)"
        },
        "gateNames": [
          "Eyes Of Cursed Dark"
        ],
        "gates": [
          "curse"
        ],
        "id": "edge_41_spell_darkness_spell_shadow_hex_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast_instant",
        "relation": "gets learned spell",
        "sourceClass": "Darkness",
        "sourceId": "spell_darkness",
        "sourceName": "Darkness",
        "targetClass": "ShadowHexSpell",
        "targetId": "spell_shadow_hex",
        "targetName": "Shadow Hex"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 1550,
          "snippet": "for t in targets: self.caster.level.act_cast(self.caster, s, t.x, t.y, pay_costs=False)"
        },
        "gateNames": [
          "Eyes Of Cursed Dark"
        ],
        "gates": [
          "curse"
        ],
        "id": "edge_42_spell_darkness_spell_shadow_hex_free_cast",
        "learnedVersion": true,
        "method": "cast_instant",
        "relation": "free cast",
        "sourceClass": "Darkness",
        "sourceId": "spell_darkness",
        "sourceName": "Darkness",
        "targetClass": "ShadowHexSpell",
        "targetId": "spell_shadow_hex",
        "targetName": "Shadow Hex"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 1789,
          "snippet": "s = caster.get_or_make_spell(AnnihilateSpell)"
        },
        "gateNames": [
          "Pillar of Annihilation"
        ],
        "gates": [
          "cast_annihilate"
        ],
        "id": "edge_43_spell_pillar_of_fire_spell_annihilate_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "FlameStrikeSpell",
        "sourceId": "spell_pillar_of_fire",
        "sourceName": "Pillar of Fire",
        "targetClass": "AnnihilateSpell",
        "targetId": "spell_annihilate",
        "targetName": "Annihilate"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 1789,
          "snippet": "s = caster.get_or_make_spell(AnnihilateSpell)"
        },
        "gateNames": [
          "Pillar of Annihilation"
        ],
        "gates": [
          "cast_annihilate"
        ],
        "id": "edge_44_spell_pillar_of_fire_spell_annihilate_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "FlameStrikeSpell",
        "sourceId": "spell_pillar_of_fire",
        "sourceName": "Pillar of Fire",
        "targetClass": "AnnihilateSpell",
        "targetId": "spell_annihilate",
        "targetName": "Annihilate"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 1795,
          "snippet": "level.act_cast(caster, s, t.x, t.y, pay_costs=False, origin_point=p)"
        },
        "gateNames": [
          "Pillar of Annihilation"
        ],
        "gates": [
          "cast_annihilate"
        ],
        "id": "edge_45_spell_pillar_of_fire_spell_annihilate_free_cast",
        "learnedVersion": true,
        "method": "cast",
        "relation": "free cast",
        "sourceClass": "FlameStrikeSpell",
        "sourceId": "spell_pillar_of_fire",
        "sourceName": "Pillar of Fire",
        "targetClass": "AnnihilateSpell",
        "targetId": "spell_annihilate",
        "targetName": "Annihilate"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 2093,
          "snippet": "grant_minion_spell(Dominate, unit, wizard, 30, pre_insert=True)"
        },
        "gateNames": [
          "Cult Leader"
        ],
        "gates": [
          "cult_leader"
        ],
        "id": "edge_46_spell_dominate_spell_dominate_grants_minion_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "grants minion spell",
        "sourceClass": "Dominate",
        "sourceId": "spell_dominate",
        "sourceName": "Dominate",
        "targetClass": "Dominate",
        "targetId": "spell_dominate",
        "targetName": "Dominate"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 2755,
          "snippet": "spells_to_cast = [self.owner.get_or_make_spell(LightningBoltSpell)]"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_47_spell_watcher_form_spell_lightning_bolt_gets_learned_spell",
        "learnedVersion": true,
        "method": "shoot",
        "relation": "gets learned spell",
        "sourceClass": "WatcherFormBuff",
        "sourceId": "spell_watcher_form",
        "sourceName": "Watcher Form",
        "targetClass": "LightningBoltSpell",
        "targetId": "spell_lightning_bolt",
        "targetName": "Lightning Bolt"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 2757,
          "snippet": "spells_to_cast.append(self.owner.get_or_make_spell(SilverSpearSpell))"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_48_spell_watcher_form_spell_silver_spear_gets_learned_spell",
        "learnedVersion": true,
        "method": "shoot",
        "relation": "gets learned spell",
        "sourceClass": "WatcherFormBuff",
        "sourceId": "spell_watcher_form",
        "sourceName": "Watcher Form",
        "targetClass": "SilverSpearSpell",
        "targetId": "spell_silver_spear",
        "targetName": "Silver Spear"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 2759,
          "snippet": "spells_to_cast.append(self.owner.get_or_make_spell(PyrostaticPulse))"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_49_spell_watcher_form_spell_pyrostatic_pulse_gets_learned_spell",
        "learnedVersion": true,
        "method": "shoot",
        "relation": "gets learned spell",
        "sourceClass": "WatcherFormBuff",
        "sourceId": "spell_watcher_form",
        "sourceName": "Watcher Form",
        "targetClass": "PyrostaticPulse",
        "targetId": "spell_pyrostatic_pulse",
        "targetName": "Pyrostatic Pulse"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 2761,
          "snippet": "spells_to_cast.append(self.owner.get_or_make_spell(VoidBeamSpell))"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_50_spell_watcher_form_spell_void_beam_gets_learned_spell",
        "learnedVersion": true,
        "method": "shoot",
        "relation": "gets learned spell",
        "sourceClass": "WatcherFormBuff",
        "sourceId": "spell_watcher_form",
        "sourceName": "Watcher Form",
        "targetClass": "VoidBeamSpell",
        "targetId": "spell_void_beam",
        "targetName": "Void Beam"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 2763,
          "snippet": "spells_to_cast.append(self.owner.get_or_make_spell(ChainLightningSpell))"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_51_spell_watcher_form_spell_chain_lightning_gets_learned_spell",
        "learnedVersion": true,
        "method": "shoot",
        "relation": "gets learned spell",
        "sourceClass": "WatcherFormBuff",
        "sourceId": "spell_watcher_form",
        "sourceName": "Watcher Form",
        "targetClass": "ChainLightningSpell",
        "targetId": "spell_chain_lightning",
        "targetName": "Chain Lightning"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 2854,
          "snippet": "spell = self.owner.get_or_make_spell(ImpGateSpell)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_52_spell_imp_swarm_spell_imp_swarm_gets_learned_spell",
        "learnedVersion": true,
        "method": "on_advance",
        "relation": "gets learned spell",
        "sourceClass": "EndlessSwarm",
        "sourceId": "spell_imp_swarm",
        "sourceName": "Imp Swarm",
        "targetClass": "ImpGateSpell",
        "targetId": "spell_imp_swarm",
        "targetName": "Imp Swarm"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 2854,
          "snippet": "spell = self.owner.get_or_make_spell(ImpGateSpell)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_53_spell_imp_swarm_spell_imp_swarm_gets_learned_spell",
        "learnedVersion": true,
        "method": "on_advance",
        "relation": "gets learned spell",
        "sourceClass": "EndlessSwarm",
        "sourceId": "spell_imp_swarm",
        "sourceName": "Imp Swarm",
        "targetClass": "ImpGateSpell",
        "targetId": "spell_imp_swarm",
        "targetName": "Imp Swarm"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 3119,
          "snippet": "spell = caster.get_or_make_spell(SummonFloatingEye)"
        },
        "gateNames": [
          "Overwatch"
        ],
        "gates": [
          "overwatch"
        ],
        "id": "edge_54_spell_mystic_vision_spell_floating_eye_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast_instant",
        "relation": "gets learned spell",
        "sourceClass": "MysticVision",
        "sourceId": "spell_mystic_vision",
        "sourceName": "Mystic Vision",
        "targetClass": "SummonFloatingEye",
        "targetId": "spell_floating_eye",
        "targetName": "Floating Eye"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 3119,
          "snippet": "spell = caster.get_or_make_spell(SummonFloatingEye)"
        },
        "gateNames": [
          "Overwatch"
        ],
        "gates": [
          "overwatch"
        ],
        "id": "edge_55_spell_mystic_vision_spell_floating_eye_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast_instant",
        "relation": "gets learned spell",
        "sourceClass": "MysticVision",
        "sourceId": "spell_mystic_vision",
        "sourceName": "Mystic Vision",
        "targetClass": "SummonFloatingEye",
        "targetId": "spell_floating_eye",
        "targetName": "Floating Eye"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 3122,
          "snippet": "if spell.can_cast(p.x, p.y): act_cast(caster, spell, p.x, p.y, pay_costs=False)"
        },
        "gateNames": [
          "Overwatch"
        ],
        "gates": [
          "overwatch"
        ],
        "id": "edge_56_spell_mystic_vision_spell_floating_eye_free_cast",
        "learnedVersion": true,
        "method": "cast_instant",
        "relation": "free cast",
        "sourceClass": "MysticVision",
        "sourceId": "spell_mystic_vision",
        "sourceName": "Mystic Vision",
        "targetClass": "SummonFloatingEye",
        "targetId": "spell_floating_eye",
        "targetName": "Floating Eye"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 3329,
          "snippet": "grant_minion_spell(Blazerip, u, self.caster, cool_down=4)"
        },
        "gateNames": [
          "Dragon Mage"
        ],
        "gates": [
          "dragon_mage"
        ],
        "id": "edge_57_spell_fire_drake_spell_blazerip_grants_minion_spell",
        "learnedVersion": true,
        "method": "make_drake",
        "relation": "grants minion spell",
        "sourceClass": "SummonFireDrakeSpell",
        "sourceId": "spell_fire_drake",
        "sourceName": "Fire Drake",
        "targetClass": "Blazerip",
        "targetId": "spell_blazerip",
        "targetName": "Blazerip"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 3391,
          "snippet": "if self.get_stat('dragon_mage'): grant_minion_spell(ChainLightningSpell, drake, self.caster, 9)"
        },
        "gateNames": [
          "Dragon Mage"
        ],
        "gates": [
          "dragon_mage"
        ],
        "id": "edge_58_spell_storm_drake_spell_chain_lightning_grants_minion_spell",
        "learnedVersion": true,
        "method": "make_drake",
        "relation": "grants minion spell",
        "sourceClass": "SummonStormDrakeSpell",
        "sourceId": "spell_storm_drake",
        "sourceName": "Storm Drake",
        "targetClass": "ChainLightningSpell",
        "targetId": "spell_chain_lightning",
        "targetName": "Chain Lightning"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 3473,
          "snippet": "if self.get_stat('dragon_mage'): grant_minion_spell(MagicMissile, u, self.caster, 3)"
        },
        "gateNames": [
          "Dragon Mage"
        ],
        "gates": [
          "dragon_mage"
        ],
        "id": "edge_59_spell_void_drake_spell_magic_missile_grants_minion_spell",
        "learnedVersion": true,
        "method": "make_drake",
        "relation": "grants minion spell",
        "sourceClass": "SummonVoidDrakeSpell",
        "sourceId": "spell_void_drake",
        "sourceName": "Void Drake",
        "targetClass": "MagicMissile",
        "targetId": "spell_magic_missile",
        "targetName": "Magic Missile"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 3527,
          "snippet": "grant_minion_spell(DeathChill, u, self.caster, cool_down=6, pre_insert=True)"
        },
        "gateNames": [
          "Dragon Mage"
        ],
        "gates": [
          "dragon_mage"
        ],
        "id": "edge_60_spell_ice_drake_spell_death_chill_grants_minion_spell",
        "learnedVersion": true,
        "method": "make_drake",
        "relation": "grants minion spell",
        "sourceClass": "SummonIceDrakeSpell",
        "sourceId": "spell_ice_drake",
        "sourceName": "Ice Drake",
        "targetClass": "DeathChill",
        "targetId": "spell_death_chill",
        "targetName": "Death Chill"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 3585,
          "snippet": "fireball = self.caster.get_or_make_spell(FireballSpell)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_61_spell_chain_lightning_spell_fireball_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "ChainLightningSpell",
        "sourceId": "spell_chain_lightning",
        "sourceName": "Chain Lightning",
        "targetClass": "FireballSpell",
        "targetId": "spell_fireball",
        "targetName": "Fireball"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 3585,
          "snippet": "fireball = self.caster.get_or_make_spell(FireballSpell)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_62_spell_chain_lightning_spell_fireball_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "ChainLightningSpell",
        "sourceId": "spell_chain_lightning",
        "sourceName": "Chain Lightning",
        "targetClass": "FireballSpell",
        "targetId": "spell_fireball",
        "targetName": "Fireball"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 3593,
          "snippet": "s = self.owner.level.act_cast(self.owner, fireball, target.x, target.y, pay_costs=False, queue=False)"
        },
        "gateNames": [
          "Chain Fireball"
        ],
        "gates": [
          "chain_fireball"
        ],
        "id": "edge_63_spell_chain_lightning_spell_fireball_free_cast",
        "learnedVersion": true,
        "method": "cast",
        "relation": "free cast",
        "sourceClass": "ChainLightningSpell",
        "sourceId": "spell_chain_lightning",
        "sourceName": "Chain Lightning",
        "targetClass": "FireballSpell",
        "targetId": "spell_fireball",
        "targetName": "Fireball"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 3727,
          "snippet": "self.owner.level.act_cast(u, u.get_or_make_spell(WheelOfDeath), u.x, u.y, pay_costs=False)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_64_spell_wheel_of_death_spell_wheel_of_death_free_cast",
        "learnedVersion": true,
        "method": "on_death",
        "relation": "free cast",
        "sourceClass": "DeathCycle",
        "sourceId": "spell_wheel_of_death",
        "sourceName": "Wheel of Death",
        "targetClass": "WheelOfDeath",
        "targetId": "spell_wheel_of_death",
        "targetName": "Wheel of Death"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 3727,
          "snippet": "self.owner.level.act_cast(u, u.get_or_make_spell(WheelOfDeath), u.x, u.y, pay_costs=False)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_65_spell_wheel_of_death_spell_wheel_of_death_gets_learned_spell",
        "learnedVersion": true,
        "method": "on_death",
        "relation": "gets learned spell",
        "sourceClass": "DeathCycle",
        "sourceId": "spell_wheel_of_death",
        "sourceName": "Wheel of Death",
        "targetClass": "WheelOfDeath",
        "targetId": "spell_wheel_of_death",
        "targetName": "Wheel of Death"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 4028,
          "snippet": "level.act_cast(self.caster, self.caster.get_or_make_spell(MeteorShower), x, y, pay_costs=False)"
        },
        "gateNames": [
          "Meteor Shower"
        ],
        "gates": [
          "shower"
        ],
        "id": "edge_66_spell_volcanic_eruption_spell_rain_of_fire_free_cast",
        "learnedVersion": true,
        "method": "cast",
        "relation": "free cast",
        "sourceClass": "Volcano",
        "sourceId": "spell_volcanic_eruption",
        "sourceName": "Volcanic Eruption",
        "targetClass": "MeteorShower",
        "targetId": "spell_rain_of_fire",
        "targetName": "Rain of Fire"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 4028,
          "snippet": "level.act_cast(self.caster, self.caster.get_or_make_spell(MeteorShower), x, y, pay_costs=False)"
        },
        "gateNames": [
          "Meteor Shower"
        ],
        "gates": [
          "shower"
        ],
        "id": "edge_67_spell_volcanic_eruption_spell_rain_of_fire_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "Volcano",
        "sourceId": "spell_volcanic_eruption",
        "sourceName": "Volcanic Eruption",
        "targetClass": "MeteorShower",
        "targetId": "spell_rain_of_fire",
        "targetName": "Rain of Fire"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 4177,
          "snippet": "if self.get_stat('vampiric_regent'): grant_minion_spell(Dominate, u, caster, cool_down=20)"
        },
        "gateNames": [
          "Vampiric Regent"
        ],
        "gates": [
          "vampiric_regent"
        ],
        "id": "edge_68_spell_vampiricism_spell_dominate_grants_minion_spell",
        "learnedVersion": true,
        "method": "cast_instant",
        "relation": "grants minion spell",
        "sourceClass": "Vampiricism",
        "sourceId": "spell_vampiricism",
        "sourceName": "Vampiricism",
        "targetClass": "Dominate",
        "targetId": "spell_dominate",
        "targetName": "Dominate"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 4236,
          "snippet": "if self.get_stat('stinging_totem'): grant_minion_spell(PoisonSting, ele, self.caster, cool_down=0, pre_insert=False)"
        },
        "gateNames": [
          "Stinging Totem"
        ],
        "gates": [
          "stinging_totem"
        ],
        "id": "edge_69_spell_earthen_sentinel_spell_poison_sting_grants_minion_spell",
        "learnedVersion": true,
        "method": "get_ele",
        "relation": "grants minion spell",
        "sourceClass": "SummonEarthElemental",
        "sourceId": "spell_earthen_sentinel",
        "sourceName": "Earthen Sentinel",
        "targetClass": "PoisonSting",
        "targetId": "spell_poison_sting",
        "targetName": "Poison Sting"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 4237,
          "snippet": "if self.get_stat('holy_totem'): grant_minion_spell(HolyBlast, ele, self.caster, cool_down=3)"
        },
        "gateNames": [
          "Holy Totem"
        ],
        "gates": [
          "holy_totem"
        ],
        "id": "edge_70_spell_earthen_sentinel_spell_heavenly_blast_grants_minion_spell",
        "learnedVersion": true,
        "method": "get_ele",
        "relation": "grants minion spell",
        "sourceClass": "SummonEarthElemental",
        "sourceId": "spell_earthen_sentinel",
        "sourceName": "Earthen Sentinel",
        "targetClass": "HolyBlast",
        "targetId": "spell_heavenly_blast",
        "targetName": "Heavenly Blast"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 4580,
          "snippet": "spell = self.owner.get_or_make_spell(InvokeSavagerySpell)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_71_spell_invoke_savagery_spell_invoke_savagery_gets_learned_spell",
        "learnedVersion": true,
        "method": "on_death",
        "relation": "gets learned spell",
        "sourceClass": "SavageSpree",
        "sourceId": "spell_invoke_savagery",
        "sourceName": "Invoke Savagery",
        "targetClass": "InvokeSavagerySpell",
        "targetId": "spell_invoke_savagery",
        "targetName": "Invoke Savagery"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 4580,
          "snippet": "spell = self.owner.get_or_make_spell(InvokeSavagerySpell)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_72_spell_invoke_savagery_spell_invoke_savagery_gets_learned_spell",
        "learnedVersion": true,
        "method": "on_death",
        "relation": "gets learned spell",
        "sourceClass": "SavageSpree",
        "sourceId": "spell_invoke_savagery",
        "sourceName": "Invoke Savagery",
        "targetClass": "InvokeSavagerySpell",
        "targetId": "spell_invoke_savagery",
        "targetName": "Invoke Savagery"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 4581,
          "snippet": "self.owner.level.act_cast(self.owner, spell, self.owner.x, self.owner.y, pay_costs=False)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_73_spell_invoke_savagery_spell_invoke_savagery_free_cast",
        "learnedVersion": true,
        "method": "on_death",
        "relation": "free cast",
        "sourceClass": "SavageSpree",
        "sourceId": "spell_invoke_savagery",
        "sourceName": "Invoke Savagery",
        "targetClass": "InvokeSavagerySpell",
        "targetId": "spell_invoke_savagery",
        "targetName": "Invoke Savagery"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 4680,
          "snippet": "self.caster.level.act_cast(c, s, x, y, pay_costs=False, queue=True)"
        },
        "gateNames": [
          "Arcane Crossfire"
        ],
        "gates": [
          "barrage"
        ],
        "id": "edge_74_spell_magic_missile_spell_magic_missile_free_cast",
        "learnedVersion": true,
        "method": "cast",
        "relation": "free cast",
        "sourceClass": "MagicMissile",
        "sourceId": "spell_magic_missile",
        "sourceName": "Magic Missile",
        "targetClass": "MagicMissile",
        "targetId": "spell_magic_missile",
        "targetName": "Magic Missile"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 4808,
          "snippet": "grant_minion_spell(DevourMind, u, wizard, cool_down=9, pre_insert=True)"
        },
        "gateNames": [
          "Horde Mode"
        ],
        "gates": [
          "horde_mode"
        ],
        "id": "edge_75_spell_devour_mind_spell_devour_mind_grants_minion_spell",
        "learnedVersion": true,
        "method": "make_zombie",
        "relation": "grants minion spell",
        "sourceClass": "DevourMind",
        "sourceId": "spell_devour_mind",
        "sourceName": "Devour Mind",
        "targetClass": "DevourMind",
        "targetId": "spell_devour_mind",
        "targetName": "Devour Mind"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 4930,
          "snippet": "spell = self.owner.get_or_make_spell(MeltSpell)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_76_spell_melt_spell_melt_gets_learned_spell",
        "learnedVersion": true,
        "method": "on_cast",
        "relation": "gets learned spell",
        "sourceClass": "MeltFlame",
        "sourceId": "spell_melt",
        "sourceName": "Melt",
        "targetClass": "MeltSpell",
        "targetId": "spell_melt",
        "targetName": "Melt"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 4930,
          "snippet": "spell = self.owner.get_or_make_spell(MeltSpell)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_77_spell_melt_spell_melt_gets_learned_spell",
        "learnedVersion": true,
        "method": "on_cast",
        "relation": "gets learned spell",
        "sourceClass": "MeltFlame",
        "sourceId": "spell_melt",
        "sourceName": "Melt",
        "targetClass": "MeltSpell",
        "targetId": "spell_melt",
        "targetName": "Melt"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 4931,
          "snippet": "self.owner.level.defer_cast(self.owner, spell, evt.x, evt.y, pay_costs=False)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_78_spell_melt_spell_melt_deferred_cast",
        "learnedVersion": true,
        "method": "on_cast",
        "relation": "deferred cast",
        "sourceClass": "MeltFlame",
        "sourceId": "spell_melt",
        "sourceName": "Melt",
        "targetClass": "MeltSpell",
        "targetId": "spell_melt",
        "targetName": "Melt"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 5194,
          "snippet": "s = caster.get_or_make_spell(Dominate)"
        },
        "gateNames": [
          "Word of Dominion"
        ],
        "gates": [
          "dominion"
        ],
        "id": "edge_79_word_of_undeath_spell_dominate_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "WordOfUndeath",
        "sourceId": "word_of_undeath",
        "sourceName": "Word of Undeath",
        "targetClass": "Dominate",
        "targetId": "spell_dominate",
        "targetName": "Dominate"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 5194,
          "snippet": "s = caster.get_or_make_spell(Dominate)"
        },
        "gateNames": [
          "Word of Dominion"
        ],
        "gates": [
          "dominion"
        ],
        "id": "edge_80_word_of_undeath_spell_dominate_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "WordOfUndeath",
        "sourceId": "word_of_undeath",
        "sourceName": "Word of Undeath",
        "targetClass": "Dominate",
        "targetId": "spell_dominate",
        "targetName": "Dominate"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 5196,
          "snippet": "for u in targets: level.act_cast(caster, s, u.x, u.y, pay_costs=False); yield"
        },
        "gateNames": [
          "Word of Dominion"
        ],
        "gates": [
          "dominion"
        ],
        "id": "edge_81_word_of_undeath_spell_dominate_free_cast",
        "learnedVersion": true,
        "method": "cast",
        "relation": "free cast",
        "sourceClass": "WordOfUndeath",
        "sourceId": "word_of_undeath",
        "sourceName": "Word of Undeath",
        "targetClass": "Dominate",
        "targetId": "spell_dominate",
        "targetName": "Dominate"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 5574,
          "snippet": "if self.get_stat('stone_gaze'): grant_minion_spell(PetrifySpell, eye, caster, cool_down=3)"
        },
        "gateNames": [
          "Stone Gaze"
        ],
        "gates": [
          "stone_gaze"
        ],
        "id": "edge_82_spell_floating_eye_spell_petrify_grants_minion_spell",
        "learnedVersion": true,
        "method": "make_eye",
        "relation": "grants minion spell",
        "sourceClass": "SummonFloatingEye",
        "sourceId": "spell_floating_eye",
        "sourceName": "Floating Eye",
        "targetClass": "PetrifySpell",
        "targetId": "spell_petrify",
        "targetName": "Petrify"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 5931,
          "snippet": "grant_minion_spell(HealingLight, lion, self.caster, cool_down=7)"
        },
        "gateNames": [
          "Shimmermane"
        ],
        "gates": [
          "healing_light_spell"
        ],
        "id": "edge_83_spell_blue_lion_spell_healing_light_grants_minion_spell",
        "learnedVersion": true,
        "method": "make_lion",
        "relation": "grants minion spell",
        "sourceClass": "SummonBlueLion",
        "sourceId": "spell_blue_lion",
        "sourceName": "Blue Lion",
        "targetClass": "HealingLight",
        "targetId": "spell_healing_light",
        "targetName": "Healing Light"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 5945,
          "snippet": "grant_minion_spell(HealingLight, lion, self.caster, cool_down=7)"
        },
        "gateNames": [
          "Shimmermane"
        ],
        "gates": [
          "healing_light_spell"
        ],
        "id": "edge_84_spell_blue_lion_spell_healing_light_grants_minion_spell",
        "learnedVersion": true,
        "method": "make_lamasu",
        "relation": "grants minion spell",
        "sourceClass": "SummonBlueLion",
        "sourceId": "spell_blue_lion",
        "sourceName": "Blue Lion",
        "targetClass": "HealingLight",
        "targetId": "spell_healing_light",
        "targetName": "Healing Light"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 6217,
          "snippet": "self.owner.level.act_cast(self.owner, self.owner.get_or_make_spell(MulticastSpell), self.owner.x, self.owner.y, pay_costs=False)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_85_spell_multicast_spell_multicast_free_cast",
        "learnedVersion": true,
        "method": "on_added",
        "relation": "free cast",
        "sourceClass": "Preparedness",
        "sourceId": "spell_multicast",
        "sourceName": "Multicast",
        "targetClass": "MulticastSpell",
        "targetId": "spell_multicast",
        "targetName": "Multicast"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 6217,
          "snippet": "self.owner.level.act_cast(self.owner, self.owner.get_or_make_spell(MulticastSpell), self.owner.x, self.owner.y, pay_costs=False)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_86_spell_multicast_spell_multicast_gets_learned_spell",
        "learnedVersion": true,
        "method": "on_added",
        "relation": "gets learned spell",
        "sourceClass": "Preparedness",
        "sourceId": "spell_multicast",
        "sourceName": "Multicast",
        "targetClass": "MulticastSpell",
        "targetId": "spell_multicast",
        "targetName": "Multicast"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 6346,
          "snippet": "if self.get_stat('gardeners'): grant_minion_spell(PsychicSeedling, unit, self.owner, cool_down=10)"
        },
        "gateNames": [
          "Gardeners"
        ],
        "gates": [
          "gardeners"
        ],
        "id": "edge_87_spell_fae_court_spell_psychic_seedling_grants_minion_spell",
        "learnedVersion": true,
        "method": "get_faery",
        "relation": "grants minion spell",
        "sourceClass": "FaeCourt",
        "sourceId": "spell_fae_court",
        "sourceName": "Fae Court",
        "targetClass": "PsychicSeedling",
        "targetId": "spell_psychic_seedling",
        "targetName": "Psychic Seedling"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 6355,
          "snippet": "grant_minion_spell(Freeze, unit, self.caster, cool_down=5)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_88_spell_fae_court_spell_freeze_grants_minion_spell",
        "learnedVersion": true,
        "method": "get_winter_faery",
        "relation": "grants minion spell",
        "sourceClass": "FaeCourt",
        "sourceId": "spell_fae_court",
        "sourceName": "Fae Court",
        "targetClass": "Freeze",
        "targetId": "spell_freeze",
        "targetName": "Freeze"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 6372,
          "snippet": "grant_minion_spell(BlizzardSpell, unit, self.caster, cool_down=15)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_89_spell_fae_court_spell_blizzard_grants_minion_spell",
        "learnedVersion": true,
        "method": "get_snow_queen",
        "relation": "grants minion spell",
        "sourceClass": "FaeCourt",
        "sourceId": "spell_fae_court",
        "sourceName": "Fae Court",
        "targetClass": "BlizzardSpell",
        "targetId": "spell_blizzard",
        "targetName": "Blizzard"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 6384,
          "snippet": "if self.get_stat('gardeners'): grant_minion_spell(PsychicSeedling, unit, self.owner, cool_down=10)"
        },
        "gateNames": [
          "Gardeners"
        ],
        "gates": [
          "gardeners"
        ],
        "id": "edge_90_spell_fae_court_spell_psychic_seedling_grants_minion_spell",
        "learnedVersion": true,
        "method": "get_faery_queen",
        "relation": "grants minion spell",
        "sourceClass": "FaeCourt",
        "sourceId": "spell_fae_court",
        "sourceName": "Fae Court",
        "targetClass": "PsychicSeedling",
        "targetId": "spell_psychic_seedling",
        "targetName": "Psychic Seedling"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 6397,
          "snippet": "s = u.get_or_make_spell(ArcaneWardingSpell); s.caster = u; s.statholder = caster"
        },
        "gateNames": [
          "Summon Queen",
          "Fae Protection"
        ],
        "gates": [
          "summon_queen",
          "ward"
        ],
        "id": "edge_91_spell_fae_court_spell_arcane_warding_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "FaeCourt",
        "sourceId": "spell_fae_court",
        "sourceName": "Fae Court",
        "targetClass": "ArcaneWardingSpell",
        "targetId": "spell_arcane_warding",
        "targetName": "Arcane Warding"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 6397,
          "snippet": "s = u.get_or_make_spell(ArcaneWardingSpell); s.caster = u; s.statholder = caster"
        },
        "gateNames": [
          "Summon Queen",
          "Fae Protection"
        ],
        "gates": [
          "summon_queen",
          "ward"
        ],
        "id": "edge_92_spell_fae_court_spell_arcane_warding_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "FaeCourt",
        "sourceId": "spell_fae_court",
        "sourceName": "Fae Court",
        "targetClass": "ArcaneWardingSpell",
        "targetId": "spell_arcane_warding",
        "targetName": "Arcane Warding"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 6398,
          "snippet": "for _ in level.act_cast(u, s, u.x, u.y, pay_costs=False, queue=False): pass"
        },
        "gateNames": [
          "Summon Queen",
          "Fae Protection"
        ],
        "gates": [
          "summon_queen",
          "ward"
        ],
        "id": "edge_93_spell_fae_court_spell_arcane_warding_free_cast",
        "learnedVersion": true,
        "method": "cast",
        "relation": "free cast",
        "sourceClass": "FaeCourt",
        "sourceId": "spell_fae_court",
        "sourceName": "Fae Court",
        "targetClass": "ArcaneWardingSpell",
        "targetId": "spell_arcane_warding",
        "targetName": "Arcane Warding"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 6405,
          "snippet": "s = u.get_or_make_spell(ArcaneWardingSpell); s.caster = u; s.statholder = caster"
        },
        "gateNames": [
          "Fae Protection"
        ],
        "gates": [
          "ward"
        ],
        "id": "edge_94_spell_fae_court_spell_arcane_warding_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "FaeCourt",
        "sourceId": "spell_fae_court",
        "sourceName": "Fae Court",
        "targetClass": "ArcaneWardingSpell",
        "targetId": "spell_arcane_warding",
        "targetName": "Arcane Warding"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 6405,
          "snippet": "s = u.get_or_make_spell(ArcaneWardingSpell); s.caster = u; s.statholder = caster"
        },
        "gateNames": [
          "Fae Protection"
        ],
        "gates": [
          "ward"
        ],
        "id": "edge_95_spell_fae_court_spell_arcane_warding_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "FaeCourt",
        "sourceId": "spell_fae_court",
        "sourceName": "Fae Court",
        "targetClass": "ArcaneWardingSpell",
        "targetId": "spell_arcane_warding",
        "targetName": "Arcane Warding"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 6406,
          "snippet": "for _ in level.act_cast(u, s, u.x, u.y, pay_costs=False, queue=False): pass"
        },
        "gateNames": [
          "Fae Protection"
        ],
        "gates": [
          "ward"
        ],
        "id": "edge_96_spell_fae_court_spell_arcane_warding_free_cast",
        "learnedVersion": true,
        "method": "cast",
        "relation": "free cast",
        "sourceClass": "FaeCourt",
        "sourceId": "spell_fae_court",
        "sourceName": "Fae Court",
        "targetClass": "ArcaneWardingSpell",
        "targetId": "spell_arcane_warding",
        "targetName": "Arcane Warding"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 6490,
          "snippet": "lvl.act_cast(c, c.get_or_make_spell(ImmolateSpell), x, y, pay_costs=False)"
        },
        "gateNames": [
          "Immolating Blast"
        ],
        "gates": [
          "immolate"
        ],
        "id": "edge_97_spell_heavenly_blast_spell_immolate_free_cast",
        "learnedVersion": true,
        "method": "cast",
        "relation": "free cast",
        "sourceClass": "HolyBlast",
        "sourceId": "spell_heavenly_blast",
        "sourceName": "Heavenly Blast",
        "targetClass": "ImmolateSpell",
        "targetId": "spell_immolate",
        "targetName": "Immolate"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 6490,
          "snippet": "lvl.act_cast(c, c.get_or_make_spell(ImmolateSpell), x, y, pay_costs=False)"
        },
        "gateNames": [
          "Immolating Blast"
        ],
        "gates": [
          "immolate"
        ],
        "id": "edge_98_spell_heavenly_blast_spell_immolate_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "HolyBlast",
        "sourceId": "spell_heavenly_blast",
        "sourceName": "Heavenly Blast",
        "targetClass": "ImmolateSpell",
        "targetId": "spell_immolate",
        "targetName": "Immolate"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 6539,
          "snippet": "blazerip_spell = self.caster.get_or_make_spell(Blazerip)"
        },
        "gateNames": [
          "Divine Blaze"
        ],
        "gates": [
          "divine_blaze"
        ],
        "id": "edge_99_spell_holy_fire_spell_blazerip_gets_learned_spell",
        "learnedVersion": true,
        "method": "get_impacted_tiles",
        "relation": "gets learned spell",
        "sourceClass": "HolyFlame",
        "sourceId": "spell_holy_fire",
        "sourceName": "Holy Fire",
        "targetClass": "Blazerip",
        "targetId": "spell_blazerip",
        "targetName": "Blazerip"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 6539,
          "snippet": "blazerip_spell = self.caster.get_or_make_spell(Blazerip)"
        },
        "gateNames": [
          "Divine Blaze"
        ],
        "gates": [
          "divine_blaze"
        ],
        "id": "edge_100_spell_holy_fire_spell_blazerip_gets_learned_spell",
        "learnedVersion": true,
        "method": "get_impacted_tiles",
        "relation": "gets learned spell",
        "sourceClass": "HolyFlame",
        "sourceId": "spell_holy_fire",
        "sourceName": "Holy Fire",
        "targetClass": "Blazerip",
        "targetId": "spell_blazerip",
        "targetName": "Blazerip"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 6577,
          "snippet": "blazerip_spell = caster.get_or_make_spell(Blazerip)"
        },
        "gateNames": [
          "Divine Blaze"
        ],
        "gates": [
          "divine_blaze"
        ],
        "id": "edge_101_spell_holy_fire_spell_blazerip_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "HolyFlame",
        "sourceId": "spell_holy_fire",
        "sourceName": "Holy Fire",
        "targetClass": "Blazerip",
        "targetId": "spell_blazerip",
        "targetName": "Blazerip"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 6577,
          "snippet": "blazerip_spell = caster.get_or_make_spell(Blazerip)"
        },
        "gateNames": [
          "Divine Blaze"
        ],
        "gates": [
          "divine_blaze"
        ],
        "id": "edge_102_spell_holy_fire_spell_blazerip_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "HolyFlame",
        "sourceId": "spell_holy_fire",
        "sourceName": "Holy Fire",
        "targetClass": "Blazerip",
        "targetId": "spell_blazerip",
        "targetName": "Blazerip"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 6578,
          "snippet": "for _ in level.act_cast(caster, blazerip_spell, x, y, pay_costs=False, queue=False): yield"
        },
        "gateNames": [
          "Divine Blaze"
        ],
        "gates": [
          "divine_blaze"
        ],
        "id": "edge_103_spell_holy_fire_spell_blazerip_free_cast",
        "learnedVersion": true,
        "method": "cast",
        "relation": "free cast",
        "sourceClass": "HolyFlame",
        "sourceId": "spell_holy_fire",
        "sourceName": "Holy Fire",
        "targetClass": "Blazerip",
        "targetId": "spell_blazerip",
        "targetName": "Blazerip"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 6581,
          "snippet": "seraph_spell = caster.get_or_make_spell(SummonSeraphim)"
        },
        "gateNames": [
          "Heaven Call"
        ],
        "gates": [
          "heaven_call"
        ],
        "id": "edge_104_spell_holy_fire_spell_call_seraph_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "HolyFlame",
        "sourceId": "spell_holy_fire",
        "sourceName": "Holy Fire",
        "targetClass": "SummonSeraphim",
        "targetId": "spell_call_seraph",
        "targetName": "Call Seraph"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 6581,
          "snippet": "seraph_spell = caster.get_or_make_spell(SummonSeraphim)"
        },
        "gateNames": [
          "Heaven Call"
        ],
        "gates": [
          "heaven_call"
        ],
        "id": "edge_105_spell_holy_fire_spell_call_seraph_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "HolyFlame",
        "sourceId": "spell_holy_fire",
        "sourceName": "Holy Fire",
        "targetClass": "SummonSeraphim",
        "targetId": "spell_call_seraph",
        "targetName": "Call Seraph"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 6582,
          "snippet": "for _ in level.act_cast(caster, seraph_spell, x, y, pay_costs=False, queue=False): yield"
        },
        "gateNames": [
          "Heaven Call"
        ],
        "gates": [
          "heaven_call"
        ],
        "id": "edge_106_spell_holy_fire_spell_call_seraph_free_cast",
        "learnedVersion": true,
        "method": "cast",
        "relation": "free cast",
        "sourceClass": "HolyFlame",
        "sourceId": "spell_holy_fire",
        "sourceName": "Holy Fire",
        "targetClass": "SummonSeraphim",
        "targetId": "spell_call_seraph",
        "targetName": "Call Seraph"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 6620,
          "snippet": "grant_minion_spell(DeathBolt, angel, self.caster, cool_down=4)"
        },
        "gateNames": [
          "Dual Angels"
        ],
        "gates": [
          "cast_deathbolt"
        ],
        "id": "edge_107_spell_choir_of_angels_spell_death_bolt_grants_minion_spell",
        "learnedVersion": true,
        "method": "angel",
        "relation": "grants minion spell",
        "sourceClass": "ChoirOfAngels",
        "sourceId": "spell_choir_of_angels",
        "sourceName": "Choir of Angels",
        "targetClass": "DeathBolt",
        "targetId": "spell_death_bolt",
        "targetName": "Death Bolt"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 6668,
          "snippet": "if promise: cast_seal = caster.level.act_cast; seal = caster.get_or_make_spell(SealFate)"
        },
        "gateNames": [
          "Heaven's Promise"
        ],
        "gates": [
          "promise"
        ],
        "id": "edge_108_spell_heaven_s_wrath_spell_seal_fate_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "HeavensWrath",
        "sourceId": "spell_heaven_s_wrath",
        "sourceName": "Heaven's Wrath",
        "targetClass": "SealFate",
        "targetId": "spell_seal_fate",
        "targetName": "Seal Fate"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 6668,
          "snippet": "if promise: cast_seal = caster.level.act_cast; seal = caster.get_or_make_spell(SealFate)"
        },
        "gateNames": [
          "Heaven's Promise"
        ],
        "gates": [
          "promise"
        ],
        "id": "edge_109_spell_heaven_s_wrath_spell_seal_fate_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "HeavensWrath",
        "sourceId": "spell_heaven_s_wrath",
        "sourceName": "Heaven's Wrath",
        "targetClass": "SealFate",
        "targetId": "spell_seal_fate",
        "targetName": "Seal Fate"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 6919,
          "snippet": "s = caster.get_or_make_spell(ChoirOfAngels)"
        },
        "gateNames": [
          "Angelic Visions"
        ],
        "gates": [
          "angel"
        ],
        "id": "edge_110_spell_blinding_light_spell_choir_of_angels_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "BlindingLightSpell",
        "sourceId": "spell_blinding_light",
        "sourceName": "Blinding Light",
        "targetClass": "ChoirOfAngels",
        "targetId": "spell_choir_of_angels",
        "targetName": "Choir of Angels"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 6919,
          "snippet": "s = caster.get_or_make_spell(ChoirOfAngels)"
        },
        "gateNames": [
          "Angelic Visions"
        ],
        "gates": [
          "angel"
        ],
        "id": "edge_111_spell_blinding_light_spell_choir_of_angels_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "BlindingLightSpell",
        "sourceId": "spell_blinding_light",
        "sourceName": "Blinding Light",
        "targetClass": "ChoirOfAngels",
        "targetId": "spell_choir_of_angels",
        "targetName": "Choir of Angels"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 6921,
          "snippet": "for _ in level.act_cast(caster, s, caster.x, caster.y, pay_costs=False, queue=False): yield"
        },
        "gateNames": [
          "Angelic Visions"
        ],
        "gates": [
          "angel"
        ],
        "id": "edge_112_spell_blinding_light_spell_choir_of_angels_free_cast",
        "learnedVersion": true,
        "method": "cast",
        "relation": "free cast",
        "sourceClass": "BlindingLightSpell",
        "sourceId": "spell_blinding_light",
        "sourceName": "Blinding Light",
        "targetClass": "ChoirOfAngels",
        "targetId": "spell_choir_of_angels",
        "targetName": "Choir of Angels"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 6956,
          "snippet": "if spawn_fn == Thunderbird: grant_minion_spell(ThunderStrike, eagle, self.caster, cool_down=15)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_113_spell_flock_of_eagles_spell_thunder_strike_grants_minion_spell",
        "learnedVersion": true,
        "method": "make_eagle",
        "relation": "grants minion spell",
        "sourceClass": "FlockOfEaglesSpell",
        "sourceId": "spell_flock_of_eagles",
        "sourceName": "Flock of Eagles",
        "targetClass": "ThunderStrike",
        "targetId": "spell_thunder_strike",
        "targetName": "Thunder Strike"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 7064,
          "snippet": "grant_minion_spell(BestowImmortality, idol, self.caster, cool_down=5)"
        },
        "gateNames": [
          "Bastion of Immortality"
        ],
        "gates": [
          "immortality"
        ],
        "id": "edge_114_spell_heavenly_idol_spell_suspend_mortality_grants_minion_spell",
        "learnedVersion": true,
        "method": "cast_instant",
        "relation": "grants minion spell",
        "sourceClass": "HeavenlyIdol",
        "sourceId": "spell_heavenly_idol",
        "sourceName": "Heavenly Idol",
        "targetClass": "BestowImmortality",
        "targetId": "spell_suspend_mortality",
        "targetName": "Suspend Mortality"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 7099,
          "snippet": "if self.get_stat('dragon_mage'): grant_minion_spell(HealingLight, u, self.caster, cool_down=8, pre_insert=True)"
        },
        "gateNames": [
          "Dragon Mage"
        ],
        "gates": [
          "dragon_mage"
        ],
        "id": "edge_115_spell_gold_drake_spell_healing_light_grants_minion_spell",
        "learnedVersion": true,
        "method": "make_gold_drake",
        "relation": "grants minion spell",
        "sourceClass": "SummonGoldDrakeSpell",
        "sourceId": "spell_gold_drake",
        "sourceName": "Gold Drake",
        "targetClass": "HealingLight",
        "targetId": "spell_healing_light",
        "targetName": "Healing Light"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 8108,
          "snippet": "armageddon_blade = caster.get_or_make_spell(ArmageddonBladeSpell) if armageddon else None"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_116_spell_knightly_oath_spell_armageddon_blade_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "SummonKnights",
        "sourceId": "spell_knightly_oath",
        "sourceName": "Knightly Oath",
        "targetClass": "ArmageddonBladeSpell",
        "targetId": "spell_armageddon_blade",
        "targetName": "Armageddon Blade"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 8265,
          "snippet": "level.act_cast(caster, caster.get_or_make_spell(Slimify), unit.x, unit.y, pay_costs=False)"
        },
        "gateNames": [
          "Slimification Shot"
        ],
        "gates": [
          "slimify"
        ],
        "id": "edge_117_spell_slimeshot_spell_slimify_free_cast",
        "learnedVersion": true,
        "method": "cast",
        "relation": "free cast",
        "sourceClass": "Slimeshot",
        "sourceId": "spell_slimeshot",
        "sourceName": "Slimeshot",
        "targetClass": "Slimify",
        "targetId": "spell_slimify",
        "targetName": "Slimify"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 8265,
          "snippet": "level.act_cast(caster, caster.get_or_make_spell(Slimify), unit.x, unit.y, pay_costs=False)"
        },
        "gateNames": [
          "Slimification Shot"
        ],
        "gates": [
          "slimify"
        ],
        "id": "edge_118_spell_slimeshot_spell_slimify_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "Slimeshot",
        "sourceId": "spell_slimeshot",
        "sourceName": "Slimeshot",
        "targetClass": "Slimify",
        "targetId": "spell_slimify",
        "targetName": "Slimify"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 8809,
          "snippet": "grant_minion_spell(LifedrainSpell, evt.unit, self.owner, cool_down=4, pre_insert=True)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_119_spell_spider_queen_spell_lifedrain_grants_minion_spell",
        "learnedVersion": true,
        "method": "on_unit_added",
        "relation": "grants minion spell",
        "sourceClass": "VampireQueen",
        "sourceId": "spell_spider_queen",
        "sourceName": "Spider Queen",
        "targetClass": "LifedrainSpell",
        "targetId": "spell_lifedrain",
        "targetName": "Lifedrain"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 8816,
          "snippet": "grant_minion_spell(LifedrainSpell, u, owner, cool_down=4, pre_insert=True)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_120_spell_spider_queen_spell_lifedrain_grants_minion_spell",
        "learnedVersion": true,
        "method": "on_applied",
        "relation": "grants minion spell",
        "sourceClass": "VampireQueen",
        "sourceId": "spell_spider_queen",
        "sourceName": "Spider Queen",
        "targetClass": "LifedrainSpell",
        "targetId": "spell_lifedrain",
        "targetName": "Lifedrain"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 9036,
          "snippet": "if subzero: level.act_cast(caster, caster.get_or_make_spell(Freeze), unit.x, unit.y, pay_costs=False)"
        },
        "gateNames": [
          "Subzero Ice"
        ],
        "gates": [
          "subzero"
        ],
        "id": "edge_121_spell_iceball_spell_freeze_free_cast",
        "learnedVersion": true,
        "method": "cast",
        "relation": "free cast",
        "sourceClass": "Iceball",
        "sourceId": "spell_iceball",
        "sourceName": "Iceball",
        "targetClass": "Freeze",
        "targetId": "spell_freeze",
        "targetName": "Freeze"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 9036,
          "snippet": "if subzero: level.act_cast(caster, caster.get_or_make_spell(Freeze), unit.x, unit.y, pay_costs=False)"
        },
        "gateNames": [
          "Subzero Ice"
        ],
        "gates": [
          "subzero"
        ],
        "id": "edge_122_spell_iceball_spell_freeze_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "Iceball",
        "sourceId": "spell_iceball",
        "sourceName": "Iceball",
        "targetClass": "Freeze",
        "targetId": "spell_freeze",
        "targetName": "Freeze"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 9486,
          "snippet": "if self.get_stat('regen'): grant_minion_spell(RegenAuraSpell, phoenix, self.owner, cool_down=12)"
        },
        "gateNames": [
          "Restorative Phoenix"
        ],
        "gates": [
          "regen"
        ],
        "id": "edge_123_spell_ice_phoenix_spell_regeneration_aura_grants_minion_spell",
        "learnedVersion": true,
        "method": "make_phoenix",
        "relation": "grants minion spell",
        "sourceClass": "SummonIcePhoenix",
        "sourceId": "spell_ice_phoenix",
        "sourceName": "Ice Phoenix",
        "targetClass": "RegenAuraSpell",
        "targetId": "spell_regeneration_aura",
        "targetName": "Regeneration Aura"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 9532,
          "snippet": "chill_wind = caster.get_or_make_spell(IceWind)"
        },
        "gateNames": [
          "Word of Wind"
        ],
        "gates": [
          "word_of_wind"
        ],
        "id": "edge_124_word_of_ice_spell_chill_wind_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "WordOfIce",
        "sourceId": "word_of_ice",
        "sourceName": "Word of Ice",
        "targetClass": "IceWind",
        "targetId": "spell_chill_wind",
        "targetName": "Chill Wind"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 9532,
          "snippet": "chill_wind = caster.get_or_make_spell(IceWind)"
        },
        "gateNames": [
          "Word of Wind"
        ],
        "gates": [
          "word_of_wind"
        ],
        "id": "edge_125_word_of_ice_spell_chill_wind_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "WordOfIce",
        "sourceId": "word_of_ice",
        "sourceName": "Word of Ice",
        "targetClass": "IceWind",
        "targetId": "spell_chill_wind",
        "targetName": "Chill Wind"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 9537,
          "snippet": "for _ in level.act_cast(self.caster, chill_wind, u.x, u.y,  pay_costs=False, queue=False): pass"
        },
        "gateNames": [
          "Word of Wind"
        ],
        "gates": [
          "word_of_wind"
        ],
        "id": "edge_126_word_of_ice_spell_chill_wind_free_cast",
        "learnedVersion": true,
        "method": "cast",
        "relation": "free cast",
        "sourceClass": "WordOfIce",
        "sourceId": "word_of_ice",
        "sourceName": "Word of Ice",
        "targetClass": "IceWind",
        "targetId": "spell_chill_wind",
        "targetName": "Chill Wind"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 9719,
          "snippet": "if blaze: blazerip = caster.get_or_make_spell(Blazerip)"
        },
        "gateNames": [
          "Arcane Storm"
        ],
        "gates": [
          "blaze"
        ],
        "id": "edge_127_spell_chill_wind_spell_blazerip_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "IceWind",
        "sourceId": "spell_chill_wind",
        "sourceName": "Chill Wind",
        "targetClass": "Blazerip",
        "targetId": "spell_blazerip",
        "targetName": "Blazerip"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 9719,
          "snippet": "if blaze: blazerip = caster.get_or_make_spell(Blazerip)"
        },
        "gateNames": [
          "Arcane Storm"
        ],
        "gates": [
          "blaze"
        ],
        "id": "edge_128_spell_chill_wind_spell_blazerip_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "IceWind",
        "sourceId": "spell_chill_wind",
        "sourceName": "Chill Wind",
        "targetClass": "Blazerip",
        "targetId": "spell_blazerip",
        "targetName": "Blazerip"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 9730,
          "snippet": "for _ in level.act_cast(caster, blazerip, p.x, p.y, pay_costs=False, queue=False): pass"
        },
        "gateNames": [
          "Arcane Storm"
        ],
        "gates": [
          "blaze"
        ],
        "id": "edge_129_spell_chill_wind_spell_blazerip_free_cast",
        "learnedVersion": true,
        "method": "cast",
        "relation": "free cast",
        "sourceClass": "IceWind",
        "sourceId": "spell_chill_wind",
        "sourceName": "Chill Wind",
        "targetClass": "Blazerip",
        "targetId": "spell_blazerip",
        "targetName": "Blazerip"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 9888,
          "snippet": "shrapnel_spell = caster.get_or_make_spell(ShrapnelBlast) if shrapnel_quake else None"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_130_spell_earthquake_spell_shrapnel_blast_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "EarthquakeSpell",
        "sourceId": "spell_earthquake",
        "sourceName": "Earthquake",
        "targetClass": "ShrapnelBlast",
        "targetId": "spell_shrapnel_blast",
        "targetName": "Shrapnel Blast"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 10366,
          "snippet": "if self.get_stat('dragon_mage'): grant_minion_spell(Slimeshot, u, self.owner, cool_down=6)"
        },
        "gateNames": [
          "Dragon Mage"
        ],
        "gates": [
          "dragon_mage"
        ],
        "id": "edge_131_spell_slime_drake_spell_slimeshot_grants_minion_spell",
        "learnedVersion": true,
        "method": "make_slime_drake",
        "relation": "grants minion spell",
        "sourceClass": "SummonSlimeDrake",
        "sourceId": "spell_slime_drake",
        "sourceName": "Slime Drake",
        "targetClass": "Slimeshot",
        "targetId": "spell_slimeshot",
        "targetName": "Slimeshot"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 10530,
          "snippet": "if drake_call: drake_spell = caster.get_or_make_spell(SummonIceDrakeSpell)"
        },
        "gateNames": [
          "Drake Calling"
        ],
        "gates": [
          "drake_call"
        ],
        "id": "edge_132_spell_ice_vortex_spell_ice_drake_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "IceVortex",
        "sourceId": "spell_ice_vortex",
        "sourceName": "Ice Vortex",
        "targetClass": "SummonIceDrakeSpell",
        "targetId": "spell_ice_drake",
        "targetName": "Ice Drake"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 10530,
          "snippet": "if drake_call: drake_spell = caster.get_or_make_spell(SummonIceDrakeSpell)"
        },
        "gateNames": [
          "Drake Calling"
        ],
        "gates": [
          "drake_call"
        ],
        "id": "edge_133_spell_ice_vortex_spell_ice_drake_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "IceVortex",
        "sourceId": "spell_ice_vortex",
        "sourceName": "Ice Vortex",
        "targetClass": "SummonIceDrakeSpell",
        "targetId": "spell_ice_drake",
        "targetName": "Ice Drake"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 10563,
          "snippet": "if drake_call and pre_hp > 0 and not u.is_alive(): level.act_cast(caster, drake_spell, u.x, u.y, pay_costs=False)"
        },
        "gateNames": [
          "Drake Calling"
        ],
        "gates": [
          "drake_call"
        ],
        "id": "edge_134_spell_ice_vortex_spell_ice_drake_free_cast",
        "learnedVersion": true,
        "method": "cast",
        "relation": "free cast",
        "sourceClass": "IceVortex",
        "sourceId": "spell_ice_vortex",
        "sourceName": "Ice Vortex",
        "targetClass": "SummonIceDrakeSpell",
        "targetId": "spell_ice_drake",
        "targetName": "Ice Drake"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 10720,
          "snippet": "spell = self.owner.get_or_make_spell(PyrostaticCurse)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_135_spell_pyrostatic_curse_spell_pyrostatic_curse_gets_learned_spell",
        "learnedVersion": true,
        "method": "on_cast",
        "relation": "gets learned spell",
        "sourceClass": "ChaosCast",
        "sourceId": "spell_pyrostatic_curse",
        "sourceName": "Pyrostatic Curse",
        "targetClass": "PyrostaticCurse",
        "targetId": "spell_pyrostatic_curse",
        "targetName": "Pyrostatic Curse"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 10720,
          "snippet": "spell = self.owner.get_or_make_spell(PyrostaticCurse)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_136_spell_pyrostatic_curse_spell_pyrostatic_curse_gets_learned_spell",
        "learnedVersion": true,
        "method": "on_cast",
        "relation": "gets learned spell",
        "sourceClass": "ChaosCast",
        "sourceId": "spell_pyrostatic_curse",
        "sourceName": "Pyrostatic Curse",
        "targetClass": "PyrostaticCurse",
        "targetId": "spell_pyrostatic_curse",
        "targetName": "Pyrostatic Curse"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 10721,
          "snippet": "self.owner.level.defer_cast(self.owner, spell, evt.x, evt.y, pay_costs=False)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_137_spell_pyrostatic_curse_spell_pyrostatic_curse_deferred_cast",
        "learnedVersion": true,
        "method": "on_cast",
        "relation": "deferred cast",
        "sourceClass": "ChaosCast",
        "sourceId": "spell_pyrostatic_curse",
        "sourceName": "Pyrostatic Curse",
        "targetClass": "PyrostaticCurse",
        "targetId": "spell_pyrostatic_curse",
        "targetName": "Pyrostatic Curse"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 10775,
          "snippet": "self.owner.level.act_cast(self.owner, self.owner.get_or_make_spell(PyrostaticCurse), self.owner.x, self.owner.y, pay_costs=False)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_138_spell_pyrostatic_curse_spell_pyrostatic_curse_free_cast",
        "learnedVersion": true,
        "method": "on_added",
        "relation": "free cast",
        "sourceClass": "Cursebringer",
        "sourceId": "spell_pyrostatic_curse",
        "sourceName": "Pyrostatic Curse",
        "targetClass": "PyrostaticCurse",
        "targetId": "spell_pyrostatic_curse",
        "targetName": "Pyrostatic Curse"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 10775,
          "snippet": "self.owner.level.act_cast(self.owner, self.owner.get_or_make_spell(PyrostaticCurse), self.owner.x, self.owner.y, pay_costs=False)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_139_spell_pyrostatic_curse_spell_pyrostatic_curse_gets_learned_spell",
        "learnedVersion": true,
        "method": "on_added",
        "relation": "gets learned spell",
        "sourceClass": "Cursebringer",
        "sourceId": "spell_pyrostatic_curse",
        "sourceName": "Pyrostatic Curse",
        "targetClass": "PyrostaticCurse",
        "targetId": "spell_pyrostatic_curse",
        "targetName": "Pyrostatic Curse"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 10871,
          "snippet": "self.spell = spell.owner.get_or_make_spell(MercurizeSpell)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_140_spell_mercurize_spell_mercurize_gets_learned_spell",
        "learnedVersion": true,
        "method": "__init__",
        "relation": "gets learned spell",
        "sourceClass": "MercurizeBuff",
        "sourceId": "spell_mercurize",
        "sourceName": "Mercurize",
        "targetClass": "MercurizeSpell",
        "targetId": "spell_mercurize",
        "targetName": "Mercurize"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 10871,
          "snippet": "self.spell = spell.owner.get_or_make_spell(MercurizeSpell)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_141_spell_mercurize_spell_mercurize_gets_learned_spell",
        "learnedVersion": true,
        "method": "__init__",
        "relation": "gets learned spell",
        "sourceClass": "MercurizeBuff",
        "sourceId": "spell_mercurize",
        "sourceName": "Mercurize",
        "targetClass": "MercurizeSpell",
        "targetId": "spell_mercurize",
        "targetName": "Mercurize"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 11455,
          "snippet": "grant_minion_spell(LightningBoltSpell, butterfly, self.spell.caster, cool_down=2)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_142_spell_faehaunt_garden_spell_lightning_bolt_grants_minion_spell",
        "learnedVersion": true,
        "method": "on_damaged",
        "relation": "grants minion spell",
        "sourceClass": "FaehauntGardenBuff",
        "sourceId": "spell_faehaunt_garden",
        "sourceName": "Faehaunt Garden",
        "targetClass": "LightningBoltSpell",
        "targetId": "spell_lightning_bolt",
        "targetName": "Lightning Bolt"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 11456,
          "snippet": "grant_minion_spell(VoidBeamSpell, butterfly, self.spell.caster, cool_down=3)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_143_spell_faehaunt_garden_spell_void_beam_grants_minion_spell",
        "learnedVersion": true,
        "method": "on_damaged",
        "relation": "grants minion spell",
        "sourceClass": "FaehauntGardenBuff",
        "sourceId": "spell_faehaunt_garden",
        "sourceName": "Faehaunt Garden",
        "targetClass": "VoidBeamSpell",
        "targetId": "spell_void_beam",
        "targetName": "Void Beam"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 11589,
          "snippet": "spell = self.caster.get_or_make_spell(FlameBurstSpell)"
        },
        "gateNames": [
          "Flames of Sorcery"
        ],
        "gates": [
          "flames"
        ],
        "id": "edge_144_spell_furnace_of_sorcery_spell_flame_burst_gets_learned_spell",
        "learnedVersion": true,
        "method": "get_impacted_tiles",
        "relation": "gets learned spell",
        "sourceClass": "FurnaceOfSorcerySpell",
        "sourceId": "spell_furnace_of_sorcery",
        "sourceName": "Furnace of Sorcery",
        "targetClass": "FlameBurstSpell",
        "targetId": "spell_flame_burst",
        "targetName": "Flame Burst"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 11589,
          "snippet": "spell = self.caster.get_or_make_spell(FlameBurstSpell)"
        },
        "gateNames": [
          "Flames of Sorcery"
        ],
        "gates": [
          "flames"
        ],
        "id": "edge_145_spell_furnace_of_sorcery_spell_flame_burst_gets_learned_spell",
        "learnedVersion": true,
        "method": "get_impacted_tiles",
        "relation": "gets learned spell",
        "sourceClass": "FurnaceOfSorcerySpell",
        "sourceId": "spell_furnace_of_sorcery",
        "sourceName": "Furnace of Sorcery",
        "targetClass": "FlameBurstSpell",
        "targetId": "spell_flame_burst",
        "targetName": "Flame Burst"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 11603,
          "snippet": "if self.get_stat('lasers'): grant_minion_spell(MagicMissile, hound, self.caster, cool_down=4)"
        },
        "gateNames": [
          "Arcane Eyebolts"
        ],
        "gates": [
          "lasers"
        ],
        "id": "edge_146_spell_furnace_of_sorcery_spell_magic_missile_grants_minion_spell",
        "learnedVersion": true,
        "method": "make_hound",
        "relation": "grants minion spell",
        "sourceClass": "FurnaceOfSorcerySpell",
        "sourceId": "spell_furnace_of_sorcery",
        "sourceName": "Furnace of Sorcery",
        "targetClass": "MagicMissile",
        "targetId": "spell_magic_missile",
        "targetName": "Magic Missile"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 11613,
          "snippet": "if self.get_stat('flames'): grant_minion_spell(FlameBurstSpell, crucible, self.caster, cool_down=5)"
        },
        "gateNames": [
          "Flames of Sorcery"
        ],
        "gates": [
          "flames"
        ],
        "id": "edge_147_spell_furnace_of_sorcery_spell_flame_burst_grants_minion_spell",
        "learnedVersion": true,
        "method": "crucible",
        "relation": "grants minion spell",
        "sourceClass": "FurnaceOfSorcerySpell",
        "sourceId": "spell_furnace_of_sorcery",
        "sourceName": "Furnace of Sorcery",
        "targetClass": "FlameBurstSpell",
        "targetId": "spell_flame_burst",
        "targetName": "Flame Burst"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 11649,
          "snippet": "if self.get_stat('wheel'): grant_minion_spell(WheelOfDeath, skull, self.caster, cool_down=12)"
        },
        "gateNames": [
          "Bone Wheel"
        ],
        "gates": [
          "wheel"
        ],
        "id": "edge_148_spell_golden_skull_spell_wheel_of_death_grants_minion_spell",
        "learnedVersion": true,
        "method": "skull",
        "relation": "grants minion spell",
        "sourceClass": "GoldSkullSummonSpell",
        "sourceId": "spell_golden_skull",
        "sourceName": "Golden Skull",
        "targetClass": "WheelOfDeath",
        "targetId": "spell_wheel_of_death",
        "targetName": "Wheel of Death"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 11650,
          "snippet": "if self.get_stat('bloodshift'): grant_minion_spell(Bloodshift, skull, self.caster, cool_down=3)"
        },
        "gateNames": [
          "Blood Skull"
        ],
        "gates": [
          "bloodshift"
        ],
        "id": "edge_149_spell_golden_skull_spell_bloodshift_grants_minion_spell",
        "learnedVersion": true,
        "method": "skull",
        "relation": "grants minion spell",
        "sourceClass": "GoldSkullSummonSpell",
        "sourceId": "spell_golden_skull",
        "sourceName": "Golden Skull",
        "targetClass": "Bloodshift",
        "targetId": "spell_bloodshift",
        "targetName": "Bloodshift"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 11656,
          "snippet": "if self.get_stat('wheel'): grant_minion_spell(WheelOfDeath, skull, self.caster, cool_down=12)"
        },
        "gateNames": [
          "Bone Wheel"
        ],
        "gates": [
          "wheel"
        ],
        "id": "edge_150_spell_golden_skull_spell_wheel_of_death_grants_minion_spell",
        "learnedVersion": true,
        "method": "skullsentry",
        "relation": "grants minion spell",
        "sourceClass": "GoldSkullSummonSpell",
        "sourceId": "spell_golden_skull",
        "sourceName": "Golden Skull",
        "targetClass": "WheelOfDeath",
        "targetId": "spell_wheel_of_death",
        "targetName": "Wheel of Death"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 11657,
          "snippet": "if self.get_stat('bloodshift'): grant_minion_spell(Bloodshift, skull, self.caster, cool_down=3)"
        },
        "gateNames": [
          "Blood Skull"
        ],
        "gates": [
          "bloodshift"
        ],
        "id": "edge_151_spell_golden_skull_spell_bloodshift_grants_minion_spell",
        "learnedVersion": true,
        "method": "skullsentry",
        "relation": "grants minion spell",
        "sourceClass": "GoldSkullSummonSpell",
        "sourceId": "spell_golden_skull",
        "sourceName": "Golden Skull",
        "targetClass": "Bloodshift",
        "targetId": "spell_bloodshift",
        "targetName": "Bloodshift"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 11735,
          "snippet": "self.owner.get_or_make_spell(WyrmEggs).refund_charges(1)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_152_spell_wyrm_eggs_spell_wyrm_eggs_gets_learned_spell",
        "learnedVersion": true,
        "method": "on_death",
        "relation": "gets learned spell",
        "sourceClass": "ScaleHarvestUpgrade",
        "sourceId": "spell_wyrm_eggs",
        "sourceName": "Wyrm Eggs",
        "targetClass": "WyrmEggs",
        "targetId": "spell_wyrm_eggs",
        "targetName": "Wyrm Eggs"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 11771,
          "snippet": "if self.get_stat('magic_eggs'): grant_minion_spell(FireballSpell, u, self.caster, cool_down=3)"
        },
        "gateNames": [
          "Magic Eggs"
        ],
        "gates": [
          "magic_eggs"
        ],
        "id": "edge_153_spell_wyrm_eggs_spell_fireball_grants_minion_spell",
        "learnedVersion": true,
        "method": "make_fire_wyrm_egg",
        "relation": "grants minion spell",
        "sourceClass": "WyrmEggs",
        "sourceId": "spell_wyrm_eggs",
        "sourceName": "Wyrm Eggs",
        "targetClass": "FireballSpell",
        "targetId": "spell_fireball",
        "targetName": "Fireball"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 11783,
          "snippet": "if self.get_stat('magic_eggs'): grant_minion_spell(Icicle, u, self.caster, cool_down=3)"
        },
        "gateNames": [
          "Magic Eggs"
        ],
        "gates": [
          "magic_eggs"
        ],
        "id": "edge_154_spell_wyrm_eggs_spell_icicle_grants_minion_spell",
        "learnedVersion": true,
        "method": "make_ice_wyrm_egg",
        "relation": "grants minion spell",
        "sourceClass": "WyrmEggs",
        "sourceId": "spell_wyrm_eggs",
        "sourceName": "Wyrm Eggs",
        "targetClass": "Icicle",
        "targetId": "spell_icicle",
        "targetName": "Icicle"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 12038,
          "snippet": "tormentor_spell = self.owner.get_or_make_spell(SummonFieryTormentor)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_155_spell_carnival_of_pain_spell_fiery_tormentor_gets_learned_spell",
        "learnedVersion": true,
        "method": "do_damage",
        "relation": "gets learned spell",
        "sourceClass": "CarnivalOfPainBuff",
        "sourceId": "spell_carnival_of_pain",
        "sourceName": "Carnival of Pain",
        "targetClass": "SummonFieryTormentor",
        "targetId": "spell_fiery_tormentor",
        "targetName": "Fiery Tormentor"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 12038,
          "snippet": "tormentor_spell = self.owner.get_or_make_spell(SummonFieryTormentor)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_156_spell_carnival_of_pain_spell_fiery_tormentor_gets_learned_spell",
        "learnedVersion": true,
        "method": "do_damage",
        "relation": "gets learned spell",
        "sourceClass": "CarnivalOfPainBuff",
        "sourceId": "spell_carnival_of_pain",
        "sourceName": "Carnival of Pain",
        "targetClass": "SummonFieryTormentor",
        "targetId": "spell_fiery_tormentor",
        "targetName": "Fiery Tormentor"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 12039,
          "snippet": "self.owner.level.defer_cast(self.spell.caster, tormentor_spell, u.x, u.y, pay_costs=False)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_157_spell_carnival_of_pain_spell_fiery_tormentor_deferred_cast",
        "learnedVersion": true,
        "method": "do_damage",
        "relation": "deferred cast",
        "sourceClass": "CarnivalOfPainBuff",
        "sourceId": "spell_carnival_of_pain",
        "sourceName": "Carnival of Pain",
        "targetClass": "SummonFieryTormentor",
        "targetId": "spell_fiery_tormentor",
        "targetName": "Fiery Tormentor"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 12661,
          "snippet": "if self.get_stat('bone_spear'): grant_minion_spell(Bonespear, hag, self.caster, 4)"
        },
        "gateNames": [
          "Spear Hag"
        ],
        "gates": [
          "bone_spear"
        ],
        "id": "edge_158_spell_night_hag_spell_bone_spear_grants_minion_spell",
        "learnedVersion": true,
        "method": "hag",
        "relation": "grants minion spell",
        "sourceClass": "HagSummon",
        "sourceId": "spell_night_hag",
        "sourceName": "Night Hag",
        "targetClass": "Bonespear",
        "targetId": "spell_bone_spear",
        "targetName": "Bone Spear"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 12662,
          "snippet": "if self.get_stat('nightmare'): grant_minion_spell(NightmareSpell, hag, self.caster, 30)"
        },
        "gateNames": [
          "Nightmare Hag"
        ],
        "gates": [
          "nightmare"
        ],
        "id": "edge_159_spell_night_hag_spell_nightmare_aura_grants_minion_spell",
        "learnedVersion": true,
        "method": "hag",
        "relation": "grants minion spell",
        "sourceClass": "HagSummon",
        "sourceId": "spell_night_hag",
        "sourceName": "Night Hag",
        "targetClass": "NightmareSpell",
        "targetId": "spell_nightmare_aura",
        "targetName": "Nightmare Aura"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 12863,
          "snippet": "holy_fire = caster.get_or_make_spell(HolyFlame)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_160_ritual_of_revelation_spell_holy_fire_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "RitualOfRevelation",
        "sourceId": "ritual_of_revelation",
        "sourceName": "Ritual of Revelation",
        "targetClass": "HolyFlame",
        "targetId": "spell_holy_fire",
        "targetName": "Holy Fire"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 12863,
          "snippet": "holy_fire = caster.get_or_make_spell(HolyFlame)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_161_ritual_of_revelation_spell_holy_fire_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "RitualOfRevelation",
        "sourceId": "ritual_of_revelation",
        "sourceName": "Ritual of Revelation",
        "targetClass": "HolyFlame",
        "targetId": "spell_holy_fire",
        "targetName": "Holy Fire"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 12868,
          "snippet": "for u in targets: level.act_cast(caster, holy_fire, u.x, u.y, pay_costs=False); yield"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_162_ritual_of_revelation_spell_holy_fire_free_cast",
        "learnedVersion": true,
        "method": "cast",
        "relation": "free cast",
        "sourceClass": "RitualOfRevelation",
        "sourceId": "ritual_of_revelation",
        "sourceName": "Ritual of Revelation",
        "targetClass": "HolyFlame",
        "targetId": "spell_holy_fire",
        "targetName": "Holy Fire"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 12871,
          "snippet": "blazerip = caster.get_or_make_spell(Blazerip)"
        },
        "gateNames": [
          "Arcane Revelation"
        ],
        "gates": [
          "arcane_revelation"
        ],
        "id": "edge_163_ritual_of_revelation_spell_blazerip_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "RitualOfRevelation",
        "sourceId": "ritual_of_revelation",
        "sourceName": "Ritual of Revelation",
        "targetClass": "Blazerip",
        "targetId": "spell_blazerip",
        "targetName": "Blazerip"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 12871,
          "snippet": "blazerip = caster.get_or_make_spell(Blazerip)"
        },
        "gateNames": [
          "Arcane Revelation"
        ],
        "gates": [
          "arcane_revelation"
        ],
        "id": "edge_164_ritual_of_revelation_spell_blazerip_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "RitualOfRevelation",
        "sourceId": "ritual_of_revelation",
        "sourceName": "Ritual of Revelation",
        "targetClass": "Blazerip",
        "targetId": "spell_blazerip",
        "targetName": "Blazerip"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 12875,
          "snippet": "for u in targets: level.act_cast(caster, blazerip, u.x, u.y, pay_costs=False); yield"
        },
        "gateNames": [
          "Arcane Revelation"
        ],
        "gates": [
          "arcane_revelation"
        ],
        "id": "edge_165_ritual_of_revelation_spell_blazerip_free_cast",
        "learnedVersion": true,
        "method": "cast",
        "relation": "free cast",
        "sourceClass": "RitualOfRevelation",
        "sourceId": "ritual_of_revelation",
        "sourceName": "Ritual of Revelation",
        "targetClass": "Blazerip",
        "targetId": "spell_blazerip",
        "targetName": "Blazerip"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 12878,
          "snippet": "light = caster.get_or_make_spell(BlindingLightSpell)"
        },
        "gateNames": [
          "The Witness"
        ],
        "gates": [
          "witness"
        ],
        "id": "edge_166_ritual_of_revelation_spell_blinding_light_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "RitualOfRevelation",
        "sourceId": "ritual_of_revelation",
        "sourceName": "Ritual of Revelation",
        "targetClass": "BlindingLightSpell",
        "targetId": "spell_blinding_light",
        "targetName": "Blinding Light"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 12878,
          "snippet": "light = caster.get_or_make_spell(BlindingLightSpell)"
        },
        "gateNames": [
          "The Witness"
        ],
        "gates": [
          "witness"
        ],
        "id": "edge_167_ritual_of_revelation_spell_blinding_light_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "RitualOfRevelation",
        "sourceId": "ritual_of_revelation",
        "sourceName": "Ritual of Revelation",
        "targetClass": "BlindingLightSpell",
        "targetId": "spell_blinding_light",
        "targetName": "Blinding Light"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 12879,
          "snippet": "level.act_cast(caster, light, caster.x, caster.y, pay_costs=False)"
        },
        "gateNames": [
          "The Witness"
        ],
        "gates": [
          "witness"
        ],
        "id": "edge_168_ritual_of_revelation_spell_blinding_light_free_cast",
        "learnedVersion": true,
        "method": "cast",
        "relation": "free cast",
        "sourceClass": "RitualOfRevelation",
        "sourceId": "ritual_of_revelation",
        "sourceName": "Ritual of Revelation",
        "targetClass": "BlindingLightSpell",
        "targetId": "spell_blinding_light",
        "targetName": "Blinding Light"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 12998,
          "snippet": "if boil: boil_apply = caster.get_or_make_spell(BoilingBlood).do_buff"
        },
        "gateNames": [
          "Boiling Bloodshift"
        ],
        "gates": [
          "boil"
        ],
        "id": "edge_169_spell_bloodshift_spell_boiling_blood_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "Bloodshift",
        "sourceId": "spell_bloodshift",
        "sourceName": "Bloodshift",
        "targetClass": "BoilingBlood",
        "targetId": "spell_boiling_blood",
        "targetName": "Boiling Blood"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 13081,
          "snippet": "if self.get_stat('worm_lord'): grant_minion_spell(Lumbriogenesis, fiend, self.caster, cool_down=13)"
        },
        "gateNames": [
          "Worm Lord"
        ],
        "gates": [
          "worm_lord"
        ],
        "id": "edge_170_spell_flesh_fiend_spell_lumbriogenesis_grants_minion_spell",
        "learnedVersion": true,
        "method": "make_fiend",
        "relation": "grants minion spell",
        "sourceClass": "FleshFiendSpell",
        "sourceId": "spell_flesh_fiend",
        "sourceName": "Flesh Fiend",
        "targetClass": "Lumbriogenesis",
        "targetId": "spell_lumbriogenesis",
        "targetName": "Lumbriogenesis"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 13188,
          "snippet": "s = caster.get_or_make_spell(GoatOffering) if goat else None"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_171_spell_horde_of_halfmen_spell_goatia_offering_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "HordeOfHalfmen",
        "sourceId": "spell_horde_of_halfmen",
        "sourceName": "Horde of Halfmen",
        "targetClass": "GoatOffering",
        "targetId": "spell_goatia_offering",
        "targetName": "Goatia Offering"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 13573,
          "snippet": "if fn is r.WhiteRider and self.get_stat('white'): grant_minion_spell(Dominate, u, self.caster, cool_down=0)"
        },
        "gateNames": [
          "White Rider's Seal"
        ],
        "gates": [
          "white"
        ],
        "id": "edge_172_summon_rider_spell_dominate_grants_minion_spell",
        "learnedVersion": true,
        "method": "make_rider",
        "relation": "grants minion spell",
        "sourceClass": "SummonRider",
        "sourceId": "summon_rider",
        "sourceName": "Summon Rider",
        "targetClass": "Dominate",
        "targetId": "spell_dominate",
        "targetName": "Dominate"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 13913,
          "snippet": "o.level.act_cast(o, o.get_or_make_spell(BoilingBlood), o.x, o.y, pay_costs=False)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_173_spell_stampede_form_spell_boiling_blood_free_cast",
        "learnedVersion": true,
        "method": "on_death",
        "relation": "free cast",
        "sourceClass": "ElephantFormBuff",
        "sourceId": "spell_stampede_form",
        "sourceName": "Stampede Form",
        "targetClass": "BoilingBlood",
        "targetId": "spell_boiling_blood",
        "targetName": "Boiling Blood"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 13913,
          "snippet": "o.level.act_cast(o, o.get_or_make_spell(BoilingBlood), o.x, o.y, pay_costs=False)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_174_spell_stampede_form_spell_boiling_blood_gets_learned_spell",
        "learnedVersion": true,
        "method": "on_death",
        "relation": "gets learned spell",
        "sourceClass": "ElephantFormBuff",
        "sourceId": "spell_stampede_form",
        "sourceName": "Stampede Form",
        "targetClass": "BoilingBlood",
        "targetId": "spell_boiling_blood",
        "targetName": "Boiling Blood"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 14646,
          "snippet": "grant_minion_spell(DragonClaw, evt.unit, self.owner, cool_down=0, pre_insert=False, replace=melee)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_175_spell_dragon_claw_spell_dragon_claw_grants_minion_spell",
        "learnedVersion": true,
        "method": "on_unit_added",
        "relation": "grants minion spell",
        "sourceClass": "DragonTutor",
        "sourceId": "spell_dragon_claw",
        "sourceName": "Dragon Claw",
        "targetClass": "DragonClaw",
        "targetId": "spell_dragon_claw",
        "targetName": "Dragon Claw"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 15066,
          "snippet": "nightmare = self.caster.get_or_make_spell(NightmareSpell)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_176_spell_summon_bone_knights_spell_nightmare_aura_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "SummonBoneKnights",
        "sourceId": "spell_summon_bone_knights",
        "sourceName": "Summon Bone Knights",
        "targetClass": "NightmareSpell",
        "targetId": "spell_nightmare_aura",
        "targetName": "Nightmare Aura"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 15066,
          "snippet": "nightmare = self.caster.get_or_make_spell(NightmareSpell)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_177_spell_summon_bone_knights_spell_nightmare_aura_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "SummonBoneKnights",
        "sourceId": "spell_summon_bone_knights",
        "sourceName": "Summon Bone Knights",
        "targetClass": "NightmareSpell",
        "targetId": "spell_nightmare_aura",
        "targetName": "Nightmare Aura"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 15208,
          "snippet": "s = self.owner.get_or_make_spell(DragonBreath)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_178_spell_ride_drake_spell_dragon_breath_gets_learned_spell",
        "learnedVersion": true,
        "method": "on_advance",
        "relation": "gets learned spell",
        "sourceClass": "DragonRideBuff",
        "sourceId": "spell_ride_drake",
        "sourceName": "Ride Drake",
        "targetClass": "DragonBreath",
        "targetId": "spell_dragon_breath",
        "targetName": "Dragon Breath"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 15208,
          "snippet": "s = self.owner.get_or_make_spell(DragonBreath)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_179_spell_ride_drake_spell_dragon_breath_gets_learned_spell",
        "learnedVersion": true,
        "method": "on_advance",
        "relation": "gets learned spell",
        "sourceClass": "DragonRideBuff",
        "sourceId": "spell_ride_drake",
        "sourceName": "Ride Drake",
        "targetClass": "DragonBreath",
        "targetId": "spell_dragon_breath",
        "targetName": "Dragon Breath"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 15214,
          "snippet": "self.owner.level.act_cast(self.owner, s, p.x, p.y, pay_costs=False, queue=True)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_180_spell_ride_drake_spell_dragon_breath_free_cast",
        "learnedVersion": true,
        "method": "on_advance",
        "relation": "free cast",
        "sourceClass": "DragonRideBuff",
        "sourceId": "spell_ride_drake",
        "sourceName": "Ride Drake",
        "targetClass": "DragonBreath",
        "targetId": "spell_dragon_breath",
        "targetName": "Dragon Breath"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 16365,
          "snippet": "s = self.caster.get_or_make_spell(FlameStrikeSpell)"
        },
        "gateNames": [
          "Flames of Heaven"
        ],
        "gates": [
          "pillar"
        ],
        "id": "edge_181_spell_wall_of_flame_spell_pillar_of_fire_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "WallOfFlame",
        "sourceId": "spell_wall_of_flame",
        "sourceName": "Wall of Flame",
        "targetClass": "FlameStrikeSpell",
        "targetId": "spell_pillar_of_fire",
        "targetName": "Pillar of Fire"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 16365,
          "snippet": "s = self.caster.get_or_make_spell(FlameStrikeSpell)"
        },
        "gateNames": [
          "Flames of Heaven"
        ],
        "gates": [
          "pillar"
        ],
        "id": "edge_182_spell_wall_of_flame_spell_pillar_of_fire_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "WallOfFlame",
        "sourceId": "spell_wall_of_flame",
        "sourceName": "Wall of Flame",
        "targetClass": "FlameStrikeSpell",
        "targetId": "spell_pillar_of_fire",
        "targetName": "Pillar of Fire"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 16367,
          "snippet": "self.caster.level.act_cast(self.caster, s, p.x, p.y, pay_costs=False)"
        },
        "gateNames": [
          "Flames of Heaven"
        ],
        "gates": [
          "pillar"
        ],
        "id": "edge_183_spell_wall_of_flame_spell_pillar_of_fire_free_cast",
        "learnedVersion": true,
        "method": "cast",
        "relation": "free cast",
        "sourceClass": "WallOfFlame",
        "sourceId": "spell_wall_of_flame",
        "sourceName": "Wall of Flame",
        "targetClass": "FlameStrikeSpell",
        "targetId": "spell_pillar_of_fire",
        "targetName": "Pillar of Fire"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 16573,
          "snippet": "level.act_cast(self.caster, self.caster.get_or_make_spell(RotGaze), self.caster.x, self.caster.y, pay_costs=False)"
        },
        "gateNames": [
          "Plague Bringer"
        ],
        "gates": [
          "plague"
        ],
        "id": "edge_184_spell_miasma_spell_rot_gaze_free_cast",
        "learnedVersion": true,
        "method": "cast",
        "relation": "free cast",
        "sourceClass": "Miasma",
        "sourceId": "spell_miasma",
        "sourceName": "Miasma",
        "targetClass": "RotGaze",
        "targetId": "spell_rot_gaze",
        "targetName": "Rot Gaze"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 16573,
          "snippet": "level.act_cast(self.caster, self.caster.get_or_make_spell(RotGaze), self.caster.x, self.caster.y, pay_costs=False)"
        },
        "gateNames": [
          "Plague Bringer"
        ],
        "gates": [
          "plague"
        ],
        "id": "edge_185_spell_miasma_spell_rot_gaze_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "Miasma",
        "sourceId": "spell_miasma",
        "sourceName": "Miasma",
        "targetClass": "RotGaze",
        "targetId": "spell_rot_gaze",
        "targetName": "Rot Gaze"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 16936,
          "snippet": "for _ in level.act_cast(caster, caster.get_or_make_spell(EarthquakeSpell), x, y, pay_costs=False, queue=False):"
        },
        "gateNames": [
          "Environmental Destruction"
        ],
        "gates": [
          "quake"
        ],
        "id": "edge_186_spell_black_hole_spell_earthquake_free_cast",
        "learnedVersion": true,
        "method": "cast",
        "relation": "free cast",
        "sourceClass": "BlackHoleSpell",
        "sourceId": "spell_black_hole",
        "sourceName": "Black Hole",
        "targetClass": "EarthquakeSpell",
        "targetId": "spell_earthquake",
        "targetName": "Earthquake"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 16936,
          "snippet": "for _ in level.act_cast(caster, caster.get_or_make_spell(EarthquakeSpell), x, y, pay_costs=False, queue=False):"
        },
        "gateNames": [
          "Environmental Destruction"
        ],
        "gates": [
          "quake"
        ],
        "id": "edge_187_spell_black_hole_spell_earthquake_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "BlackHoleSpell",
        "sourceId": "spell_black_hole",
        "sourceName": "Black Hole",
        "targetClass": "EarthquakeSpell",
        "targetId": "spell_earthquake",
        "targetName": "Earthquake"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 17090,
          "snippet": "if self.get_stat('guard'): level.act_cast(caster, caster.get_or_make_spell(SummonEarthElemental), origin.x, origin.y, pay_costs=False)"
        },
        "gateNames": [
          "Guarded Entrance"
        ],
        "gates": [
          "guard"
        ],
        "id": "edge_188_spell_earthen_passage_spell_earthen_sentinel_free_cast",
        "learnedVersion": true,
        "method": "cast_instant",
        "relation": "free cast",
        "sourceClass": "EarthenPassage",
        "sourceId": "spell_earthen_passage",
        "sourceName": "Earthen Passage",
        "targetClass": "SummonEarthElemental",
        "targetId": "spell_earthen_sentinel",
        "targetName": "Earthen Sentinel"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 17090,
          "snippet": "if self.get_stat('guard'): level.act_cast(caster, caster.get_or_make_spell(SummonEarthElemental), origin.x, origin.y, pay_costs=False)"
        },
        "gateNames": [
          "Guarded Entrance"
        ],
        "gates": [
          "guard"
        ],
        "id": "edge_189_spell_earthen_passage_spell_earthen_sentinel_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast_instant",
        "relation": "gets learned spell",
        "sourceClass": "EarthenPassage",
        "sourceId": "spell_earthen_passage",
        "sourceName": "Earthen Passage",
        "targetClass": "SummonEarthElemental",
        "targetId": "spell_earthen_sentinel",
        "targetName": "Earthen Sentinel"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 17358,
          "snippet": "owner.level.defer_cast(owner, owner.get_or_make_spell(SummonFloatingEye), evt.unit.x, evt.unit.y, pay_costs=False)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_190_spell_ritual_of_the_opening_eye_spell_floating_eye_deferred_cast",
        "learnedVersion": true,
        "method": "on_death",
        "relation": "deferred cast",
        "sourceClass": "EyeOnKill",
        "sourceId": "spell_ritual_of_the_opening_eye",
        "sourceName": "Ritual of the Opening Eye",
        "targetClass": "SummonFloatingEye",
        "targetId": "spell_floating_eye",
        "targetName": "Floating Eye"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 17358,
          "snippet": "owner.level.defer_cast(owner, owner.get_or_make_spell(SummonFloatingEye), evt.unit.x, evt.unit.y, pay_costs=False)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_191_spell_ritual_of_the_opening_eye_spell_floating_eye_gets_learned_spell",
        "learnedVersion": true,
        "method": "on_death",
        "relation": "gets learned spell",
        "sourceClass": "EyeOnKill",
        "sourceId": "spell_ritual_of_the_opening_eye",
        "sourceName": "Ritual of the Opening Eye",
        "targetClass": "SummonFloatingEye",
        "targetId": "spell_floating_eye",
        "targetName": "Floating Eye"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 17417,
          "snippet": "s = caster.get_or_make_spell(SummonFloatingEye)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_192_spell_ritual_of_the_opening_eye_spell_floating_eye_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "RitualOfTheOpeningEye",
        "sourceId": "spell_ritual_of_the_opening_eye",
        "sourceName": "Ritual of the Opening Eye",
        "targetClass": "SummonFloatingEye",
        "targetId": "spell_floating_eye",
        "targetName": "Floating Eye"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 17417,
          "snippet": "s = caster.get_or_make_spell(SummonFloatingEye)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_193_spell_ritual_of_the_opening_eye_spell_floating_eye_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "RitualOfTheOpeningEye",
        "sourceId": "spell_ritual_of_the_opening_eye",
        "sourceName": "Ritual of the Opening Eye",
        "targetClass": "SummonFloatingEye",
        "targetId": "spell_floating_eye",
        "targetName": "Floating Eye"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 17418,
          "snippet": "for pt in opts[:self.get_stat('num_summons')]: level.act_cast(caster, s, pt.x, pt.y, pay_costs=False)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_194_spell_ritual_of_the_opening_eye_spell_floating_eye_free_cast",
        "learnedVersion": true,
        "method": "cast",
        "relation": "free cast",
        "sourceClass": "RitualOfTheOpeningEye",
        "sourceId": "spell_ritual_of_the_opening_eye",
        "sourceName": "Ritual of the Opening Eye",
        "targetClass": "SummonFloatingEye",
        "targetId": "spell_floating_eye",
        "targetName": "Floating Eye"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 17423,
          "snippet": "level.act_cast(caster, s, caster.x, caster.y, pay_costs=False)"
        },
        "gateNames": [
          "Rapturous Sight"
        ],
        "gates": [
          "open"
        ],
        "id": "edge_195_spell_ritual_of_the_opening_eye_spell_floating_eye_free_cast",
        "learnedVersion": true,
        "method": "cast",
        "relation": "free cast",
        "sourceClass": "RitualOfTheOpeningEye",
        "sourceId": "spell_ritual_of_the_opening_eye",
        "sourceName": "Ritual of the Opening Eye",
        "targetClass": "SummonFloatingEye",
        "targetId": "spell_floating_eye",
        "targetName": "Floating Eye"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 17673,
          "snippet": "blade_spell = caster.get_or_make_spell(SummonBlade)"
        },
        "gateNames": [
          "Anima Thief"
        ],
        "gates": [
          "blades"
        ],
        "id": "edge_196_spell_ritual_of_flying_daggers_spell_summon_blade_gets_learned_spell",
        "learnedVersion": true,
        "method": "release_daggers",
        "relation": "gets learned spell",
        "sourceClass": "RitualOfFlyingDaggers",
        "sourceId": "spell_ritual_of_flying_daggers",
        "sourceName": "Ritual of Flying Daggers",
        "targetClass": "SummonBlade",
        "targetId": "spell_summon_blade",
        "targetName": "Summon Blade"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 17673,
          "snippet": "blade_spell = caster.get_or_make_spell(SummonBlade)"
        },
        "gateNames": [
          "Anima Thief"
        ],
        "gates": [
          "blades"
        ],
        "id": "edge_197_spell_ritual_of_flying_daggers_spell_summon_blade_gets_learned_spell",
        "learnedVersion": true,
        "method": "release_daggers",
        "relation": "gets learned spell",
        "sourceClass": "RitualOfFlyingDaggers",
        "sourceId": "spell_ritual_of_flying_daggers",
        "sourceName": "Ritual of Flying Daggers",
        "targetClass": "SummonBlade",
        "targetId": "spell_summon_blade",
        "targetName": "Summon Blade"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 17674,
          "snippet": "for u in kills: level.act_cast(caster, blade_spell, u.x, u.y, pay_costs=False)"
        },
        "gateNames": [
          "Anima Thief"
        ],
        "gates": [
          "blades"
        ],
        "id": "edge_198_spell_ritual_of_flying_daggers_spell_summon_blade_free_cast",
        "learnedVersion": true,
        "method": "release_daggers",
        "relation": "free cast",
        "sourceClass": "RitualOfFlyingDaggers",
        "sourceId": "spell_ritual_of_flying_daggers",
        "sourceName": "Ritual of Flying Daggers",
        "targetClass": "SummonBlade",
        "targetId": "spell_summon_blade",
        "targetName": "Summon Blade"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 17833,
          "snippet": "if secret: seal = caster.get_or_make_spell(SealFate)"
        },
        "gateNames": [
          "Dreadful Secret"
        ],
        "gates": [
          "secret"
        ],
        "id": "edge_199_spell_dread_lash_spell_seal_fate_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "DreadLash",
        "sourceId": "spell_dread_lash",
        "sourceName": "Dread Lash",
        "targetClass": "SealFate",
        "targetId": "spell_seal_fate",
        "targetName": "Seal Fate"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 17833,
          "snippet": "if secret: seal = caster.get_or_make_spell(SealFate)"
        },
        "gateNames": [
          "Dreadful Secret"
        ],
        "gates": [
          "secret"
        ],
        "id": "edge_200_spell_dread_lash_spell_seal_fate_gets_learned_spell",
        "learnedVersion": true,
        "method": "cast",
        "relation": "gets learned spell",
        "sourceClass": "DreadLash",
        "sourceId": "spell_dread_lash",
        "sourceName": "Dread Lash",
        "targetClass": "SealFate",
        "targetId": "spell_seal_fate",
        "targetName": "Seal Fate"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Spells.py",
          "line": 17860,
          "snippet": "level.act_cast(caster, seal, target_unit.x, target_unit.y, pay_costs=False)"
        },
        "gateNames": [
          "Dreadful Secret"
        ],
        "gates": [
          "secret"
        ],
        "id": "edge_201_spell_dread_lash_spell_seal_fate_free_cast",
        "learnedVersion": true,
        "method": "cast",
        "relation": "free cast",
        "sourceClass": "DreadLash",
        "sourceId": "spell_dread_lash",
        "sourceName": "Dread Lash",
        "targetClass": "SealFate",
        "targetId": "spell_seal_fate",
        "targetName": "Seal Fate"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Equipment.py",
          "line": 2490,
          "snippet": "s = self.owner.get_or_make_spell(PetrifySpell)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_202_equipment_basilisk_scale_armor_spell_petrify_gets_learned_spell",
        "learnedVersion": true,
        "method": "retributive_cast",
        "relation": "gets learned spell",
        "sourceClass": "BasiliskScaleArmor",
        "sourceId": "equipment_basilisk_scale_armor",
        "sourceName": "Basilisk Scale Armor",
        "targetClass": "PetrifySpell",
        "targetId": "spell_petrify",
        "targetName": "Petrify"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Equipment.py",
          "line": 2490,
          "snippet": "s = self.owner.get_or_make_spell(PetrifySpell)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_203_equipment_basilisk_scale_armor_spell_petrify_gets_learned_spell",
        "learnedVersion": true,
        "method": "retributive_cast",
        "relation": "gets learned spell",
        "sourceClass": "BasiliskScaleArmor",
        "sourceId": "equipment_basilisk_scale_armor",
        "sourceName": "Basilisk Scale Armor",
        "targetClass": "PetrifySpell",
        "targetId": "spell_petrify",
        "targetName": "Petrify"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Equipment.py",
          "line": 2491,
          "snippet": "for _ in self.owner.level.act_cast(self.owner, s, unit.x, unit.y, pay_costs=False, queue=False): yield"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_204_equipment_basilisk_scale_armor_spell_petrify_free_cast",
        "learnedVersion": true,
        "method": "retributive_cast",
        "relation": "free cast",
        "sourceClass": "BasiliskScaleArmor",
        "sourceId": "equipment_basilisk_scale_armor",
        "sourceName": "Basilisk Scale Armor",
        "targetClass": "PetrifySpell",
        "targetId": "spell_petrify",
        "targetName": "Petrify"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Equipment.py",
          "line": 2743,
          "snippet": "grant_minion_spell(BlinkSpell, u, self.owner, cool_down=8, pre_insert=True)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_205_equipment_stormbrood_trickshoes_spell_blink_grants_minion_spell",
        "learnedVersion": true,
        "method": "make_stormtroll",
        "relation": "grants minion spell",
        "sourceClass": "StormbroodTrickshoes",
        "sourceId": "equipment_stormbrood_trickshoes",
        "sourceName": "Stormbrood Trickshoes",
        "targetClass": "BlinkSpell",
        "targetId": "spell_blink",
        "targetName": "Blink"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Equipment.py",
          "line": 3365,
          "snippet": "level.act_cast(owner, owner.get_or_make_spell(DragonClaw), p.x, p.y, pay_costs=False)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_206_equipment_dragonclaw_sabatons_spell_dragon_claw_free_cast",
        "learnedVersion": true,
        "method": "on_move",
        "relation": "free cast",
        "sourceClass": "DragonclawSabatons",
        "sourceId": "equipment_dragonclaw_sabatons",
        "sourceName": "Dragonclaw Sabatons",
        "targetClass": "DragonClaw",
        "targetId": "spell_dragon_claw",
        "targetName": "Dragon Claw"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Equipment.py",
          "line": 3365,
          "snippet": "level.act_cast(owner, owner.get_or_make_spell(DragonClaw), p.x, p.y, pay_costs=False)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_207_equipment_dragonclaw_sabatons_spell_dragon_claw_gets_learned_spell",
        "learnedVersion": true,
        "method": "on_move",
        "relation": "gets learned spell",
        "sourceClass": "DragonclawSabatons",
        "sourceId": "equipment_dragonclaw_sabatons",
        "sourceName": "Dragonclaw Sabatons",
        "targetClass": "DragonClaw",
        "targetId": "spell_dragon_claw",
        "targetName": "Dragon Claw"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Equipment.py",
          "line": 3786,
          "snippet": "spell = self.owner.get_or_make_spell(SealFate)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_208_equipment_boots_of_imminent_doom_spell_seal_fate_gets_learned_spell",
        "learnedVersion": true,
        "method": "on_enter",
        "relation": "gets learned spell",
        "sourceClass": "BootsOfImminentDoom",
        "sourceId": "equipment_boots_of_imminent_doom",
        "sourceName": "Boots of Imminent Doom",
        "targetClass": "SealFate",
        "targetId": "spell_seal_fate",
        "targetName": "Seal Fate"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Equipment.py",
          "line": 3786,
          "snippet": "spell = self.owner.get_or_make_spell(SealFate)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_209_equipment_boots_of_imminent_doom_spell_seal_fate_gets_learned_spell",
        "learnedVersion": true,
        "method": "on_enter",
        "relation": "gets learned spell",
        "sourceClass": "BootsOfImminentDoom",
        "sourceId": "equipment_boots_of_imminent_doom",
        "sourceName": "Boots of Imminent Doom",
        "targetClass": "SealFate",
        "targetId": "spell_seal_fate",
        "targetName": "Seal Fate"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Equipment.py",
          "line": 3788,
          "snippet": "for enemy in enemies: self.owner.level.act_cast(self.owner, spell, enemy.x, enemy.y, pay_costs=False)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_210_equipment_boots_of_imminent_doom_spell_seal_fate_free_cast",
        "learnedVersion": true,
        "method": "on_enter",
        "relation": "free cast",
        "sourceClass": "BootsOfImminentDoom",
        "sourceId": "equipment_boots_of_imminent_doom",
        "sourceName": "Boots of Imminent Doom",
        "targetClass": "SealFate",
        "targetId": "spell_seal_fate",
        "targetName": "Seal Fate"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Equipment.py",
          "line": 3806,
          "snippet": "spell = self.owner.get_or_make_spell(HolyBlast)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_211_equipment_rod_of_heaven_s_assault_spell_heavenly_blast_gets_learned_spell",
        "learnedVersion": true,
        "method": "on_enter",
        "relation": "gets learned spell",
        "sourceClass": "RodOfHeavensAssault",
        "sourceId": "equipment_rod_of_heaven_s_assault",
        "sourceName": "Rod of Heaven's Assault",
        "targetClass": "HolyBlast",
        "targetId": "spell_heavenly_blast",
        "targetName": "Heavenly Blast"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Equipment.py",
          "line": 3806,
          "snippet": "spell = self.owner.get_or_make_spell(HolyBlast)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_212_equipment_rod_of_heaven_s_assault_spell_heavenly_blast_gets_learned_spell",
        "learnedVersion": true,
        "method": "on_enter",
        "relation": "gets learned spell",
        "sourceClass": "RodOfHeavensAssault",
        "sourceId": "equipment_rod_of_heaven_s_assault",
        "sourceName": "Rod of Heaven's Assault",
        "targetClass": "HolyBlast",
        "targetId": "spell_heavenly_blast",
        "targetName": "Heavenly Blast"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Equipment.py",
          "line": 3807,
          "snippet": "for enemy in enemies: self.owner.level.act_cast(self.owner, spell, enemy.x, enemy.y, pay_costs=False)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_213_equipment_rod_of_heaven_s_assault_spell_heavenly_blast_free_cast",
        "learnedVersion": true,
        "method": "on_enter",
        "relation": "free cast",
        "sourceClass": "RodOfHeavensAssault",
        "sourceId": "equipment_rod_of_heaven_s_assault",
        "sourceName": "Rod of Heaven's Assault",
        "targetClass": "HolyBlast",
        "targetId": "spell_heavenly_blast",
        "targetName": "Heavenly Blast"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Equipment.py",
          "line": 5470,
          "snippet": "s = self.owner.get_or_make_spell(VoidBeamSpell)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_214_equipment_crown_of_devastation_spell_void_beam_gets_learned_spell",
        "learnedVersion": true,
        "method": "do_beam",
        "relation": "gets learned spell",
        "sourceClass": "CrownOfDevastationBuff",
        "sourceId": "equipment_crown_of_devastation",
        "sourceName": "Crown of Devastation",
        "targetClass": "VoidBeamSpell",
        "targetId": "spell_void_beam",
        "targetName": "Void Beam"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Equipment.py",
          "line": 5470,
          "snippet": "s = self.owner.get_or_make_spell(VoidBeamSpell)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_215_equipment_crown_of_devastation_spell_void_beam_gets_learned_spell",
        "learnedVersion": true,
        "method": "do_beam",
        "relation": "gets learned spell",
        "sourceClass": "CrownOfDevastationBuff",
        "sourceId": "equipment_crown_of_devastation",
        "sourceName": "Crown of Devastation",
        "targetClass": "VoidBeamSpell",
        "targetId": "spell_void_beam",
        "targetName": "Void Beam"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Equipment.py",
          "line": 5471,
          "snippet": "self.owner.level.act_cast(self.owner, s, u.x, u.y, pay_costs=False)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_216_equipment_crown_of_devastation_spell_void_beam_free_cast",
        "learnedVersion": true,
        "method": "do_beam",
        "relation": "free cast",
        "sourceClass": "CrownOfDevastationBuff",
        "sourceId": "equipment_crown_of_devastation",
        "sourceName": "Crown of Devastation",
        "targetClass": "VoidBeamSpell",
        "targetId": "spell_void_beam",
        "targetName": "Void Beam"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Equipment.py",
          "line": 5859,
          "snippet": "s = self.owner.get_or_make_spell(IgnitePoison)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_217_equipment_explosive_spore_manual_spell_combust_poison_gets_learned_spell",
        "learnedVersion": true,
        "method": "on_advance",
        "relation": "gets learned spell",
        "sourceClass": "ExplosiveSporeManual",
        "sourceId": "equipment_explosive_spore_manual",
        "sourceName": "Explosive Spore Manual",
        "targetClass": "IgnitePoison",
        "targetId": "spell_combust_poison",
        "targetName": "Combust Poison"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Equipment.py",
          "line": 5859,
          "snippet": "s = self.owner.get_or_make_spell(IgnitePoison)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_218_equipment_explosive_spore_manual_spell_combust_poison_gets_learned_spell",
        "learnedVersion": true,
        "method": "on_advance",
        "relation": "gets learned spell",
        "sourceClass": "ExplosiveSporeManual",
        "sourceId": "equipment_explosive_spore_manual",
        "sourceName": "Explosive Spore Manual",
        "targetClass": "IgnitePoison",
        "targetId": "spell_combust_poison",
        "targetName": "Combust Poison"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Equipment.py",
          "line": 5861,
          "snippet": "self.owner.level.act_cast(self.owner, s, self.owner.x, self.owner.y, pay_costs=False)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_219_equipment_explosive_spore_manual_spell_combust_poison_free_cast",
        "learnedVersion": true,
        "method": "on_advance",
        "relation": "free cast",
        "sourceClass": "ExplosiveSporeManual",
        "sourceId": "equipment_explosive_spore_manual",
        "sourceName": "Explosive Spore Manual",
        "targetClass": "IgnitePoison",
        "targetId": "spell_combust_poison",
        "targetName": "Combust Poison"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Equipment.py",
          "line": 6289,
          "snippet": "spell = o.get_or_make_spell(MagnetizeSpell)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_220_equipment_the_north_pole_spell_magnetize_gets_learned_spell",
        "learnedVersion": true,
        "method": "do_magnetize",
        "relation": "gets learned spell",
        "sourceClass": "TheNorthPole",
        "sourceId": "equipment_the_north_pole",
        "sourceName": "The North Pole",
        "targetClass": "MagnetizeSpell",
        "targetId": "spell_magnetize",
        "targetName": "Magnetize"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Equipment.py",
          "line": 6289,
          "snippet": "spell = o.get_or_make_spell(MagnetizeSpell)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_221_equipment_the_north_pole_spell_magnetize_gets_learned_spell",
        "learnedVersion": true,
        "method": "do_magnetize",
        "relation": "gets learned spell",
        "sourceClass": "TheNorthPole",
        "sourceId": "equipment_the_north_pole",
        "sourceName": "The North Pole",
        "targetClass": "MagnetizeSpell",
        "targetId": "spell_magnetize",
        "targetName": "Magnetize"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Equipment.py",
          "line": 6291,
          "snippet": "o.level.act_cast(o, spell, u.x, u.y, pay_costs=False, queue=True)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_222_equipment_the_north_pole_spell_magnetize_free_cast",
        "learnedVersion": true,
        "method": "do_magnetize",
        "relation": "free cast",
        "sourceClass": "TheNorthPole",
        "sourceId": "equipment_the_north_pole",
        "sourceName": "The North Pole",
        "targetClass": "MagnetizeSpell",
        "targetId": "spell_magnetize",
        "targetName": "Magnetize"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Equipment.py",
          "line": 6814,
          "snippet": "spell = self.owner.get_or_make_spell(MercurizeSpell)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_223_equipment_quicksilver_armor_spell_mercurize_gets_learned_spell",
        "learnedVersion": true,
        "method": "do_cast",
        "relation": "gets learned spell",
        "sourceClass": "QuicksilverArmor",
        "sourceId": "equipment_quicksilver_armor",
        "sourceName": "Quicksilver Armor",
        "targetClass": "MercurizeSpell",
        "targetId": "spell_mercurize",
        "targetName": "Mercurize"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Equipment.py",
          "line": 6814,
          "snippet": "spell = self.owner.get_or_make_spell(MercurizeSpell)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_224_equipment_quicksilver_armor_spell_mercurize_gets_learned_spell",
        "learnedVersion": true,
        "method": "do_cast",
        "relation": "gets learned spell",
        "sourceClass": "QuicksilverArmor",
        "sourceId": "equipment_quicksilver_armor",
        "sourceName": "Quicksilver Armor",
        "targetClass": "MercurizeSpell",
        "targetId": "spell_mercurize",
        "targetName": "Mercurize"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Equipment.py",
          "line": 6815,
          "snippet": "for _ in self.owner.level.act_cast(self.owner, spell, target.x, target.y, pay_costs=False, queue=False): yield"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_225_equipment_quicksilver_armor_spell_mercurize_free_cast",
        "learnedVersion": true,
        "method": "do_cast",
        "relation": "free cast",
        "sourceClass": "QuicksilverArmor",
        "sourceId": "equipment_quicksilver_armor",
        "sourceName": "Quicksilver Armor",
        "targetClass": "MercurizeSpell",
        "targetId": "spell_mercurize",
        "targetName": "Mercurize"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Equipment.py",
          "line": 7595,
          "snippet": "self.owner.level.act_cast(self.owner, self.owner.get_or_make_spell(Vampiricism), evt.unit.x, evt.unit.y, pay_costs=False, queue=True)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_226_equipment_plasmic_distributor_spell_vampiricism_free_cast",
        "learnedVersion": true,
        "method": "on_added",
        "relation": "free cast",
        "sourceClass": "PlasmicDistributor",
        "sourceId": "equipment_plasmic_distributor",
        "sourceName": "Plasmic Distributor",
        "targetClass": "Vampiricism",
        "targetId": "spell_vampiricism",
        "targetName": "Vampiricism"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Equipment.py",
          "line": 7595,
          "snippet": "self.owner.level.act_cast(self.owner, self.owner.get_or_make_spell(Vampiricism), evt.unit.x, evt.unit.y, pay_costs=False, queue=True)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_227_equipment_plasmic_distributor_spell_vampiricism_gets_learned_spell",
        "learnedVersion": true,
        "method": "on_added",
        "relation": "gets learned spell",
        "sourceClass": "PlasmicDistributor",
        "sourceId": "equipment_plasmic_distributor",
        "sourceName": "Plasmic Distributor",
        "targetClass": "Vampiricism",
        "targetId": "spell_vampiricism",
        "targetName": "Vampiricism"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Equipment.py",
          "line": 8583,
          "snippet": "owner.level.act_cast(owner, owner.get_or_make_spell(BlindingLightSpell), owner.x, owner.y, pay_costs=False)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_228_equipment_archangel_s_armor_spell_blinding_light_free_cast",
        "learnedVersion": true,
        "method": "on_damaged",
        "relation": "free cast",
        "sourceClass": "ArchangelsArmor",
        "sourceId": "equipment_archangel_s_armor",
        "sourceName": "Archangel's Armor",
        "targetClass": "BlindingLightSpell",
        "targetId": "spell_blinding_light",
        "targetName": "Blinding Light"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Equipment.py",
          "line": 8583,
          "snippet": "owner.level.act_cast(owner, owner.get_or_make_spell(BlindingLightSpell), owner.x, owner.y, pay_costs=False)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_229_equipment_archangel_s_armor_spell_blinding_light_gets_learned_spell",
        "learnedVersion": true,
        "method": "on_damaged",
        "relation": "gets learned spell",
        "sourceClass": "ArchangelsArmor",
        "sourceId": "equipment_archangel_s_armor",
        "sourceName": "Archangel's Armor",
        "targetClass": "BlindingLightSpell",
        "targetId": "spell_blinding_light",
        "targetName": "Blinding Light"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Components.py",
          "line": 456,
          "snippet": "spell = player.get_or_make_spell(SealFate)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_230_component_cursed_seal_spell_seal_fate_gets_learned_spell",
        "learnedVersion": true,
        "method": "on_pickup",
        "relation": "gets learned spell",
        "sourceClass": "CursedSeal",
        "sourceId": "component_cursed_seal",
        "sourceName": "Cursed Seal",
        "targetClass": "SealFate",
        "targetId": "spell_seal_fate",
        "targetName": "Seal Fate"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Components.py",
          "line": 456,
          "snippet": "spell = player.get_or_make_spell(SealFate)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_231_component_cursed_seal_spell_seal_fate_gets_learned_spell",
        "learnedVersion": true,
        "method": "on_pickup",
        "relation": "gets learned spell",
        "sourceClass": "CursedSeal",
        "sourceId": "component_cursed_seal",
        "sourceName": "Cursed Seal",
        "targetClass": "SealFate",
        "targetId": "spell_seal_fate",
        "targetName": "Seal Fate"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Components.py",
          "line": 458,
          "snippet": "for enemy in enemies: level.act_cast(player, spell, enemy.x, enemy.y, pay_costs=False)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_232_component_cursed_seal_spell_seal_fate_free_cast",
        "learnedVersion": true,
        "method": "on_pickup",
        "relation": "free cast",
        "sourceClass": "CursedSeal",
        "sourceId": "component_cursed_seal",
        "sourceName": "Cursed Seal",
        "targetClass": "SealFate",
        "targetId": "spell_seal_fate",
        "targetName": "Seal Fate"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Components.py",
          "line": 598,
          "snippet": "level.act_cast(player, player.get_or_make_spell(DrainPulse), player.x, player.y, pay_costs=False)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_233_component_crimson_sigil_spell_drain_pulse_free_cast",
        "learnedVersion": true,
        "method": "on_pickup",
        "relation": "free cast",
        "sourceClass": "CrimsonSigil",
        "sourceId": "component_crimson_sigil",
        "sourceName": "Crimson Sigil",
        "targetClass": "DrainPulse",
        "targetId": "spell_drain_pulse",
        "targetName": "Drain Pulse"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Components.py",
          "line": 598,
          "snippet": "level.act_cast(player, player.get_or_make_spell(DrainPulse), player.x, player.y, pay_costs=False)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_234_component_crimson_sigil_spell_drain_pulse_gets_learned_spell",
        "learnedVersion": true,
        "method": "on_pickup",
        "relation": "gets learned spell",
        "sourceClass": "CrimsonSigil",
        "sourceId": "component_crimson_sigil",
        "sourceName": "Crimson Sigil",
        "targetClass": "DrainPulse",
        "targetId": "spell_drain_pulse",
        "targetName": "Drain Pulse"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Components.py",
          "line": 630,
          "snippet": "wizard.level.act_cast(wizard, wizard.get_or_make_spell(ChainLightningSpell), enemy.x, enemy.y, pay_costs=False)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_235_component_fulminite_shard_spell_chain_lightning_free_cast",
        "learnedVersion": true,
        "method": "retribution",
        "relation": "free cast",
        "sourceClass": "FulminiteRetributionBuff",
        "sourceId": "component_fulminite_shard",
        "sourceName": "Fulminite Shard",
        "targetClass": "ChainLightningSpell",
        "targetId": "spell_chain_lightning",
        "targetName": "Chain Lightning"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Components.py",
          "line": 630,
          "snippet": "wizard.level.act_cast(wizard, wizard.get_or_make_spell(ChainLightningSpell), enemy.x, enemy.y, pay_costs=False)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_236_component_fulminite_shard_spell_chain_lightning_gets_learned_spell",
        "learnedVersion": true,
        "method": "retribution",
        "relation": "gets learned spell",
        "sourceClass": "FulminiteRetributionBuff",
        "sourceId": "component_fulminite_shard",
        "sourceName": "Fulminite Shard",
        "targetClass": "ChainLightningSpell",
        "targetId": "spell_chain_lightning",
        "targetName": "Chain Lightning"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Components.py",
          "line": 707,
          "snippet": "player.level.act_cast(player, player.get_or_make_spell(PrisonOfThorns), unit.x, unit.y, pay_costs=False)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_237_component_dreamthorn_vine_spell_prison_of_thorns_free_cast",
        "learnedVersion": true,
        "method": "do_effect",
        "relation": "free cast",
        "sourceClass": "DreamthornVine",
        "sourceId": "component_dreamthorn_vine",
        "sourceName": "Dreamthorn Vine",
        "targetClass": "PrisonOfThorns",
        "targetId": "spell_prison_of_thorns",
        "targetName": "Prison of Thorns"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Components.py",
          "line": 707,
          "snippet": "player.level.act_cast(player, player.get_or_make_spell(PrisonOfThorns), unit.x, unit.y, pay_costs=False)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_238_component_dreamthorn_vine_spell_prison_of_thorns_gets_learned_spell",
        "learnedVersion": true,
        "method": "do_effect",
        "relation": "gets learned spell",
        "sourceClass": "DreamthornVine",
        "sourceId": "component_dreamthorn_vine",
        "sourceName": "Dreamthorn Vine",
        "targetClass": "PrisonOfThorns",
        "targetId": "spell_prison_of_thorns",
        "targetName": "Prison of Thorns"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Components.py",
          "line": 730,
          "snippet": "level.act_cast(player, player.get_or_make_spell(PainMirrorSpell), player.x, player.y, pay_costs=False)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_239_component_blood_basin_spell_pain_mirror_free_cast",
        "learnedVersion": true,
        "method": "on_pickup",
        "relation": "free cast",
        "sourceClass": "BloodBasin",
        "sourceId": "component_blood_basin",
        "sourceName": "Blood Basin",
        "targetClass": "PainMirrorSpell",
        "targetId": "spell_pain_mirror",
        "targetName": "Pain Mirror"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Components.py",
          "line": 730,
          "snippet": "level.act_cast(player, player.get_or_make_spell(PainMirrorSpell), player.x, player.y, pay_costs=False)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_240_component_blood_basin_spell_pain_mirror_gets_learned_spell",
        "learnedVersion": true,
        "method": "on_pickup",
        "relation": "gets learned spell",
        "sourceClass": "BloodBasin",
        "sourceId": "component_blood_basin",
        "sourceName": "Blood Basin",
        "targetClass": "PainMirrorSpell",
        "targetId": "spell_pain_mirror",
        "targetName": "Pain Mirror"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Components.py",
          "line": 859,
          "snippet": "s = player.get_or_make_spell(WheelOfDeath)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_241_component_cursed_dice_spell_wheel_of_death_gets_learned_spell",
        "learnedVersion": true,
        "method": "on_pickup",
        "relation": "gets learned spell",
        "sourceClass": "CursedDice",
        "sourceId": "component_cursed_dice",
        "sourceName": "Cursed Dice",
        "targetClass": "WheelOfDeath",
        "targetId": "spell_wheel_of_death",
        "targetName": "Wheel of Death"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Components.py",
          "line": 859,
          "snippet": "s = player.get_or_make_spell(WheelOfDeath)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_242_component_cursed_dice_spell_wheel_of_death_gets_learned_spell",
        "learnedVersion": true,
        "method": "on_pickup",
        "relation": "gets learned spell",
        "sourceClass": "CursedDice",
        "sourceId": "component_cursed_dice",
        "sourceName": "Cursed Dice",
        "targetClass": "WheelOfDeath",
        "targetId": "spell_wheel_of_death",
        "targetName": "Wheel of Death"
      },
      {
        "evidence": {
          "file": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3\\Components.py",
          "line": 860,
          "snippet": "for _ in range(num): level.act_cast(player, s, player.x, player.y, pay_costs=False)"
        },
        "gateNames": [],
        "gates": [],
        "id": "edge_243_component_cursed_dice_spell_wheel_of_death_free_cast",
        "learnedVersion": true,
        "method": "on_pickup",
        "relation": "free cast",
        "sourceClass": "CursedDice",
        "sourceId": "component_cursed_dice",
        "sourceName": "Cursed Dice",
        "targetClass": "WheelOfDeath",
        "targetId": "spell_wheel_of_death",
        "targetName": "Wheel of Death"
      }
    ]
  },
  "meta": {
    "augmentSchemaVersion": 1,
    "augments": "data/augments.json",
    "augmentsConditional": "data/augments-conditional.json",
    "counts": {
      "chains": 40,
      "components": 83,
      "edges": 244,
      "equipment": 350,
      "monsters": 336,
      "spells": 186
    },
    "effectSchemaVersion": 1,
    "effectsSummary": "data/effects-summary.json",
    "generatedAt": 1783538596,
    "install": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Rift Wizard 3",
    "pathsIndex": "data/paths-index.json",
    "runtime": {
      "python": "3.10.11 (tags/v3.10.11:7d4cc5a, Apr  5 2023, 00:38:17) [MSC v.1929 64 bit (AMD64)]",
      "source": "rw3-runtime",
      "status": "ok"
    }
  },
  "sections": {
    "components": [
      "component_burning_ember",
      "component_elemental_ice",
      "component_lightning_jar",
      "component_wildflower",
      "component_arcane_mote",
      "component_shadeweave",
      "component_holy_icon",
      "component_shielding_shard",
      "component_heart_fragment",
      "component_magic_rune",
      "component_lost_ring",
      "component_incense",
      "component_rift_residue",
      "component_seer_s_orb",
      "component_drakentooth",
      "component_devil_s_blood",
      "component_slime_core",
      "component_ancient_inscription",
      "component_shimmersteel",
      "component_frostpetal",
      "component_silver_dragonscale",
      "component_relocator_beacon",
      "component_voidstone_shard",
      "component_binding_ring",
      "component_runed_vellum",
      "component_cursed_seal",
      "component_hellbloom",
      "component_voltaic_ash",
      "component_glacial_script",
      "component_beastblood_fungus",
      "component_scripted_cortex",
      "component_umbral_resin",
      "component_charged_cog",
      "component_sacrificial_brand",
      "component_crimson_sigil",
      "component_sanctified_locket",
      "component_fulminite_shard",
      "component_retinal_jelly",
      "component_warped_dragon_egg",
      "component_votive_candle",
      "component_dreamthorn_vine",
      "component_watcher_stone",
      "component_blood_basin",
      "component_holy_water",
      "component_mirror_stone",
      "component_stormglass_eye",
      "component_ice_wyrm_scale",
      "component_mycelial_ooze",
      "component_golden_dragonscale",
      "component_dragontongue_tablet",
      "component_cursed_dice",
      "component_moonstone",
      "component_frozen_heartwood",
      "component_starfire_ingot",
      "component_eidolon_s_strings",
      "component_timelost_inscription",
      "component_planar_keystone",
      "component_runic_fetish",
      "component_oozing_oculite",
      "component_astral_phylactery",
      "component_defiled_reliquary",
      "component_thundergod_s_fang",
      "component_nacreous_cysts",
      "component_archfiend_s_bone",
      "component_hag_heart",
      "component_raven_eye",
      "component_frost_core",
      "component_arbiter_s_lens",
      "component_journeystone",
      "component_mithril_ore",
      "component_enchanter_s_awl",
      "component_odin_s_eye",
      "component_luminous_threads",
      "component_bloodrage_serum",
      "component_flame_blade_fragment",
      "component_ironbark_plate",
      "component_phoenix_feather",
      "component_chaos_seed",
      "component_dragon_ambrosia",
      "component_warlord_s_skull",
      "component_charred_relic",
      "component_chimera_eyes",
      "component_broken_stopwatch",
      "component_spellgraft_shrine",
      "component_geargraft_shrine"
    ],
    "equipment": [
      "equipment_acidifier",
      "equipment_amber_cube",
      "equipment_amulet_of_emerald_flame",
      "equipment_arcane_shield",
      "equipment_arcane_staff",
      "equipment_ashen_rod",
      "equipment_battlemage_staff",
      "equipment_blazing_wand",
      "equipment_blood_ruby",
      "equipment_blooming_wand",
      "equipment_boots_of_imminent_doom",
      "equipment_brain_hat",
      "equipment_cage_of_chimerae",
      "equipment_channeler_s_focus",
      "equipment_chaos_staff",
      "equipment_chastising_lash",
      "equipment_cold_iron_heart",
      "equipment_coldsnap_amulet",
      "equipment_conjuration_staff",
      "equipment_coruscating_wand",
      "equipment_crimson_brooch",
      "equipment_crisis_charm",
      "equipment_cryotic_accumulator",
      "equipment_crystal_dagger",
      "equipment_cultist_soles",
      "equipment_dark_staff",
      "equipment_dwarf_hat",
      "equipment_earthwrath",
      "equipment_enchantment_staff",
      "equipment_entropic_wand",
      "equipment_evermelting_cube",
      "equipment_eye_helm",
      "equipment_fae_plate",
      "equipment_ghost_slippers",
      "equipment_glittering_dancer_s_robes",
      "equipment_gnome_shoes",
      "equipment_grey_goo",
      "equipment_haunted_blood_vial",
      "equipment_holy_staff",
      "equipment_hypno_bauble",
      "equipment_ice_caller_staff",
      "equipment_jade_shard",
      "equipment_kobold_clogs",
      "equipment_lightning_staff",
      "equipment_minion_regeneration_amulet",
      "equipment_molten_carapace",
      "equipment_nature_staff",
      "equipment_necrosis_blade",
      "equipment_ogre_boots",
      "equipment_ooze_wand",
      "equipment_orb_controller_s_mitts",
      "equipment_paralyzing_venom",
      "equipment_pedantic_pendant",
      "equipment_plague_doctor_s_cane",
      "equipment_plague_doctor_s_mask",
      "equipment_quickstep_boots",
      "equipment_red_obsidian_shard",
      "equipment_rift_breaker",
      "equipment_runespeaker_s_gorget",
      "equipment_runic_hourglass",
      "equipment_sacrificial_dagger",
      "equipment_shepherd_s_staff",
      "equipment_slime_staff",
      "equipment_slime_striders",
      "equipment_slimecrusted_scarificator",
      "equipment_slippery_hex_dagger",
      "equipment_snow_staff",
      "equipment_solid_steel_staff",
      "equipment_sorcery_staff",
      "equipment_stagnation_basin",
      "equipment_stone_mask",
      "equipment_stoneeater_amulet",
      "equipment_storm_wand",
      "equipment_stormbrood_trickshoes",
      "equipment_sunforged_iris",
      "equipment_the_boiler",
      "equipment_twilight_lantern",
      "equipment_umbral_totem",
      "equipment_vile_dagger",
      "equipment_voidflame_lantern",
      "equipment_voodoo_doll",
      "equipment_witching_hourglass",
      "equipment_amphisbaena_ring",
      "equipment_amulet_of_undeath",
      "equipment_arcane_combustion_powder",
      "equipment_armor_melter",
      "equipment_armor_of_nanuk",
      "equipment_artificial_heart",
      "equipment_blood_shield",
      "equipment_bloodletter_bracers",
      "equipment_cantrip_clogs",
      "equipment_caustic_sprig",
      "equipment_charm_of_darkness",
      "equipment_charm_of_vigor",
      "equipment_chelation_claw",
      "equipment_chill_staff",
      "equipment_contagion_corpse",
      "equipment_crown_of_ragnarok",
      "equipment_dowsing_spark",
      "equipment_draupnir",
      "equipment_drill_shoes",
      "equipment_earthmeld_boots",
      "equipment_echo_staff",
      "equipment_eye_rock_pendant",
      "equipment_eye_of_ammut",
      "equipment_eye_of_mot",
      "equipment_eye_of_tamtu",
      "equipment_fae_toxin_pouch",
      "equipment_fanged_amulet",
      "equipment_finger_6",
      "equipment_flagellant_s_cup",
      "equipment_galvanic_focus",
      "equipment_glasya_s_bite",
      "equipment_hemlock_needle",
      "equipment_icy_cruciform",
      "equipment_iron_legion_s_banner",
      "equipment_macrophagic_mask",
      "equipment_magic_minion_shield",
      "equipment_magic_wand",
      "equipment_monkey_skull_amulet",
      "equipment_mourning_bell",
      "equipment_neanderthal_s_tooth",
      "equipment_nightmare_hexbag",
      "equipment_plasmic_distributor",
      "equipment_prismatic_links",
      "equipment_pyrophilia_locket",
      "equipment_razoreye",
      "equipment_rift_key_staff",
      "equipment_rimeblight_pulverizer",
      "equipment_robe_of_storms",
      "equipment_sandals_of_virtuous_sin",
      "equipment_silken_links",
      "equipment_skull_necklace",
      "equipment_slime_timer",
      "equipment_snow_shoes",
      "equipment_soulmail",
      "equipment_spark_conductor",
      "equipment_spirit_visor",
      "equipment_the_bloodwell",
      "equipment_timestriders",
      "equipment_titan_s_bane",
      "equipment_travellers_shoes",
      "equipment_treelord_staff",
      "equipment_veilpiercer_s_monocle",
      "equipment_vial_of_ambrosia",
      "equipment_void_traveler_s_cloak",
      "equipment_winged_shoes",
      "equipment_winter_links",
      "equipment_wrath_links",
      "equipment_aetherlord_staff",
      "equipment_amulet_of_collected_agony",
      "equipment_ankh",
      "equipment_arcane_frenzy_mask",
      "equipment_basilisk_scale_armor",
      "equipment_bedlam_bell",
      "equipment_blizzard_beacon",
      "equipment_bloodspike_helm",
      "equipment_boreal_armor",
      "equipment_brisingamen",
      "equipment_chaos_links",
      "equipment_chaos_scale_crown",
      "equipment_conciliator_s_claw",
      "equipment_crackledarkener",
      "equipment_crimson_torc",
      "equipment_crown_of_bony_fingers",
      "equipment_cyst_of_eternal_bloom",
      "equipment_drakenstaff",
      "equipment_dream_thief_diadem",
      "equipment_druid_s_dibble",
      "equipment_electroplasm_ampule",
      "equipment_erebus_lance",
      "equipment_fae_thorn_staff",
      "equipment_fire_frenzy_mask",
      "equipment_galvanic_armor",
      "equipment_grave_curse_doll",
      "equipment_grave_hunger_amulet",
      "equipment_hallucinogenic_spore_staff",
      "equipment_hellfire_mantle",
      "equipment_helm_of_hexes",
      "equipment_hemocorruptor",
      "equipment_horn_of_ur",
      "equipment_ice_frenzy_mask",
      "equipment_ice_sickle",
      "equipment_lightning_tether",
      "equipment_marksman_cap",
      "equipment_metallurgy_mitts",
      "equipment_moon_crown",
      "equipment_necrostatic_staff",
      "equipment_orb_of_infinite_slaughter",
      "equipment_pyrostatic_curse_doll",
      "equipment_quicksilver_armor",
      "equipment_rain_beacon",
      "equipment_ring_of_magnetic_charisma",
      "equipment_robe_of_agony",
      "equipment_robe_of_crystals",
      "equipment_robe_of_frostfire",
      "equipment_robe_of_twilight",
      "equipment_robes_of_virtuous_sin",
      "equipment_rod_of_heaven_s_assault",
      "equipment_ruinous_curse_doll",
      "equipment_sanguine_frost_wand",
      "equipment_searing_eye_stone",
      "equipment_silken_sandals",
      "equipment_skybreaker_array",
      "equipment_slimy_voodoo_mantle",
      "equipment_spawning_venom",
      "equipment_stolen_flame_choker",
      "equipment_stone_curse_doll",
      "equipment_storm_beacon",
      "equipment_timelord_s_staff",
      "equipment_tundra_mantle",
      "equipment_unholy_expurgator",
      "equipment_venom_spitter_casque",
      "equipment_venomancer_s_vial",
      "equipment_void_spike_stone",
      "equipment_volcanic_lance",
      "equipment_warlord_helm",
      "equipment_warlord_vestments",
      "equipment_wild_healing_staff",
      "equipment_wound_rot_amulet",
      "equipment_arcane_accelerator",
      "equipment_arcane_amplifier",
      "equipment_armor_of_the_master",
      "equipment_blazeblood_staff",
      "equipment_blood_staff",
      "equipment_cannibal_mask",
      "equipment_channeler_s_treads",
      "equipment_chaos_robes",
      "equipment_chaos_serpent_staff",
      "equipment_crimson_coronet",
      "equipment_crown_of_virtuous_sin",
      "equipment_crystal_oculus",
      "equipment_cultist_s_staff",
      "equipment_dragonclaw_sabatons",
      "equipment_eldritch_mantle",
      "equipment_flaming_claw_staff",
      "equipment_galvanic_blade",
      "equipment_geometer_s_staff",
      "equipment_ghostfire_scepter",
      "equipment_hex_specialist_s_ring",
      "equipment_horn_of_the_wild_hunt",
      "equipment_icy_claw_staff",
      "equipment_icy_vengeance_icon",
      "equipment_jaculus_idol",
      "equipment_mask_of_woe",
      "equipment_plaguebringer",
      "equipment_prismatic_plate",
      "equipment_purity_oculus",
      "equipment_pyrostatic_oculus",
      "equipment_pyrrhic_censer",
      "equipment_rainbow_blade",
      "equipment_rapid_ritual_rod",
      "equipment_scepter_of_sorrows",
      "equipment_shatter_shards_necklace",
      "equipment_storm_oculus",
      "equipment_twilight_oculus",
      "equipment_unblinking_eye",
      "equipment_void_oculus",
      "equipment_wyrm_spirit_armor",
      "equipment_archangel_s_spear",
      "equipment_balor_s_eye_staff",
      "equipment_banner_of_the_horde",
      "equipment_book_of_four_seals",
      "equipment_chalice_of_dragons",
      "equipment_chalice_of_iron",
      "equipment_chalice_of_light",
      "equipment_chalice_of_warp",
      "equipment_codex_of_chaotic_evolution",
      "equipment_cracklevoid",
      "equipment_disintegrator",
      "equipment_draco_antiphony_scepter",
      "equipment_drain_boots",
      "equipment_earthquake_boots",
      "equipment_earthtroll_armor",
      "equipment_exploding_boots",
      "equipment_explosive_spore_manual",
      "equipment_heavenrender",
      "equipment_helm_of_the_host",
      "equipment_mandala_mukluks",
      "equipment_memory_staff",
      "equipment_menacing_eye_mask",
      "equipment_multimancer_s_staff",
      "equipment_oozing_scale_armor",
      "equipment_plague_doctor_s_robe",
      "equipment_prism_of_shattered_sensations",
      "equipment_pulse_accelerator",
      "equipment_quill_staff",
      "equipment_slimebirth_cantromancy",
      "equipment_sonic_shields",
      "equipment_staff_of_heaven_s_vengeance",
      "equipment_storm_boots",
      "equipment_storm_caller_staff",
      "equipment_stormtroll_armor",
      "equipment_talking_hat",
      "equipment_the_bladestaff",
      "equipment_the_flamenweaver",
      "equipment_vampiric_vestments",
      "equipment_amulet_of_the_master",
      "equipment_annihilator_staff",
      "equipment_archangel_s_armor",
      "equipment_book_of_chaos",
      "equipment_book_of_curses",
      "equipment_book_of_death",
      "equipment_book_of_helheim",
      "equipment_book_of_life",
      "equipment_book_of_madness",
      "equipment_book_of_malevolence",
      "equipment_book_of_revelation",
      "equipment_crown_of_devastation",
      "equipment_dragonspine_cloak",
      "equipment_enchanters_boon",
      "equipment_icy_chill_mask",
      "equipment_multicolored_rage_rod",
      "equipment_numen_censer",
      "equipment_orrery_of_the_unnamed_one",
      "equipment_raiment_of_eyes",
      "equipment_robe_of_fire",
      "equipment_robe_of_ice",
      "equipment_robe_of_rifts",
      "equipment_robe_of_void",
      "equipment_robe_of_the_druids",
      "equipment_scales_of_virtuous_sin",
      "equipment_arch_sorcerer_s_staff",
      "equipment_artificer_s_chalice",
      "equipment_artificer_s_rod",
      "equipment_book_of_ice",
      "equipment_codex_necronomicus",
      "equipment_dragon_hunter_s_sigil",
      "equipment_halo_hunter_s_sigil",
      "equipment_keraunos",
      "equipment_mask_of_nihilo",
      "equipment_mortal_hunter_s_sigil",
      "equipment_necromancer_s_staff",
      "equipment_philosopher_s_stone",
      "equipment_psychopomp_staff",
      "equipment_red_majesty",
      "equipment_silvermelt",
      "equipment_sorcwinter",
      "equipment_soul_harvester",
      "equipment_starblesser",
      "equipment_the_blazeloom",
      "equipment_the_dynamo",
      "equipment_the_gloomthorn",
      "equipment_the_north_pole",
      "equipment_the_purifier",
      "equipment_the_sparkloom",
      "equipment_thorn_hunter_s_sigil",
      "equipment_void_hunter_s_sigil",
      "equipment_wintersting",
      "equipment_woadwyrd"
    ],
    "monsters": [
      "monster_goblin",
      "monster_bat",
      "monster_giant_hornet",
      "monster_stringed_puppet",
      "monster_void_bomber",
      "monster_fire_bomber",
      "monster_ice_bomber",
      "monster_mind_maggot",
      "monster_displacer_beast",
      "monster_green_mushboom",
      "monster_mantis",
      "monster_boggart",
      "monster_orc",
      "monster_ghost",
      "monster_armored_goblin",
      "monster_scuttler",
      "monster_green_slime",
      "monster_void_child",
      "monster_pumpkinhead",
      "monster_fire_imp",
      "monster_spark_imp",
      "monster_rotting_zombie",
      "monster_iron_imp",
      "monster_satyr",
      "monster_large_worm_ball",
      "monster_kobold",
      "monster_witch",
      "monster_rock_worm",
      "monster_giant_spider",
      "monster_grey_mushboom",
      "monster_horned_toad",
      "monster_raven",
      "monster_treant",
      "monster_cultist",
      "monster_two_headed_snake",
      "monster_breathstealer",
      "monster_razor_beast",
      "monster_spark_spirit",
      "monster_fire_spirit",
      "monster_red_slime",
      "monster_ice_slime",
      "monster_electric_slime",
      "monster_snow_scuttler",
      "monster_glass_mushboom",
      "monster_gremlin",
      "monster_centaur",
      "monster_ogre",
      "monster_bag_of_bugs",
      "monster_troll",
      "monster_troubler",
      "monster_faery",
      "monster_vampire",
      "monster_gnome",
      "monster_goatia",
      "monster_polar_bear",
      "monster_hell_hound",
      "monster_werewolf",
      "monster_blizzard_beast",
      "monster_skull_hornet",
      "monster_boggart_assassin",
      "monster_ice_rocket_bomber",
      "monster_fire_rocket_bomber",
      "monster_void_rocket_bomber",
      "monster_sentient_shield",
      "monster_fiery_tormentor",
      "monster_head_cannon",
      "monster_bone_shambler",
      "monster_dancing_blade",
      "monster_void_slime",
      "monster_blood_slime",
      "monster_frosty_tormentor",
      "monster_animated_armor",
      "monster_bone_knight",
      "monster_aelf",
      "monster_armored_polar_bear",
      "monster_flame_maw",
      "monster_ice_maw",
      "monster_mycobeast",
      "monster_thunderbird",
      "monster_blood_hound",
      "monster_golem",
      "monster_stonefish",
      "monster_fae_huntsman",
      "monster_fire_belcher",
      "monster_ice_belcher",
      "monster_aether_spider",
      "monster_spike_beast",
      "monster_blood_bear",
      "monster_duergar",
      "monster_orc_houndlord",
      "monster_imp_collector",
      "monster_purple_hand",
      "monster_leghead",
      "monster_trollataur",
      "monster_floating_eyeball",
      "monster_card_guard",
      "monster_armored_ogre",
      "monster_flame_toad",
      "monster_void_toad",
      "monster_storm_troll",
      "monster_minotaur",
      "monster_giant_spider_queen",
      "monster_void_rift",
      "monster_flame_rift",
      "monster_frostfire_tormentor",
      "monster_chaos_chimera",
      "monster_starfire_chimera",
      "monster_deathchill_chimera",
      "monster_spike_ball",
      "monster_bone_knight_archer",
      "monster_fearface",
      "monster_storm_drake",
      "monster_fire_drake",
      "monster_worm_shambler",
      "monster_mind_maggot_queen",
      "monster_ghostly_mass",
      "monster_faery_arcanist",
      "monster_star_swimmer",
      "monster_towering_toadbeast",
      "monster_mind_vampire",
      "monster_bark_lord",
      "monster_stalker",
      "monster_executioner",
      "monster_false_prophet",
      "monster_gargoyle",
      "monster_void_drake",
      "monster_gold_drake",
      "monster_ice_drake",
      "monster_dryder",
      "monster_wailing_banshee",
      "monster_void_elder",
      "monster_mind_devourer",
      "monster_fire_wyrm",
      "monster_night_hag",
      "monster_red_cyclops",
      "monster_giant_floating_skull",
      "monster_grey_gorgon",
      "monster_efreet",
      "monster_yeti",
      "monster_cockatrice",
      "monster_butterfly_demon",
      "monster_flaming_eyeball",
      "monster_animated_knight",
      "monster_steel_spider_queen",
      "monster_aether_spider_queen",
      "monster_fae_queen",
      "monster_aelf_lightning_artist",
      "monster_void_knight",
      "monster_storm_knight",
      "monster_blood_knight",
      "monster_energy_knight",
      "monster_twilight_knight",
      "monster_chaos_knight",
      "monster_reaper",
      "monster_bone_king",
      "monster_toxic_mind_devourer",
      "monster_rotting_mass",
      "monster_dream_hag",
      "monster_ice_wyrm",
      "monster_chaos_fiend",
      "monster_ash_fiend",
      "monster_insanity_fiend",
      "monster_furnace_fiend",
      "monster_copper_fiend",
      "monster_rot_fiend",
      "monster_annihilation_goo",
      "monster_lich",
      "monster_towering_bone_shambler",
      "monster_nightmare_turtle",
      "monster_lamasu",
      "monster_flesh_fiend",
      "monster_aesir",
      "monster_giant_flaming_skull",
      "monster_golden_skull",
      "monster_archon_purifier",
      "monster_stone_shark",
      "monster_bonewheel",
      "monster_void_ancestor",
      "monster_faery_empress",
      "monster_gelid_mirror",
      "monster_corrupted_lamasu",
      "monster_phoenix",
      "monster_volcano_turtle",
      "monster_glacial_turtle",
      "monster_dracolich",
      "monster_necrodrake",
      "monster_titan",
      "monster_mass_of_eyes",
      "monster_bone_shambler_megalith",
      "monster_arbiter",
      "monster_angelic_visitor",
      "monster_arch_fiend",
      "monster_mind_maggot_wretch",
      "monster_whirlwind_reaper",
      "monster_watcher",
      "monster_goo_spitter",
      "monster_goblin_shaman",
      "monster_tombstone",
      "monster_bad_apple",
      "monster_gnome_donsy",
      "monster_hemogoblin",
      "monster_crystal_golem",
      "monster_void_watcher",
      "monster_brain_tree",
      "monster_siren",
      "monster_fire_wyrm_egg",
      "monster_ice_wyrm_egg",
      "monster_fiery_tormenting_mass",
      "monster_frostfire_tormenting_mass",
      "monster_lava_spitter",
      "monster_flaming_flesh_fiend",
      "monster_fountain_of_blood",
      "monster_idol_of_pain",
      "monster_idol_of_frost",
      "monster_slimesoul_idol",
      "monster_fountain_of_venom",
      "monster_idol_of_rebirth",
      "monster_concussive_idol",
      "monster_idol_of_undeath",
      "monster_idol_of_insanity",
      "monster_idol_of_agony",
      "monster_idol_of_frailty",
      "monster_idol_of_nightmares",
      "monster_idol_of_fiery_vengeance",
      "monster_idol_of_vampirism",
      "monster_idol_of_sorcery",
      "monster_idol_of_fiends",
      "monster_idol_of_invincibiity",
      "monster_idol_of_souls",
      "monster_kobold_camp",
      "monster_goblin_cave",
      "monster_skull_hornet_hive",
      "monster_duergar_fortress",
      "monster_gnome_castle",
      "monster_pillar_of_bones",
      "monster_pillar_of_worms",
      "monster_yggdrasil",
      "monster_swamp_queen",
      "monster_chaos_quill",
      "monster_box_of_woe",
      "monster_bat_dragon",
      "monster_gemini_twin",
      "monster_nine_the_cat",
      "monster_fenris",
      "monster_kettle_man",
      "monster_limb_collector",
      "monster_fujin",
      "monster_fallen_angel",
      "monster_hamsa",
      "monster_slime_drake",
      "monster_void_phoenix",
      "monster_pan",
      "monster_rotting_phoenix",
      "monster_vampire_count",
      "monster_arcane_blacksmith",
      "monster_medusa",
      "monster_doldrum",
      "monster_black_rider",
      "monster_white_rider",
      "monster_red_rider",
      "monster_pale_rider",
      "monster_minos_the_golden_bull",
      "monster_chronos_titan_immortal",
      "monster_odin_aesir_immortal",
      "monster_gilded_tyrant",
      "monster_observer",
      "monster_bone_wizard",
      "monster_avian_wizard",
      "monster_raven_mage",
      "monster_lightning_master",
      "monster_mountain_mage",
      "monster_masked_wizard",
      "monster_ice_lich",
      "monster_fire_lich",
      "monster_ice_wizard",
      "monster_goblin_wizard",
      "monster_fire_wizard",
      "monster_enchanter",
      "monster_translocator",
      "monster_slazephan_the_philosopher",
      "monster_crystal_mage",
      "monster_louis_the_seer",
      "monster_mogwai_mage",
      "monster_mycelial_mage",
      "monster_jack_o_flames",
      "monster_centaur_druid",
      "monster_yeti_shaman",
      "monster_mechanomancer",
      "monster_arachnid_wizard",
      "monster_angrboda",
      "monster_dragon_mage",
      "monster_troll_geomancer",
      "monster_twilight_seer",
      "monster_frostfire_mage",
      "monster_mischief_maker",
      "monster_moon_mage",
      "monster_deathchiller",
      "monster_old_thunderbones",
      "monster_shru_the_toad_sorcerer",
      "monster_grand_warlock",
      "monster_time_keeper",
      "monster_blood_magus",
      "monster_sun_mage",
      "monster_the_great_pumpking",
      "monster_chained_cyclops",
      "monster_haetae_golem",
      "monster_maggot_empress",
      "monster_mother_of_spiders",
      "monster_giant_sack_of_filth",
      "monster_taurokelevee",
      "monster_winterbringer",
      "monster_cindervein",
      "monster_stormcrest",
      "monster_starclaw",
      "monster_gloomwing",
      "monster_rattlemaw",
      "monster_dawnheart",
      "monster_ultimate_mind_devourer",
      "monster_lamasu_methuselah",
      "monster_mothgod",
      "monster_ultimate_troubler",
      "monster_giant_gorgon",
      "monster_skull_sentry",
      "monster_ossuary_spider",
      "monster_coral_colossus",
      "monster_animikii",
      "monster_bone_colossus",
      "monster_flesh_colossus",
      "monster_giant_nightmare_turtle",
      "monster_giant_mass_of_eyes",
      "monster_infernal_demon_prince",
      "monster_the_furnace",
      "monster_shrapnel_beast",
      "monster_gelgut",
      "monster_blightmonger",
      "monster_molten_devourer"
    ],
    "spells": [
      "spell_blood_bullet",
      "spell_death_bolt",
      "spell_dragon_claw",
      "spell_fireball",
      "spell_icicle",
      "spell_lifedrain",
      "spell_lightning_bolt",
      "spell_magic_missile",
      "spell_poison_sting",
      "spell_summon_blade",
      "spell_wolf",
      "spell_annihilate",
      "spell_boiling_blood",
      "spell_bone_spear",
      "spell_bouncing_slimeball",
      "spell_chaos_barrage",
      "spell_disperse",
      "spell_dragon_breath",
      "spell_dread_lash",
      "spell_earthen_passage",
      "spell_eye_of_blood",
      "spell_eye_of_fire",
      "spell_eye_of_ice",
      "spell_eye_of_lightning",
      "spell_eye_of_rage",
      "spell_fan_of_flames",
      "spell_floating_eye",
      "spell_freeze",
      "spell_goatia_offering",
      "spell_healing_light",
      "spell_heavenly_blast",
      "spell_hungry_maw",
      "spell_iceball",
      "spell_immolate",
      "spell_invoke_savagery",
      "spell_magnetize",
      "spell_melt",
      "spell_mercurize",
      "spell_moon_glaive",
      "spell_petrify",
      "spell_pyrostatic_pulse",
      "spell_rain_storm",
      "spell_regeneration_aura",
      "spell_ride_drake",
      "spell_shadow_hex",
      "spell_slimeshot",
      "spell_slimify",
      "spell_summon_bone_knights",
      "spell_thunder_strike",
      "spell_touch_of_death",
      "spell_toxin_burst",
      "spell_underworld_passage",
      "spell_amalgamate_slime",
      "spell_blazerip",
      "spell_blinding_light",
      "spell_blink",
      "spell_bloodshift",
      "spell_chain_lightning",
      "spell_darkness",
      "spell_death_chill",
      "spell_death_clock",
      "spell_devour_flesh",
      "spell_devour_mind",
      "spell_dispersion_field",
      "spell_dominate",
      "spell_dragon_roar",
      "spell_earthen_sentinel",
      "spell_earthquake",
      "spell_flame_gate",
      "spell_frostfire_hydra",
      "spell_ghostball",
      "spell_giant_bear",
      "spell_holy_fire",
      "spell_ice_vortex",
      "spell_ironize",
      "spell_lightning_halo",
      "spell_lightning_spire",
      "spell_lumbriogenesis",
      "spell_mystic_power",
      "spell_mystic_vision",
      "spell_nightmare_aura",
      "spell_psychic_seedling",
      "spell_pyrostatic_curse",
      "spell_rot_gaze",
      "spell_scourge",
      "spell_seal_fate",
      "spell_shatter",
      "spell_shrapnel_blast",
      "spell_silver_spear",
      "spell_siphon_shields",
      "spell_slime_form",
      "spell_spider_queen",
      "spell_stampede_form",
      "spell_storm_walk",
      "spell_suspend_mortality",
      "spell_torrent",
      "spell_vampiricism",
      "spell_wave_of_dread",
      "spell_arcane_warding",
      "spell_armageddon_blade",
      "spell_blizzard",
      "spell_bone_barrage",
      "spell_burning_idol",
      "spell_call_seraph",
      "spell_carnival_of_pain",
      "spell_choir_of_angels",
      "spell_combust_poison",
      "spell_death_cleave",
      "spell_drain_pulse",
      "spell_essence_flux",
      "spell_fiery_tormentor",
      "spell_fire_drake",
      "spell_flame_burst",
      "spell_ice_drake",
      "spell_imp_swarm",
      "spell_leghead",
      "spell_lightning_form",
      "spell_lightning_storm",
      "spell_mass_calcification",
      "spell_orb_of_night",
      "spell_orb_of_unraveling",
      "spell_pain_mirror",
      "spell_permanence",
      "spell_petrification_aura",
      "spell_prison_of_thorns",
      "spell_purity",
      "spell_ruinous_offering",
      "spell_searing_seal",
      "spell_storm_burst",
      "spell_storm_drake",
      "spell_the_restless_dead",
      "spell_vampiric_gaze",
      "spell_void_beam",
      "spell_void_drake",
      "spell_volcanic_eruption",
      "spell_wall_of_ice",
      "spell_watcher_form",
      "spell_wheel_of_death",
      "spell_blood_meridian",
      "spell_blue_lion",
      "spell_call_archon",
      "spell_cantrip_cascade",
      "spell_chill_wind",
      "spell_death_shock",
      "spell_fae_court",
      "spell_flesh_fiend",
      "spell_flock_of_eagles",
      "spell_golden_skull",
      "spell_heavenly_idol",
      "spell_ice_phoenix",
      "spell_night_hag",
      "spell_orb_of_anima",
      "spell_orb_of_assimilation",
      "spell_pillar_of_fire",
      "spell_soul_tax",
      "spell_stonewake",
      "spell_teleport",
      "spell_temporal_transfusion",
      "spell_arc_lightning",
      "spell_black_hole",
      "spell_demonic_ritual",
      "spell_faehaunt_garden",
      "spell_furnace_of_sorcery",
      "spell_gold_drake",
      "spell_heaven_s_wrath",
      "spell_knightly_oath",
      "spell_miasma",
      "spell_prismatic_beam",
      "spell_ritual_of_flying_daggers",
      "spell_sanction",
      "spell_twilight_gaze",
      "spell_demon_form",
      "spell_multicast",
      "spell_rain_of_thunderbolts",
      "spell_ritual_of_the_opening_eye",
      "spell_soul_wind",
      "spell_spikeball_factory",
      "spell_wall_of_flame",
      "spell_wyrm_eggs",
      "spell_dream_the_starwhale",
      "spell_horde_of_halfmen",
      "spell_ion_tentacles",
      "spell_slime_drake",
      "spell_summon_wizard",
      "spell_rain_of_fire",
      "spell_wizard_replica"
    ]
  }
}
